誰もがソフトウェア開発におけるレガシーコードについて語っています。私は、過去10年間、コードベースを悪いものとしてペイントするために使用されていた用語を聞いています。
プログラマーにとって同様に強力な意味を持つこの用語はどこから始まったのですか?
この用語の先駆けとなったソフトウェア開発に関する本があるに違いない。 「レガシーコード」という用語の起源を見つけたいです。
レガシーコードは、特にコードに適用される レガシーシステム のフレーズに基づいています。ウィキペディアによると、おそらく1970年代にさかのぼり、1980年代に一般的に使用されました。それは1990年代の技術爆発で始まりました。
これはGoogleのngramビューアで見ることができます: レガシーシステム、レガシーコード
これをさらに掘り下げると、「レガシーシステム」という用語の文書化された使用法を 1970年代 で見つけることができます。
グーグルが持っている「レガシーシステム」の最も初期の例は、1978年の 陸軍数値解析およびコンピューター会議の議事録 に関する本にあります。
...明確に定義された問題に対する十分に考慮され、文書化されたソリューションは、レガシーシステムの動作を理解し、既存のシステムを自信を持って変更する必要があることです。
「レガシーシステム」がテクノロジー業界以外で使用されている例もあります Clout:Womanpower and Politics grin 1976:
...さらに、彼女は強力な銀行および通貨委員会の3位の民主党員として議席を握っています。これは、レガシーシステムを介するのではなく、自分で築いた権力の地位です。
これらの使用例が純粋なソフトウェアの世界を超えていることを示すこれらの例を超えて、用語が正確にどこで発生したかについての詳細は、時間の砂の中に失われる可能性があります。軍事的および政治的言及を考えると、それはそれらを起源とする可能性があります(主に 軍事およびその専門用語の移動 (「戦争中にケンブリッジで実行された多くの軍事電子プロジェクトの同窓生を介して、「kluge」がMITに来たようです(TMRCを収容したMITの由緒ある建物20に多く...) "))
レガシーコードベースは通常、POSシステムではなく、コードベースに存在するシステム、または新しい開発に使用されなくなったシステムを指します。たとえば、私のチームは現在、レガシーコードと見なされるいくつかの.net 1.1および2.0アプリケーションをサポートしています。変更が必要な場合は、最新のフレームワークと標準を使用するように書き換えまたは更新します。それまでは、機能を継続する必要があるが拡張機能やコード修正は実装されていないレガシーアプリケーションとしてそれらを管理します。
VB6とClassic ASPで記述された、サポートされていないレガシーシステムもいくつかあります。これらのシステムをサポートまたは変更するための機能や指示はありませんが、システムが稼働し続け、機能強化の必要がない限り、更新されることはありません。これらのシステムには特に問題はありません。彼らは本来の方法で仕事を行っており、90年代半ばから後半までのアプリのように見えることを除けば、大きな問題はありません。
したがって、レガシーとは、POSが現在の標準に達していない以前のテクノロジーまたは言語で作成されたシステムを意味するのではありません。一部のレガシーシステムは、マネージコードと15年以上のベテランWebプログラマーの経験を可能にする現在存在する開発方法論に欠けていたため、POSとして認定されています。
「レガシーコード」とは、マーケティング担当者が使用するコードで、コードが古い(おそらくうまく機能する)人々に、最新の最高の(そしておそらくバグが多い)ソフトウェア言語とテクニックにアップデートするよう圧力をかけます。これは「レガシーシステム」と密接に関連しています。「レガシーシステム」は、正常に機能するものの、現在「政治的に正しい」もの(OpenVMS、IBMシステムなど)に準拠していない古いハードウェアおよびオペレーティングシステムを指します。
レガシーコードという用語は comp.sys.amiga でGlenn Everhartが使用する少なくとも1989年まで遡ります。
(ちなみに、はい、私はdoCでプログラムすることもあります...しかし、レガシーコードを変換する方が簡単だと思います言語を変更せずに...)
以前にGoogleブックスで何も確認できませんでした。