技術向上

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

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

html/templateとtext/template【Go】

Go

html/templateは、text/templateの拡張版です。 text/templateの全ての機能を、html/templateは備えています。 それに加えて、htmlに必要な機能を併せ持っています。 例えば文字エスケープです。XSS対策になります。 main.goです。 text/templateをimportし…

templateに渡したdataに対してメソッドを使用する【Go】

Go

templateファイルの中で、goファイル上で記述したメソッドを使用することができます。 メソッドを定義していないtypeに対して使おうとすると、エラーが発生します。 引数あり main.goです。 var tpl *template.Template type Team struct { Name string Est …

templateに渡すdataの構造化【Go】

Go

goファイルからtemplateへ渡すdataを、structを使って構造化します。 main.goです。 NPBの中にLeagueのポインタ型が2つ、Leagueの中にTeamのポインタ型のスライスがあります。 var tpl *template.Template type Team struct { Name string Est int } type Le…

templateの分離と組み立て【Go】

Go

templateを複数に分割して識別し、組み立てる時に識別名によって呼び出すことができます。 階層は次の通りになっているとします。 main.go templates tpl.gohtml parts.gohtml まずはmain.goです。 var tpl *template.Template func init() { tpl = template…

templateにコメントを書く【Go】

Go

下記のように、「{{ }}」で囲まれたコメント専用スペースを作り、 「/ /」の中にコメントを書きます。 {{ /* This is a Name list. */ }} <ul> {{ range . }} <li>{{ .Name }}</li> {{ end }} </ul>

パラメータの追加【リファクタリング】

状況 あるメソッドが、呼び出し元からより多くの情報を必要としている 対処 引数を追加する メリット 新たな情報を受け取ることができる ただし、無闇にパラメータを追加することはコードの可読性、保守性を悪くします。 本当に追加する必要があるのか、新た…

パラメータオブジェクトの導入【リファクタリング】

状況 本来まとめて扱うべきひとまとまりのパラメータがある。 例えば、いくつかのメソッドに対して「開始日」と「終了日」をセットで渡している場合です。 対処 まとめられるパラメータをオブジェクトに置き換える 例えば、「開始日」と「終了日」は「日付の…