ホーム > 読んだ >

トラブルを避けろ !
プログラミングの禁じ手 C++言語編
プログラミングノキンジテ シープラスプラスゲンゴヘン

書誌

author真紀俊男
publisherソフトバンク
year『C Magazine 2000.7』p.12-38

目次

1感想
2抄録

履歴

editor唯野
2000.9.1読了
2000.9.3公開
2001.7.15修正

原則的な意味での C++ べからず集。まあ、この辺を理解した上で『Effective C++』を読むというのが常道なのでしょう。

抄録

12-13/19/21/23

C++ は C に対するハイブリッド言語であるが、だからといって学びやすいわけではなく、機能の追加だけでないダークサイドな側面も同じくらい(それ以上 ?)に増えている。C++ の利点といえる大規模プログラムへの応用は、すぐに大きな効果の出るものではないため、始めから長期的な視野を念頭に入れておく必要がある。大規模プログラムでのポイントはプログラムの分かりやすい分割が鍵といえるため、C++ のような大規模なプログラム言語では思考の負担をできるだけ減らすようにした方がよい。例えば、広範囲への影響箇所や外部からのアクセス箇所といった副作用の生みやすい要因を減らすようにしたり、チーム開発において各人が自分に都合よく解釈・作業するといった事態を防ぐということ。或いは、新しいプログラム言語を自分のそれまで経験していた言語の延長線上で捉えないようにすることなどが挙げられる。

ちなみに、メッセージ(オブジェクトへの命令)とメソッド(オブジェクトへの挙動)の関係についてであるが、大抵の OOPL では区別されている両者が、C++ では効率性重視の結果、メッセージとメソッドは通常同じで、そうでない場合に仮想関数を使うというかたちになっている。

14-17 規模や複雑さに関する禁じ手

継承レベルが深い -> プログラムの全体像が捉えにくくなり、バグの原因追求も困難になる。また、派生先から利用できる継承元のメンバ関数を遡って調べるのが大変になる。

多重継承が多いか悪用している -> 多重継承の必要性を理解していないと悪い状況(菱形継承など)を招きやすい。多重継承は所有によって解決できることもあるが、実装継承とインタフェース継承を区別することがポイントとなる。

全文を読まれる場合はログインしてください


Up