不可能なバグをどのように設計しますか? それは可能ですか?
簡単な例を見てみましょう。ボブは、人気のあるインターネット ブログにコメント機能を追加する必要があります。月に数百万人の訪問者があり、すでに数千の投稿があります。彼があなたを雇った場合、どのように機能を実装しますか?
ページの最後に、投稿のレンダリングを担当するフォームを追加することになるでしょう。そのほとんど常識。(簡単にするためにセキュリティについては忘れてください)
ただし、その解決策は、ボブのブログの仕組みについてあまりにも多くのことを前提としています。
ボブのブログを作った人がボブを嫌っていたとしましょう。彼は、ゼロから完全に書き直さないと新しい機能を実装できないシステムを作りたかったのです。
あなたがボブを嫌う人だったら、どうやってそのようなシステムを作りますか? 特定の言語、フレームワーク、オペレーティング システム、サーバー ソフトウェア、アーキテクチャなどに限定されません。必要なのは、サーバーに接続するクライアントに作業ブログ ページを提供することだけです。
また、ボブはあなたが彼に言うことは何でもすると仮定します。伝書鳩による新しい手書きのブログ投稿をオフショア処理センターに送信する必要がある場合、彼はそれを行います。
そして、誰かが尋ねる前に、いいえ、クライアントを台無しにしたいので、私はこの質問をしていません. 私はこれを練習のように考えています。私たちは、壊れてはならないコードをエンジニアリングすることに慣れていますが、機能しないはずのコードをエンジニアリングするにはどうすればよいでしょうか? バグが避けられないように、解決策も同様に避けられないのでしょうか? このような反転コードを作成するのは、通常のコードを作成するのと同じくらい難しいですか? 修正できないコードを作成できるということは、壊れないコードを作成できるということですか?