日経コンピュータ書評
2005/04/27 10:18
0人中、0人の方がこのレビューが役に立ったと投票しています。
投稿者:日経コンピュータ - この投稿者のレビュー一覧を見る
ソフトウエア開発の方法論を幅広く網羅した入門書。
上巻は設計やプログラミング、下巻はテストやデバッグを扱う。1993年発行の第1版を、Webアプリケーションの普及などを踏まえて大幅に改定した。
著者はソフトウエア工学の第一人者で、知識体系「SWEBOK」構築を主導する。
計1200ページを超える大部だが、ソフト開発プロセスを建築設計に例えるなど、難解になりがちな内容を分かりやすくまとめている。
0人中、0人の方がこのレビューが役に立ったと投票しています。
投稿者:日経BPソフトプレス - この投稿者のレビュー一覧を見る
本書は効果的なコンストラクションプラクティスについての知識を集めた、実践的なプログラミング解説書です。
ソフトウェア開発プラクティスは目覚しい進歩を遂げていますが、一般のプログラマにはなかなか浸透しません。本書は、業界の第一人者らの知識と、一般の商用プラクティスとの橋渡しをします。
10年前の第1版とコンセプトは同じですが、第2版は全体を通じてオブジェクト指向の考え方が反映されたものになっています。また、「リファクタリング」の章が追加され、サンプルコードはC++、C#、Java、Visual Basicなどにアップデートされています。
本書は、ソフトウェア開発の総合ガイドを求めている経験豊富なプログラマ、経験の浅いプログラマを教育する技術指導者、正式なトレーニングを受けたことのない独学プログラマ、これから社会に出る学生や新人プログラマなどを特に対象としています。
本書で説明されている研究成果や過去の経験は、高品質なソフトウェアを作成し、問題を少なく抑えて作業をより短期間で行うのに役立ちます。また、大きなプロジェクトを制御し、要求の変更に応じてソフトウェアの保守や修正を適切に行うのにも役立ちます。
■目次
『Code Complete』への賛辞
はじめに
第1部 基礎を固める
第1章 ソフトウェアコンストラクションへようこそ
第2章 ソフトウェア開発への理解を深めるメタファ
第3章 2回測って、1度で切る:上流工程の必要性
第4章 コンストラクションの重要な決断
第2部 高品質なコードの作成
第5章 コンストラクションにおける設計
第6章 クラスの作成
第7章 高品質なルーチン
第8章 防御的プログラミング
第9章 擬似コードによるプログラミング
第3部 変数
第10章 変数の使用
第11章 変数名の力
第12章 基本的なデータ型
第13章 特殊なデータ型
第4部 ステートメント
第14章 ストレートなコードの構成
第15章 条件文の使用
第16章 ループの制御
第17章 特殊な制御構造
第18章 テーブル駆動方式
第19章 制御構造の問題
参考文献
索引
著者紹介
投稿元:
レビューを見る
さぁ読め、今読め、全部読め。
その分厚さに怯んではいけません。
これなくしてコーディングは語れない。
投稿元:
レビューを見る
説明しなくてもわかるじゃんと思うようなことについて理路整然と根拠が書かれているので職場のわからず屋を説得するのにいい材料になります。
投稿元:
レビューを見る
図書館から借りて読んでいるところです。ぶ厚いのに、これでまだ下巻が続くのかと思うと気が遠くなります(笑)
投稿元:
レビューを見る
手続き型言語を扱う全てのプログラマに無条件でオススメできる本。ある程度プログラムの経験を積んでくると、きれいなソースや効率化、再利用性といった物を求めると思いますが、その様な中級プログラマとして必須な考え方がぎっしりと詰まっています。デザパタ的なものではなく、モジュール強度や結合度的な考え方、変数やステートメントといったより細かい単位での考え方が詳しく載っているので、それらを人から習う機会が無かった人等には特にオススメです。
ただ設計の部分に関してだけは自分の肌には合いませんでしたが…。特にPPPの部分!いやそれはお前が分かってないだけだとか言われそうですけど(笑)
これを読むときっと「人に優しいプログラミング」ができるようになります。
投稿元:
レビューを見る
すぐれたプログラミングとはどのようなものか論理的かつ明快に書かれており、かつ具体的なコードが裏付けをもって書かれている。
文法は覚えてなんとか書き始めたものの、その先を超えたノウハウ、実践的な知識を得られる貴重な本。
この上巻は直接コードを書くためのノウハウが詰め込まれている。
投稿元:
レビューを見る
プログラマーの必読書
変数名、制御構造などの幅広いことを詳しく解説しているので、この本を読むことによって、どのようなプログラミングをすればいいのかがよくわかるようになる。
プログラミングし始めてから、1年ぐらいに読むのがオススメ
投稿元:
レビューを見る
強制的に読まされた(笑)書籍
分厚さに圧倒されるがこれでまだ上巻
書いてることはもっともで読んで損はないと思う。
もう少ししたらもう一回くらい見直したい
投稿元:
レビューを見る
プログラミングの全てが、体系的にまとめられている。
まさに、バイブル!
いつも手元に置いて、目を通したい本だ。
投稿元:
レビューを見る
どの言語を使用していても役に立つ。これ一冊で得られるものは非常に多い。
プログラマがこれを読まない理由が思い当たらない。
投稿元:
レビューを見る
備忘録
●要求が変化し易く、プロジェクトのリスクが高い場合は、逐次型よりも反復型がよい
●クラスの独立性を高めるために、構成間のやり取りを細かく規定することが重要
●業務ルールやデータサイズは変更の可能性が高い
●疎結合を実現するためには、パブリックメソッドの数を減らし、グローバル変数の参照ではなく、引数として明示的にデータを渡すように実装する
●トップダウンは考えるのが簡単という利点があり、ボトムアップは早期に必要な機能が明確化されるという利点がある
●設計の詳細レベルは、経験の豊富さ、プロジェクトの規模、ソフトの寿命を考慮して決める
★クラスのメンバデータが7つを超えたら、小さなクラスへの分割を検討する
●他のクラスのルーチンを間接的に呼び出すのは避けるべき(デメテルの法則)
★200行を超えるルーチンは要注意
●防御的プログラミングにおいては、重要なエラーの検査は製品コードにも残し、エラーメッセージは分かり易いものに書き換えておく
★まず概略レベルのコメントを書き、その後、コードを記述する
投稿元:
レビューを見る
開発者必読の一冊。開発歴10年近いけど、それまでに培った以上のノウハウが詰まっていた。
技術の移り変わりは早いけど、あと10年は役立つ内容かと。
投稿元:
レビューを見る
■概要
コードは書く事に費やす時間より
読むことに費やす時間のほうが長い
読みやすいコード(=変更するときに間違えにくいコード)
を書くための色々なテクニックが紹介されている
割と基本的な事からしっかり書かれている
■感想
こんないい本を今まで読んでなかったなんて・・・と,衝撃を受けた
後1~2年早く読んでいれば卒業研究のプログラムなどがもっと効率よく書けたのに.
量は多いけど,栄養たっぷりで美味しいので
もりもり食べれた(本を食べ物に例えたメタファー)
ただ,全部消化しきったわけではないので
もっと経験を積んだ後に,また読み返したい1冊
我流でプログラムを勉強したが
読みやすいコードの書き方がいまいちわからない人や
これから,プログラムをもりもり書く人や
これから,チームでプログラムを書く人等に
おすすめの1冊
投稿元:
レビューを見る
ソフトウェア開発におけるベストプラクティスを網羅的に解説したプログラマにとってのバイブル的書籍である。
著者はソフトウェア工学の第一人者であるスティーブ・マコネルで、
私の会社の机にも置いてある「SWEBOK」の構築を主導している人物でもある。
この書籍が解説している範囲的は主に詳細設計?テストで、
上巻では詳細設計?プログラミングの部分を解説している。
この書籍の良いところは、かなり具体的に例を示している点で、
例えば、コーディングの際の擬似コード(PPP)のススメや、
変数の宣言、定義等のベストプラクティスなど、
実際の実務に直ぐにでも生かせるようなテクニックを惜しげもなく教えてくれる。
これは恐らく先人たちが何十年もかけて得た知識や経験を、
この本に凝縮して詰め込んでくれたのであろう。
そんな素晴らしい知識をたかだか数千円の投資で得ることが出来るというのは、
この著者に十分感謝しなければならないと思う。
以下、上巻を読んで大事だなと思った項目を一部抜粋します。
・プロトタイプを作成するときはクラス名やパッケージ名にprototypeというプレフィックスを付けるといった標準を設けるといい。
・設計書の文書化(CRCカード、UML、デジカメ、JavaDocの使用)。
・擬似コード (PPP)の活用。
・変数は宣言時に初期化する(C++など)。
・変数は最初に使用する場所の近くで初期化する。(VBなど)。
・変数の宣言と定義は、最初に使用する場所の近くで行うのが理想的である。
・できるだけfinalまたはconstを使用する。
・クラスのメンバデータはコンストラクタで初期化する。
・すべての変数を自動的に初期化するようにコンパイラを設定する。
・変数の参照はまとめて。
・トランプデータの削除。
・グローバル変数が必要なすべてのコードでアクセスルーチンを使用する。
・ロックを使ってグローバル変数へのアクセスを制御する。
・ループは一度に確認できる程度に短くする。
・ネストは3段階までに制限する。
・ブール値とtrue、falseは暗黙に照合する。
・ド・モルガンの定理を適用して、否定語のある論理評価を単純化。
・数値を含んでいる式は数直線の順番に並べる。
・Cでは、文字を終端のnull('\0')と明示的に比較する。
・Cから派生した言語では、定数を比較の左側に置く。(但し、数直線との関係が矛盾している)。
・null文の代わりにDoNothingプリプロセッサマクロやインライン関数を作成する。