ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

CODE COMPLATE 上・下

読んだっていうか、まだ理解できず…何回も読んで理解を深める次第。
というか最初は「要件分析」の部分を理解したくて読んでたけど、上流行程について言及している部分は1〜5章まで*1
残り30章は『より良いコードを書くには』についてのプラクティスを追求してます。
特定した言語について書いている訳ではなく、一般的な開発手法としてどのように進めていかなければならないかをガッツリやっている感じ。「特定した言語」と書いたけど、参考にすべき文章はあるわけで、ソレが C言語だったりVBだったりJavaだったり。背広組の使いそうなところなだけにとても興味深いというか勉強しておきたい内容。必要に迫られないとどうしても手を付けられなかったりするので(汗

中心が「コーディング/デバッグ」にあり、そのために必要な情報って形で話が進められてます。
マインドマップに書いてまとめられるかなと思ったけど、概要が目次以上に発展できないorzそれだけ詰め込まれて書かれているのか、単に理解が足りていないだけなのか。
兎に角自分用メモ

  • CODE COMPLATEの目指すところ
    • 完全なプログラミング
  1. 基礎
    1. ソフトウェアコンストラクションとは
    2. メタファについて
    3. 上流行程の必要性
      1. 課題提議
      2. 要求
      3. アーキテクチャ
    4. コンストラクションの重要な判断 〜プログラミング言語の選択〜
  2. コーディング プラクティス
    1. コンストラクションにおける設計
    2. クラスの作成
    3. ルーチンの作成
    4. 防御的プログラミング
    5. 疑似コードプログラミング(PPP)
  3. 変数
    1. 変数を使う
    2. 変数名を決める
    3. 基本的なデータ型
    4. 特殊なデータ型(構造体、ポインタ、グローバルデータ etc)
  4. ステートメント(データ中心→ステートメント中心のプログラミング)
    1. ストレートなコードの構成
    2. 条件文の使用
    3. ループ制御
    4. 特殊な構造制御(再帰処理etc)
    5. テーブル駆動方式
    6. 制御構造の問題〜一般的な問題と理論的解決策〜
  5. コードの改良
    1. ソフトウェアの品質
    2. コラボレーティブ コンストラクション(ペアプログラミングetc)
    3. デベロッパーテスト
    4. デバッグ
    5. リファクタリング
    6. コードチューニング 戦略
    7. コードチューニング テクニック
  6. システムの考察
    1. プログラムサイズが及ぼす影響
    2. コンストラクションの管理
    3. ソフトウェアコンポーネントの統合
    4. プログラミングツールの利用
  7. ソフトウェア職人としての成長
    1. レイアウトとスタイル
    2. 読めばわかるコード
    3. 個人の気質
    4. ソフトウェア職人気質とは
    5. さらに情報を得るには


読み進めて感じたことは、多くの技術書に同じ内容は書かれているわけで。
ただそれぞれが書く位置は異なり、「コードを書く上で」とか「プログラマーとして」とかはみんな大好きWeb+DBマガジンオライリー本などなどやっぱそうだよなーと思わされることがありました。
でも知りたいところは「全体の流れ」。モジュールやツール単位では全体が見通せないし、精神論では実際がわからず理解できているのかいないのか…
この本ですげーなと思っているのは、プロジェクトを進める上で必要なことが一貫して書かれていること。知らなくても要領の良い人ならこれを知らなくても問題ないのかなぁと思ってしまうけど、できてない自分にはかなりのバイブルです。というかドキュメント作成とか、こういう順に説明していけば良いのかな〜とか脱線しながら読んでます。
まずは「基礎」を押さえて先に進めようかなと。一番大きなレベルでの読み返しを怠らないようつとめネバー

*1:全35章中