11
継続的に変更する必要のないソフトウェアを書くことは可能ですか?
私は多くの異なる言語で多くのソフトウェアを書きました。また、VerilogとVHDLを使用してFPGAで使用するハードウェアを「書きました」。 私はソフトウェアよりもハードウェアを書くことを楽しむ傾向があり、主な理由の1つは、「完了」して変更する必要のないハードウェアを書くことができるからだと思います。インターフェイスと機能を定義し、テストベンチを書く、ハードウェアモジュールを実装してから、シミュレータを使用してそれをテストします。次に、そのハードウェアモジュールをビルディングブロックとして使用して、より大きくより良いものを作成できます。そのモジュールに機能を追加する必要がある場合は、2番目のモジュールを作成し、そこに機能を追加します。元のモジュールは問題なく機能し、引き続き有用であるため、元のモジュールを捨てることはありません。 ソフトウェアに関する私の主な不満の1つは、「完了」しないことです。追加する別の機能が常にあります。多くの場合、機能を追加すると、以前は正常に機能していた別の場所にバグが発生します。これは、インターフェイスに違反していない限り、ハードウェアでは発生しません。 明確にするために、機能のリストを使用して何かの1つのバージョンを構築することを支持していません。それは永遠です。左側のコードを突いて右側のバグを見つけたくないのですが、これは新しい機能を追加した後に起こるようです。 ハードウェアが「書き込まれる」のと同様の方法でソフトウェアを書くことは可能ですか?既存のコードを書き直したり新しいバグを導入したりすることなく、常に前進を続け、新しい機能を追加できる優れたソフトウェア開発方法論はありますか?