ソフトウェア開発のベストプラクティス1に関する多くの会話があります。私は少なくとも3つの主要なポイントがSEと他の場所の両方で多くの議論を得るのを見ました:
- ベストプラクティスとして適格なものとその理由は何ですか?
- ベストプラクティスはそもそも議論する価値さえあります。プラクティスが「ベスト」プラクティスではないと断言するのが妥当だからです。
- 適用できないように思われる場合、またはトレードオフを非現実的にする外部の制約(時間、お金など)のために、いつベストプラクティス(またはおそらくベストプラクティス)を放棄する必要がありますか?
ソフトウェア開発の常識の概念は、はるかに少ない頻度で登場するように思われますが、決してないことではありません。最近の経験により、この概念が再び頭に浮かびました。
私の最初の印象は、それがベストプラクティスとは異なる議論であるが、おそらく他の受粉を伴うということです。
一般的に常識を考えるとき、あなたが選んだか教えられたルールのセットを考えて、それがあなたに判断と判断を下すためのベースラインを与える。常識に従うことは、足全体を撃ち落とさないようにする良い方法です。しかし、かなり低いベースラインを超えて、常識は教育された決定を下す必要性に道を譲り、教育された決定は、証拠が十分に説得力があるように見えるときでも常識を無効にすることができます。私はここで定義を少し緩めているかもしれませんが、私の例を先導するのに十分だと思います。
ソフトウェア開発の常識を考えるとき、コードベースが急速に不可解な混乱に陥ることを防ぐための基本的な衛生のすべてのルールを考えます。例として、次のようなものがあります。単一のグローバル構造を使用して、重要なプログラム内で状態を維持および伝達しない。ランダムで意味不明な変数/メソッド/クラス名を使用しない。おそらく、アンチパターンと呼ばれるようになったものに非常に近いものです。ベストプラクティスを実践パターンと学習パターンに適用する場合、常識を適用することはアンチパターン学習の実践アナログと見なすことができます。
これを念頭に置いて、私は他の人の答えを見ることが私がこれを介して私の道を推論するのに役立つかもしれないいくつかの質問を提起したいと思います。
他の人は、ソフトウェア開発に常識の概念があると信じていますか?いずれにせよ、推論を知ることに興味があるでしょう。
もしそうなら、それは議論する価値がある概念ですか?時々ベストプラクティスを実行するのと同じくらい、プッシュする必要があるものですか?それをさらに難しくする価値はありますか?
アンチパターンの類推が合理的であると思われる場合、一般的なルールは、アンチパターンは他の方法がない場合にのみ採用され、それでも非常に限られた状況下でのみ採用されるというものです。コードベースが常識から逸脱することを許容する上で、どれほど柔軟にすべきでしょうか?答えが「まったくない」のは不合理に思えます。なぜなら、便宜のために逸脱が必要になる場合があるからです。しかし、「ベストプラクティス」を採用する場合とは異なる種類の議論のようです。たぶんそうではありません。そう思わないなら、理由を知りたい。
これははるかに開かれた終わりであり、おそらくそれ自体の後続の質問に値する可能性がありますが、それはどのような種類の推奨事項を常識の問題のように思われますか?
他の考えも歓迎します。
1おそらく私はそれらを「一般的に繰り返されるドメインパターン」と呼ぶ方が良いでしょうが、「ベストプラクティス」という名前は、彼らがそうであることに同意しなくても、誰でも彼らが何であるかを知っているほど十分に一般的です。「最高の」部分が気になる場合は、「ベストプラクティス」を信頼性の低いサウンドに置き換えたと想像してください。