前の投稿で、下記を実装するという例を出しました。ある程度、ブレークダウンしているので、全部実装できるエンジニアの方も多々いるでしょう。
1.テキストファイルの読込
2.入力データを取り出す
3.素数かどうかを判定する
4.出力する
一方で、全部実装しようとして、はまって完成に至らないエンジニアもいると思います。そこで、次の考え方です。
考え方3
- 段階的に実装・検証を繰り返す
実現したいことを『入力』『処理』『出力』に分類する。先の例を分類すると、下記のようになると考えます。
『入力』1.テキストファイルの読込
『入力』2.入力データを取り出す
『処理』3.素数かどうかを判定する
『出力』4.出力する
多くの場合、一番時間を要し、実現困難なものは『処理』の部分だと考えています。
そのため、『入力』『出力』の部分を実装する、『処理』部分は未実装でも、スタブでも良いです。
その上で、比較的実装難易度の低い『入力』『出力』が想定通り動いているかをまず検証し、保証することを推奨しています。
『入力』『出力』を先に実装するメリットは、実行結果が目に見やすい事もあります。
もっと複雑なロジックを実装するなら、『入力2』『処理2』『出力2』と分解してして、上記を繰り返し、動作を保証する部分を広げていくこと、実装していない部分を局所化していくことが良いと考えています。
そして、『処理』部分を実装、検証にうつります。