技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

2018-12-13から1日間の記事一覧

自己カプセル化フィールド【リファクタリング】

状況 フィールドに直接アクセスしている _a = _a * 2 対処 そのフィールドに対するgetおよびsetメソッドを定義し、それらのメソッドを使用する メリット サブクラスがその情報の取り出しに際し、メソッドによってオーバーライドできる 遅延初期化を試みるこ…

os.Exit【Go】

Go

プログラムを強制終了させます。 os.Exitが実行されると、defer指定された関数も実行されません。 引数にはstatus codeを指定しますが、0を指定すると正常終了を意味し、1を指定すると異常終了を意味します。 func() { defer someFunc() // 実行されない os.…

httpのhandlerに引数を指定する方法【Go】

Go

htmlのtemplate【Go】 - 技術向上などで紹介した方法ですと、 各handlerで共通した、titleを取得する処理が行われています。 引数にtitleを渡すことで効率化できそうです。 ... func viewHandler(w http.ResponseWriter, r *http.Request) { title := r.URL.…

templateキャッシュ【Go】

Go

htmlのtemplate【Go】 - 技術向上で紹介した下記関数ですと、 同じtemplateであっても、処理毎に毎回templateの読み込みが行われてしまいます。 func renderTemplate(w http.ResponseWriter, templ string, p *Page) { t, _ := template.ParseFiles(templ + …