iT邦幫忙

go相關文章
共有 365 則文章
鐵人賽 自我挑戰組 DAY 18
30天學會Golang 系列 第 18

技術 day18 - 錯誤處理

大家好,今天是鐵人賽第十八天,我要來介紹go語言的例外處理機制。當執行程式時,遇到作業系統或網路異常,我們可能會拋出例外讓程式中斷;而這時候,如果是網頁就會回應...

鐵人賽 Modern Web DAY 14
BeeGo 系列 第 14

技術 Session(2)

這篇主要是了解一下 BeeGo 如何處理 HTTP 請求,以及了解 Session 的運作。 全域 官方文件裡的 Session Module 有提到 Sess...

鐵人賽 自我挑戰組 DAY 8

技術 Day8 .[正確資料篇] slice 與 map 加lock

前言 這篇開始,會陸續分享一些資料處理上碰到的狀況和處理經驗,已上線系統來說,資料的完整和正確性優先權也幾乎是最高,一但發生問題,損失難以估計。 相較程式cra...

鐵人賽 Software Development DAY 8

技術 第八天:進入 schedinit

前情提要 昨日從一支 GO 語言程式的源頭往下看,在初始化參數(runtime.args)和初始化來自作業系統的資訊(runtime.osinit)方面有個簡...

鐵人賽 Software Development DAY 16

技術 Context, 眾Goroutine手上的電話蟲

想像一下 如果用多個goroutine來處理一個請求, 那怎在這些goroutine之間共享request訊息. 每一個請求都應該要有個超時限制 處理超時,...

鐵人賽 Modern Web DAY 13
BeeGo 系列 第 13

技術 Session(1)

今天要來介紹 Session。 設定 需要在設定裡啟用。 SessionOn = true 啟用之後,要重新啟動。 設定裡也可以指定過期時間、Cookie等。...

鐵人賽 Software Development DAY 7

技術 第七天:瀏覽系統相依的初始化

前情提要 昨日宣告重啟 Hello World 程式,但是是那些我們所寫的 main 函式以外的部份。目前追蹤到作業系統與架構相依的部份結束,何時會迎來 GO...

鐵人賽 自我挑戰組 DAY 7

技術 Day7 .[重災經驗篇] 爆連線問題,TCP ESTABLISHED 咬著不放

這篇跟大家分享Golang 連線重複利用的重要,以及遭遇沒辦法用完即丟的窘境。 如標題,最主要探討的問題是TCP ESTABLISHED ,遇到了一旦tcp 連...

鐵人賽 Software Development DAY 15

技術 Channel, goroutine之間的溝通橋樑

Channel channel能夠在多個goroutine之間作數據交換, 任何時間, 同時只能有一個goroutine來存取通道進行發送或獲取資料. Cha...

鐵人賽 自我挑戰組 DAY 16
30天學會Golang 系列 第 16

技術 day16 - 閉包

大家好,今天是鐵人賽第十六天。還記得 day5-常數與函式 講的函式用法嗎? go語言的函式是可以當作變數使用,而且函式也是一種型別,今天我要講來函式的一種進階...

鐵人賽 Software Development DAY 6
Golang入門到進階實戰 系列 第 6

技術 Day6 資料結構 Array & Slice

前言 在上一篇文章中,我們介紹了變數,變數的功能是跟電腦宣告單一空間來儲存資料,在現實問題裡,更常見的情況是需要處理一堆資料,這時候我們就需要引用資料結構,資料...

鐵人賽 Modern Web DAY 12
BeeGo 系列 第 12

技術 Cache

今天要來介紹 Cache,不過我試過一遍以後,發現我卡住了。無論如何,還是做介紹,並且說明我卡在哪裡,當作一個記錄。 BeeGo 的 Cache 提供者有這五種...

鐵人賽 自我挑戰組 DAY 6

技術 Day6 .[重災經驗篇] … 的傳入參數方式,自由度很大,但還是要小心

說明 利用...的寫法,可以在function的設計提供彈性,傳入幾個參數交由使用者做決定,傳入的內容彙整成同樣型態的slice。 slice,亦即裡面的元素是...

鐵人賽 Software Development DAY 6

技術 第六天:暫停一下回顧未解問題

前情提要 昨日一層一層瀏覽了不同層次的抽象層,最後把寫入檔案的動作看完,整個 Hello World 程式也暫告結束。 稍事休息 過去幾天我們一步一步的看過...

鐵人賽 自我挑戰組 DAY 15
30天學會Golang 系列 第 15

技術 day15 - 介面(續)

大家好,今天是鐵人賽第十五天。昨天介紹了介面的基本用法,了解go語言的介面該如何宣告及使用,而介面還有一些特性沒有提到,今天來把剩下的東西補完。 介面的內嵌 我...

鐵人賽 Software Development DAY 5
Golang入門到進階實戰 系列 第 5

技術 Day5 數據類型與變數宣告

命名規範 Go語言中任何識別字(Identifiers) 變量、常量、函數和自定義類型等,都應該滿足以下規則: 由字母、數字和下划線組成,數字不能當開頭 大小...

鐵人賽 Software Development DAY 5

技術 第五天:Fprintln 後半

前情提要 昨日瀏覽了 fmt.Fprintln 的前半,先是看了一下 printer 代表什麼意義,中間也如往常一般遇到許多新奇又陌生的 GO 語言元件(如...

鐵人賽 Modern Web DAY 11
BeeGo 系列 第 11

技術 Routing

Routing 就路由,一般在 web framework 裡就是指定義路徑與處理函式的對應關係,今天就是要介紹 BeeGo 的 Routing。在前面其實我們...

鐵人賽 自我挑戰組 DAY 5

技術 Day5 .[重災經驗篇] gorutine與map的讀寫

說明 Golang FAQ 就有提到,不同的goroutine對於同樣的map做讀寫操作可能會有什麼問題,很感謝剛開始接觸Golang的時候,朋友熱心的建議,先...

鐵人賽 Software Development DAY 13

技術 Defer 延遲調用

看個例子, 這是一個讀取資料庫取資料的方法 func (db *DB) ReadData(age int, results []Result) { //...

鐵人賽 自我挑戰組 DAY 14
30天學會Golang 系列 第 14

技術 day14 - 介面

大家好,今天是鐵人賽第十四天。今天要來講go語言的介面,和一般靜態型別語言中的介面不一樣,go語言不需要明確地定義實作介面,而是採用隱性實作,只要符合方法簽章即...

鐵人賽 Software Development DAY 4

技術 第四天:拆解 Println

前情提要 昨日多深入一些,理解 os.Stdout 的生成與牽涉到的結構。 回到 fmt.Fprintln 如果讀者跟筆者一樣是從 C 語言過來的,一定也跟...

鐵人賽 Modern Web DAY 10
BeeGo 系列 第 10

技術 Form and CSRF(2)

Customize Form 上篇提到 renderform 不能處理日期時間欄位的事情,今天再次花了點時間去追蹤 renderForm 的程式,然後動手做了點...

鐵人賽 自我挑戰組 DAY 4

技術 Day4 .[重災經驗篇] 常見的panic造成原因

許多panic產生的原因是由於程式沒寫好造成的 下面談談幾個常見的陷阱 slice index map 未先初始化 error 的Error()不一定可以使用...

鐵人賽 Software Development DAY 12

技術 go modules 終於不會再被GOPATH綁死了

Go Modules Go modules 出現原因 解除對GOPATH的完全依賴, 有go modules就能在$GOPATH外開專案了. 不同環境或者是多...

鐵人賽 自我挑戰組 DAY 13
30天學會Golang 系列 第 13

技術 day13 - 內嵌

大家好,今天是鐵人賽第十三天。在前兩天內容中,我們了解go語言的結構可以封裝資料,以及定義方法。至於今天我們要來談的是,結構該如何共享程式碼。 在物件導向程式中...

鐵人賽 Software Development DAY 3

技術 第三天:追蹤 os.Stdout

前情提要 昨日透過靜態方法(程式碼)與動態方法(gdb 除錯器)雙管齊下,多窺得一些有趣的行為。 os.Stdout 再追蹤 昨日為了驗證這個變數啟用了 g...

鐵人賽 自我挑戰組 DAY 3

技術 Day3 .[重災經驗篇] 關於panic的處理

概念想法 如果程式剛初始化的時候發生crash,可能還沒有太大傷害,但若程式執行起來已經上線一陣子,正在處理到一半的資料突然中斷,麻煩可就大了。 多年來的開發經...

鐵人賽 Software Development DAY 3
Golang入門到進階實戰 系列 第 3

技術 Day3 環境建置

Go的三種安裝方式 和其他語言的安裝類似,Go的安裝有三種方式,從簡單到複雜依序是使用第三方工具安裝、官方二進制包安裝和源碼安裝。 系統工具安裝:目前有很多方...

鐵人賽 Modern Web DAY 9
BeeGo 系列 第 9

技術 Form and CSRF(1)

今天來講講怎麼做新增跟修改,新增跟修改主要是 Form 的處理。 BeeGo 可以直接從之前定義的 model 產生 form,首先在 controllers/...