単体テスト?そんなものできません。

単体テストを否定する内容ではありません。レガシーコードの山盛スパゲティに対して文句交じりに空想じみた理想論を語る輩が許せないのです。

ソースコードがテスト可能な単位で切り出せません。

全てのコードの起点がGUIのイベントハンドラで、そのイベントハンドラの処理はGUIのコントロールを参照しまくってます。

もしくは、

全てのコードは複雑に依存しあっていて総合テストレベルの環境でユーザーのUIからの入力以外では全くもって動作しません。

入出力はが仕様化されていません。

全ての結果は副作用で実現されテストコードが受け取れるものは何もありません。しかも、観測点を作ろうとしても既存のコードを大幅に改造しない限り副作用を観測する事すらできません。入力が人のUI操作だと同じ状態かどうかなんてわからないです。

もうリリースしちゃってます

既にリリースしてて、単体テスト埋め込んだバージョンをコミットする事自体許されない環境です。

もう完全にレガシーコード改善ガイドのストーリーのまんまですね。こんなクソみたいな環境で雇われPGしてると感覚が腐っていくのが自分でもわかります。

もうクラスもオブジェクトいらなくね?

で、思うのは上流で設計せずに担当に丸投げしてその担当も場当たり的にソフトを作るような状態じゃあクラスとか要らないです。作られたクラスが全部機能クラスでその集合体が構造体程度の情報を引っ張りまわすような構造はC言語のような言語でプロセス分割したほうが品質がいいんじゃないかと思います。

大した組織じゃないんで開発プロセスとか特に無いので、担当の能力依存なんでしょうが、品質を作り込むって事が課題になってるのに実装者のレベルはプログラミング自体初心者程度で大域的設計とか全然無理、設計者は実装工程に丸投げでご帰宅。PLは開発に無関心。普段威勢のいい文句を言ってる割には行動が全く伴ってませんね。よくこんな状況で開発チーム名乗ってられるよなと思います。

あれ?また愚痴になっちゃった。
とりあえずレガシーコード改善ガイド読み直します。

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

  • 作者: マイケル・C・フェザーズ,ウルシステムズ株式会社,平澤章,越智典子,稲葉信之,田村友彦,小堀真義
  • 出版社/メーカー: 翔泳社
  • 発売日: 2009/07/14
  • メディア: 大型本
  • 購入: 45人 クリック: 673回
  • この商品を含むブログ (157件) を見る