技術向上

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

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

TCP write【Go】

Go

HTTPで動作するサーバーを作成するため、 TCPサーバーを、標準パッケージのnet packageを使って作成します。 TCPはサーバーとクライアント間の接続を事前に確立し、 通信相手ごとに通信の状態を管理します。 それゆえに信頼性は高いですが、コストのかかる通…

case: 長すぎるメソッド【リファクタリング】

処理記述が長いメソッドは、可読性を下げ、適切に部品が共通化されていないことから、 プログラム全体でコードの重複も生まれやすくなります。 「メソッドの抽出」は一番単純で効果のあるアプローチです。 パラメータや一時変数もメソッドを長くする原因です…

ガード節による入れ子条件記述の置き換え【リファクタリング】

状況 メソッド内に、正常ルートが不明確な入れ子の条件付き振る舞いがある double getPayAmount() { double result; if (_isDead) result = deadAmount(); else { if (_isSeparated) result = separatedAmount(); else { if (_isRetired) result = retireAmo…

条件記述の分解【リファクタリング】

状況 if-then-elseによる複雑な条件記述がある 対処 条件記述部とthen部およびelse部から、メソッドを抽出する メリット コードが読みやすくなり、分岐の理由がわかりやすくなる 短い条件記述部は、一見して特にメソッド化する必要がないと思われるかもしれ…

メソッドオブジェクトによるメソッドの置き換え【リファクタリング】

状況 長いメソッドであり、「メソッドの抽出」を適用できないようなローカル変数の使い方がされている 対処 メソッド自身をオブジェクトとし、元のメソッドで定義されていたローカル変数を、そのオブジェクトのフィールドとする メリット 「メソッドの抽出」…

オブジェクトそのものの受け渡し【リファクタリング】

状況 あるオブジェクトから複数の値を取得し、それらの値をメソッド呼び出しのパラメータとして使用している 対処 メソッドのパラメータにはオブジェクトそのものを渡すよう変更する 結果として、ほとんどのパラメータがあるオブジェクトに依存する場合には…