「達人プログラマー システム開発の職人から名匠への道」を読んだ

覚えているキーワードだけを書きだしてみた。

  • テストの自動化
  • 直交性
  • std::auto_ptrの使いどろ
  • ドキュメント
  • プレイン・テキスト

テストの自動化

テストを手作業で行うことで、多くの時間が奪われる。
そこで、テストを自動化しよう。そうすれば、コードを新たに産みだすことに時間をさける。
あと、cronコマンドで、夜中にテスト実行させておけば、朝には何が悪かったかをチェックできる。

疑問に思ったことは、GUIテストについてサラッとしか触れられてなかったこと。
GUIテストをどのようにして自動化すれば良いのかわからない。

直交性

各関数やクラスの依存関係が薄いことを、直交性があるという。
直交性のメリット

  • テストコードを書きやすい
  • 掃除機のノズル部分のように付け替えが可能となる→機能変更が簡単

std::auto_ptrの使いどろ

pp135-137で「C++の例外を用いいたリソースのバランス」という項目で例外について書かれていた。
そこで、知ったのがstd::auto_ptr。例外が起きたときに、いかにしてリソースを解放するかを解決するために使えることを知った。
具体的なコードは、同ページに書かれているため省略。

std::auto_ptrについて少々調べてみた

この記事には、std::auto_ptrを扱う上での注意点が書かれており、分かりやすかった。
注意点:std::auto_ptrで確保された変数に他のものを代入すると、元々格納さていた実態のデストラクタが呼ばれる。

ドキュメント

Wordなどのワード・プロセッサを使ってのドキュメント作成は推奨されない。プレイン・テキストのようにバージョン管理できないから。
会社からワード・プロセッサを使えと支持されたら、マクロを使いプレイン・テキストの装飾をワード・プロセッサへ出力するような処理を書けば解決できる。

プレイン・テキスト

UNIXの文化。可読性。
テキスを処理するコマンドをパイプなどでつなげていくことで、様々な事ができる。
GUIが使用できないようなマシンで威力を発揮する。
GUIよりもCUIのほうが、簡単に解決できる場合がある。例えば、テキスト加工、検索、ファイル列挙など。

おわりに

思い出したことを書き出し見たから、メモ書きになってしまった。
そういえば、演習問題はやってないから、気が向いたらやるか。