はじめに
開発およびプログラムコードについては、すでに多くの言葉が言われています。 リファクタリング、柔軟な方法論、テストなどの言葉はすでに退屈になり始めています。 コミュニティのほとんどは、理想的な世界のプリズムを通してコードを見ています。 同時に、開発者の大部分は、「いつコードを書き換えるべきですか?」という質問に明確に答えることができません。
基本的な比phor
適切なフレーズは、常にデータを記憶するのに役立ちます。 さらに、人間の知識のかなり抽象的な領域では、問題の本質とその解決策をすばやく理解できます。
膨大な量のコードの共有の問題を熟考し、すべての問題は明らかであるように見えましたが、思考を統合するのに十分なメタファーがありませんでした。 彼女は突然現れて、ロシアのロックのすべての愛好家によく知られています:「私は歌を歌うことができました...」(チズとCo.のグループの歌)。 これで、ITの世界に非常に適している理由を理解できます。
システム
すべてのシステムを条件付きで新旧に分割します。 この分離は、資料の表示を簡素化するための基礎として採用されています。 複雑なシステムの理論がありますが、それはシステムを十分に正確で自明でない言語で記述するための理論でもあります。
システムの分離は、時間属性には適用されません。
- 新しいシステムとは、大部分のコードがほとんどの開発者に馴染みのあるシステムです。
- 古いシステムは、マンモスの牙を見つけることができるシステムです。
この記事は主に古いシステムに関するものですが、新しいシステムには役立ちます。
私の歌
すべてのシステム開発者は鳥を歌っています。 このシステムは、さまざまな意味で面白い、悲しい、速い、遅いという森の歌です。 完全な沈黙のようなシステムの状態があります...
通常の状況。 開発者は、既存のシステムに基づいていくつかの機能を実装する必要があります。 問題を解決するには、2つの相反するアプローチがあります。
- 「これをすべて書いたとしても、同行し、すべてを書き直すことは不可能です!」(ソロ)。
- 「ここからコードをコピーし、少し修正して、数行挿入してから実行します」(バザール)
ソロ
ナイチンゲールの開発者は、誰もが長い間森の中のどこにもいないことに一度気づきます。
クイックコードの書き換えが開始され、クラス全体が削除され、好ましくないコードのすべてのセクションがリファクタリングされます。 システムはより調和的かつ調和的になりますが、このシステムで演奏できるのは1人の演奏者だけです。 他のすべての開発者は、目的のストリームにすばやく入ることができなくなります。 この場合、システムの不安定性と破壊の兆候が現れることがあります...
バザール
すべてのナイチンゲール開発者は、誰もが、そして非常に頻繁に森のそのような場所にいることに気付きます。
そのような場所は、コードの同じセクションの複数のコピー、1000行以上の巨大なメソッドと機能によって特徴付けられます。 初心者が一般的なロジックを理解することはできないため、彼はすぐにさらに2、3行を巨大なメソッドに挿入し、別のタスクを引退します。
おむつシステムに精通している開発者は、ジャイアントメソッドの目的の分岐がどこにあるかをよく知っています。残りのすべてがそのような高さに達することはありません。
ミュージック
すべての開発者の調整されたアクション。 理想的なシステム、国際的に認められた「音楽」の傑作。 通常は到達できません。
システムは、明確な構造、完全な分解、簡単な方法を備えています。 新しい開発者は、コードの仕組みの基本をすぐに理解します。
周囲のコードで修正するものは発生しないと考えています。
いつ書き換える価値があるのか...
柔軟な方法論について話す価値はありません。 彼らは単に、15年の歴史、数万のクラスを持つプロジェクトには取り組みません。 これをすべて書き換えることは絶対に不可能です。
すべてのシステムのエントロピーが増加することは誰もが知っています。 システムは、その場合、その存在を終了します。 不要になったり、豊富な異種機能から外れたり、技術の競争で負ける可能性があります。
ただし、エントロピーの増加は遅くなる可能性があることを常に覚えておく必要があります。 これを行うには、既に確立されているシステムに大きな変更を加えることはできません。 そのような欲求が生じた場合、新しいものを書くべきでしょうか? 機能を追加する場合、システムの個々の部分のコードを変更して認識を簡素化することが可能であり、必要です(「古いタイマー」は新しいコードで簡単に迷子になる可能性があることを覚えておく必要があります。「パンくず」を残す必要があります)。 既存のメソッドに追加して新しい機能を作成しないでください。新しい機能をコードの新しいセクションで見る価値があります。
おわりに
多くの場合、認識を超えて修正されたコードが完璧に見える状況に遭遇しました。 しかし、同時に、基本的な機能の主なイデオロギー家と開発者は、単にその中で失われ、コードを解析する時間が必要でした。 したがって、コードの書き換えは悪い習慣と見なすことができます。 エントロピーを減らし、新しいシステムを作成してください!
あとがき
歌を聞いて開発について考えると、ソフトウェア開発の実践から多くの興味深い点が思い浮かびます。