雑ノート(仮)

技術書の感想や勉強ノートみたいなノリです

レガシー

テストのためだけのコード変更は許されるのか?

レガシーコード改善ガイドに以下のような一節がありました。 私はテストが簡単に書けるなら、変数をpublicにすることでカプセル化が壊れても通常は気にしません。 私はEffective Javaに強く影響を受けているのでメンバを書くときは極力公開性を最小にコーデ…

わけわからんコードにはとりあえず影響スケッチ。

影響スケッチとは? レガシーコード改善ガイドに掲載されている、影響を把握するための方法です。 影響はどのように伝搬するか 影響は 呼び出し側によって使われる戻り値 パラメータとして渡されるオブジェクトの変更 グローバルスコープのデータの変更 によ…

仕様化テストについて

仕様化テストとは何か コードから起こした仕様を検証するテストのこと。 大事なのは理想的な仕様を追い求めるのではなく、「現在のコードはこのように動いている」点を明らかにすること。 何のために行うか 機能追加の際に、理想的なテストを書いてしまうと…

レガシーの意味とは?

レガシーという言葉の意味について、改めて確認しよう。 遺産のこと いい意味でのレガシーはこれのみである。 東京2020レガシー 未来に何を残すのか byNHKスペシャル オリンピックの勢いで出来たインフラや設備は、一般的にレガシーというらしい。 時代遅れ…

時間がないときの機能追加(スプラウト/ラップ)

時間がないときは既存のソースにリファクタリングを行わずに機能追加をする。 その時に以下の二点を気をつける 既存ソースにテストを書けなくても新しいコードにはテストを書く 既存のソースの変更は最小限にとどめる 後述の方法で実現する スプラウトメソッ…

接合部と許容点

接合部 接合部(seam)とは、その場所を直接編集しなくても、プログラムの振る舞いを買えることのできる場所である。 許容点 どの接合部も許容点(enabling point)を持つ。許容店では、どの振る舞いを使うかを決定できる プリプロセッサ接合部 プロプロセッサ指…

レガシーコード改善ガイドを読み始めた。

この本を知ったのは1年ほど前で、開発プロセス等について興味を持ち始めていたころでした。 最初にタイトルを見たときは、正直読みたくないな、と思いました。多分私だけじゃないと思います。 多分誰もレガシーコードを触るスキルなんて身につけたくないし、…