コードの廃止とソフトウェアのライフサイクルについて





スタートアップ、新しいテクノロジー、最新の言語、フレームワーク。私たちが最初から何かを始めたとき、これらすべてはとてもエキサイティングです。そして、私たちは間違いなく私たちのプロジェクトのために何百万人もの人々に愛されている現代的で人気のある技術を選択しようとします。しかし、時間はその執拗な実行を止めません、そして突然私たちは振り返って、私たちの「スタートアップ」がすでに15歳であるのを見る。そして、周りの世界はずっと前に変わりました。そして、私たちのプロジェクトには、同じBasic / Delphi / Fortran /何でもあります。そしてそれと一緒に暮らすには?



いいえ、私は別のホリバーを繁殖させたくありません、そしてこれはファンを投げるにはほど遠いです。特にDelphiで、古いテクノロジーで100万行以上のコードに相当するプロジェクトを主導するのは私の個人的な苦痛です。



そして、成功したプロジェクトが一般的にどれだけ長く続くかが興味深いものになります。周りを見渡せば、原則として「ひげを生やした歴史」を持つプロジェクトはかなりあります。これらは、WinRAR、Microsoft Office、AutoCAD、Photoshop、3DSmaxなどです。さらに、これらは大衆向けのプロジェクトです。そして、さまざまなレベルのさまざまな銀行システム、CIS、CRM、およびその他の「企業」システムがいくつ存在します。そしてそれらの多くは過去5年間に書かれていません。



もちろん、時代に遅れないようにしたいと思いますが、大規模なプロジェクトをある言語から別の言語に移行することは、私の意見では難しい作業です。この移行が進行し、新しいコードが作成されるだけでなく、古いプロジェクトも引き続き機能し、稼働し、開発されるはずです。新しいプロジェクトでは、古いプロジェクトのすべてのロジックを繰り返す必要がありますが、それは必ずしも明確ではありません。古いプロジェクトでは、開発者によって長い間サポートされていないライブラリに多くのロジックを構築できます。新しいプロジェクトでは、これらのライブラリを置き換える必要があります。これらがビジュアルコンポーネントである場合、これはさらに困難です。代替を見つけることに加えて、新しいコンポーネントが古いコンポーネントの動作を繰り返すように、これらのビジュアルコンポーネントを操作するためのコードを書き直す方法も検討する必要があるためです。もちろん、すべてが解決可能であり、プロジェクトの作業を100%繰り返すという目標はありません。しかし、これを行うための50%でさえ、非常に非常に困難であり、そのような書き直しの過程で、書き直しを決定したプラットフォーム/言語が何らかの形で適切でないか、すでに人気を失っていることが判明する場合があります。



もちろん、私は主に、重要なロジック層を持つ大規模なプロジェクトについて話しています。百万行以上。それら。ミニサイトではなく、マイクロサービスではなく、そのようなモノリスについてです(「コンポーネント」/「レイヤー」などに分割されている場合でも)。



ここにいる人たちの意見を知りたいのですが、同じような問題に遭遇したことがありますか、また同じような状況でどのように行動しましたか?



10〜15年以内にプロジェクトを別のプラットフォームに転送する必要がないように、開発中にどのソリューションを適用することをお勧めしますか?



答えてくれてありがとう!



All Articles