技術向上

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

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

case: コードの重複【リファクタリング】

同一クラス内の複数メソッドでの重複 「メソッドの抽出」を適用し、各メソッドの内部で抽出したメソッドを呼ぶようにします。 メソッドの抽出【リファクタリング】 - 技術向上 兄弟クラス間の複数メソッドでの重複 両方のクラスで「メソッドの抽出」を行い、…

Template Methodの形成【リファクタリング】

状況 異なるサブクラスの二つのメソッドが、類似の処理を同じ順序で実行しているが、各処理の内容は異なっている 例えば、処理順序や算出対象は同じでも、掛け合わせるレートが異なるなどです。 対処 同じメソッドをオーバーライドできるよう、各処理を同じ…

メソッドの引き上げ【リファクタリング】

状況 同じ結果をもたらすメソッドが複数のサブクラスに存在する。 対処 メソッドをスーパークラスに移動する メリット メソッドの修正もれリスクを下げる事ができる 手順 対象とする複数メソッドの内容が同じである事を確認する メソッド間でシグニチャ(引…

template.FuncMap【Go】

Go

template.FuncMapとFuncs()を用いることで、 templateに対して関数を登録する事ができます。 階層が次のようになっているとします。 main.go templates blabla.gohtml tpl1.gohtml tpl2.gohtml main.goの内容です。 var tpl *template.Template var fm = tem…

templateへのデータ渡し【Go】

Go

templateへのデータ渡しを、goファイル上で指定する事ができます。 intやstring 階層が次のようになっているとします。 main.go templates blabla.gohtml tpl1.gohtml tpl2.gohtml main.goの内容です。 var tpl *template.Template func init() { tpl = temp…