Design-by-Contract または「コード コントラクト」(前提条件、チェック アサーション、事後条件、クラス不変条件など) を備えた言語を使用して、クラスとクラスの機能 (メソッドとプロパティ) にできるだけ近い「テスト」を取得します。可能。次に、TDD を使用してコードをそのコントラクトでテストします。
可能な限り多くの自己構築コード生成を使用してください。生成されたコードは、すべて手作業でコーディングされたコードよりも、実証済みで、予測可能で、デバッグが容易で、修正が容易/迅速です。なぜあなたが生成できるものを書くのですか?ただし、OPG (other-peoples-generators) は使用しないでください。あなたが生成するコードは、あなたが制御し、知っているコードです。
プロジェクトの過程で反転比率を費やすことを期待できます。つまり、プロジェクトの開始時 (1:1) に大量のハンド コードとコントラクトを記述します。パターンが見えたら、自分が書いたコード ジェネレーターにコードを生成して再利用するように教えます。生成すればするほど、設計、記述、デバッグ、およびテストが少なくなります。プロジェクトの終わりまでに、方程式が逆転していることに気付くでしょう: コア コードの記述が減り、「リーフ コード」(ラスト マイル) または特殊化 (一般化および生成されたものに対して) に焦点が移ります。 ) コード。
最後に、コード アナライザーを入手します。優れた自動化されたコード分析ルール システムとエンジンを使用すると、「ばかげたバグ」を見つける時間を大幅に節約できます。Eiffel には、Eiffel Inspector があり、付属の 90 以上のルールを使用するだけでなく、発見した独自の「落とし穴」に対して独自のルールを作成することを学んでいます。このようなアナライザーは、バグの点であなたを救うだけでなく、あなたのデザインを向上させます。GREEN プログラマーでさえもかなり早く「理解」し、初歩的な間違いをするのを早くやめて、より速く学びます!
既存のシステムを書き直すための経験則は、「書くのに 10 年かかったなら、書き直すのにも 10 年かかる」です。私たちの場合、Eiffel、Design-by-Contract、コード分析、およびコード生成を使用して、14 年のシステムを 4 年で書き直し、4 年半で完全に配信します。新しいシステムは古いシステムよりも約 4 倍から 5 倍複雑なので、これは多くのことを物語っています。