ソフトウェアコードのはじめかた

  • プロジェクト名や名前空間の雑さはIDEなどの強力さを考慮して決めること
    • IntelliJ IDEAなど => 名前空間やファイル名変更が強力なので、雑に決めてもあとから変更できる
    • Vimのみ => 名前空間やファイル名変更が
  • プロジェクトをつくるときは次の手順でやること
  • 要件を確認してアーキテクチャと単語の整理
    • noteという名前空間をつくり、そこにメモ書き用テストファイルをつくる。
    • 要件をテストコードにはりつける
  • 要件の一部をテストコードに翻訳する。簡単なケースだけでいい。 : RED
  • プロダクトコードを仮実装する。 : GREEN
  • 他の入出力のケースをテストに追加する。三角測量。 : RED
  • プロダクトコードを修正する。 : GREEN
  • テストコードをリファクタリングする。 : GREEN
  • 何をクラスとして切り出すかは、何をつくりたいのかを定義している段階できまるので、コードをかきながら決めないほうがいい。
  • テストコードはできるだけ長く書きはじめていく。テストコードは動的構造を記述する部分であり、プロトコル定義ツールとして使う。
    • 小さいテストコードはあくまでデバッグのサポート、型システムのサポート程度に考えて記述する。
  • 静的構造はプロダクトコード側で記述できる内容なので、プロダクトコードのリファクタリングや大枠の設計でおこなうようにする。
  • テストコードとプロダクトコードの設計がかたまったら、noteにあるテストコードを適切な名前空間にきりだしてあげる。
    • ユースケースを確認するようなテストは userguide, デバッグサポートのテストは developerguideなどがわかりやすい。ただ、developerguideのほうはビルドツール、IDEなどの連携をかんがみて、プロダクトコードと同じ名前空間にしたほうが便利なときもある。