技術向上

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

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

http.Request queryパラメータからkeyで値を取得する【Go】

Go

http.RequestのFormValue()メソッドを使用すると、 queryパラメータから、keyを指定した値の取得ができます。 http packageのHandler型へのダックタイピングを、hotdogという型に対して行う例で解説します。 Handler型はinterface型であり、ServeHTTP()メソ…

http.Requestからformの値を取得する【Go】

Go

http.Requestからformの値を取得するには、 http.Requestのメソッド、ParseForm()事前に実行する必要があります。 その上で、formの値が格納されているhttp.Requestのフィールド(url.Values型)にアクセスします。 formの値が格納されるフィールドには、For…

フィールドの引き下げ【リファクタリング】

状況 フィールドがいくつかのサブクラスだけで使われている 対処 対象のフィールドを、サブクラスに移動する メリット クラスの責務が明確になる 手順 対象のフィールドをスーパークラスの全てのサブクラスで宣言する スーパークラスからそのフィールドを削…

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

状況 スーパークラスの振る舞いが、いくつかのサブクラスだけに関係している 対処 対象のメソッドをサブクラスに移動する メリット クラスの責務が明確になる 手順 スーパークラスの全てのサブクラスで当該のメソッドを宣言し、そこにメソッドをコピーする …

サブクラスの抽出【リファクタリング】

状況 あるクラスの特定のインスタンスだけに必要な特性がある 対処 その一部の特性を持つサブクラスを作成する メリット クラス内の記述量が減り、可読性が上がる 「クラスの抽出」と比較して容易ではありますが、制約があります。 オブジェクトが生成された…

クラスの抽出【リファクタリング】

状況 クラスの責務が明確であるとは言い難く、複数のクラスに分けてなされるべき作業を一つのクラスで行なっている 例えば、Personというクラスに電話番号に関するフィールドやメソッドが存在する場合です。 対処 クラスを新たに作成し、適切なフィールドと…