2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CODE COMPLETE (上) -第2部 高品質なコードの生成 ①-

Posted at

自分の理解を深めるために投稿します。

第5章:コンストラクションにおける設計

設計の特徴、難題

  • 設計はルーズなプロセス

  • 妥協と優先順位付けによって生まれる

  • 制限がつきもの

  • 設計の答えは1つでは無い

  • 万能ツールは存在しない

  • 設計は創発的

    • 話し合い
    • 経験
    • 設計レビュー

重要な設計概念

  • 複雑さへ対応すること
    • 分割することが鍵
    • 一度に対処しなければならない本質的な複雑さを最小限に抑える
    • 偶発的な複雑さを必要以上に増やさない

(注) 本質的:物事が物事であるために不可欠なこと / 偶発的:物事が物事であるかに影響しないこと

  • 完成した設計がどのようであるべきか、たくさんの指針がある

    • 保守性・疎結合・拡張性など…
  • 上記を達成するための方法も、沢山紹介されている

    • 首尾一貫した抽象化・カプセル化・継承など…

設計のプラクティス

  • 反復すること

    • 1回目の設計より2回目の設計がうまくいく
  • 分割攻略

    • インクリメンタル方式
  • トップダウン方式とボトムアップ方式

    • どちらが優れている、とかはない
    • より合うほうを試して経験を積むことが大事
  • 設計のためだけのプロトタイプを作る

    • 必要最小限のコード
    • 実際のコードに生かそうと考えるとうまくいかない
  • 設計は1人より2人で行うと良いことがある

  • どこまで設計すべきか

    • コーディングできると判断できるまで
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?