大規模プロジェクトでのリファクタリングの実践

少し前に、私はゲーム開発者になりました。そこで、数十人のプログラマーによって書かれた200万行のコードのプロジェクトに出会いました。 コードベースのこの規模では、以前は未知の性質の問題が発生します。 そのうちの一つについてお話ししたいと思います。



したがって、次の状況を想像してください。 たまたま、非常に大きなコード、つまりサブシステム全体をリファクタリングする必要がありました。 ライン、コマーシャル、200K。 さらに、リファクタリングは明らかに非常に大きく見え、サブシステムが構築される基本概念に影響を与えます。 実際、ビジネスロジックを維持しながら、アーキテクチャ全体を書き直す必要があります。 これは、たとえば、1つのプロジェクトを作成していて、新しいプロジェクトを先に持っていて、そのプロジェクトの過去のすべての間違いを修正したい場合に発生します。 最初の推定によると、リファクタリングには約2か月かかります。 リファクタリングのプロセスでは、他のプログラマーが新しい機能を追加したりサブシステムのバグを修正したりすることを防ぐことは不可能を含め、すべてが機能するはずです。 多くの場合、このようなリファクタリングは非常に複雑であるため、古いコードを新しいものに変更することは完全に不可能であり、結果を部分的にロールアウトすることも不可能です。 実際、飛行機のエンジンをその場で交換する必要があります。



私と同僚の両方の実践例:





どうする 問題に取り組む側 以下は、この問題に対処するのに役立つ一連のヒントとプラクティスです。 最初に、より一般的な言葉、次に特定のテクニック。 一般的に、超自然的なことは何もありませんが、誰かを助けることができます。



リファクタリングの準備






リファクタリング




追加のヒント






経験上、恐ろしくて大きなサブシステムでさえ、比較的少ない血液でリファクタリングできることが示唆されています。 主なアシスタントはテストと体系的です。



All Articles