問題タブ [legacy-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - レガシー システム用の代替 asp/html フォームの作成
簡単な質問です。
ユーザーにデータを入力するためのフォームを提供し、ユーザーが処理のためにフォームを「送信」するレガシーWebサイト(私の管理下になく、変更できない)があります。このフォームには実質的にエラー チェックがなく、ユーザーの助けもほとんどありません (つまり、約 12 年前に設計が非常に貧弱で、それ以来更新されていません)。
それにもかかわらず、このアプリケーションのバックエンドは重要な機能を実行します。
私の質問は、別のサーバーとドメインにあるasp.netに独自の新しいフロントエンドを(適切な事前送信検証を使用して)記述し、シミュレートすることは可能ですか(レガシーWebサイトを変更する機能はありません)送信されているフォーム/データを再現する限り、別の Web サーバーに「送信」しますか?
ここでの重要な質問は、ある Web サイトで生成されたフォームを別の Web サイトに送信することは可能ですか? また、レガシー サイトに何らかの変更を加えることで、これを実行できるでしょうか?
コメントをお待ちしております。
ruby-on-rails - Ruby 1.9 での主な構文の変更点は何ですか?
また、Ruby 1.9 にアップグレードすると、バージョン 1.86 からのレガシー コードにどのような影響があるのかも気になります。新しいバージョンは下位互換性がありますか?
oracle - 間違った方法で Oracle に挿入する - どのように対処すればよいですか?
次のコードを見つけました。
PK のシーケンスを作成できますが、それを使用しない既存のコード (クラシック asp、このプロジェクトの一部ではない既存の asp.net アプリ) がたくさんあります。
私はそれを無視するべきですか、それとも既存のコードに入らずに修正する方法はありますか?
私は最善の選択肢はただ行うことだと考えています:
オプション?
synchronization - 従来のエンタープライズ アプリケーションの「同期」キーワードは疑わしいですか?
私は古典的なエンタープライズ アプリケーションについて話しています。通常、ある種のアプリケーション サーバーまたはコンテナーでホストされます。エンティティ、サービス、プレゼンテーション/UI、およびリレーショナル ストレージだけです。
synchronized
そのようなアプリケーションで (メソッドまたはブロックのいずれかの) キーワードを見るたびに、私は非常に疑わしくなります。私の意見では、これは基本的なアーキテクチャの概念 (たとえば、ドメイン モデルが複数のクライアント間で共有されていないなど) を理解していないことの兆候であるか、さらに悪いことに、アーキテクチャが実際には非常に失敗している兆候です。
ここで私の考え方を共有しますか?それとも私は完全に軌道から外れていますか?従来のエンタープライズ アプリケーションで実際に同期が必要なユース ケースはありますか?
visual-studio - 多言語ビルド ツール
数十個の個別の EXE と DLL で構成される大規模なエンタープライズ システムのビルド プロセスがあります。これらは、C、C++、Fortran、Python、Awk などの複数の言語を使用します。ビルド スクリプトは、40 年以上にわたって進化した 4DOS バッチ プロセスです。彼らは大きくて扱いにくく、絶え間ない世話と餌が必要です。
Visual Studio ソリューションとプロジェクト ファイルを基本的なコンパイル/リンク エンティティとして保持する必要があります。これらの異なる言語をまとめるための最適なツールは何ですか? 4DOS は非常に古く、扱いにくいものです。
編集:
ありがとうギャング。PythonなのでまずはSCONSを試してみようと思います。Python を更新および保守できる、Python に精通した多くの人がいます。私は現在 61 歳ですが、長期的には私がこれをサポートすることはありません。JAVA や XML を必要とするものは好きではありません。これらの言語は、当社の製品ミックスにまだ含まれておらず、十分に活用されているからです。
それらのブログ投稿は良かったです。彼は、SCONS が最適であるが、彼の目的には遅すぎると結論付けました。私はナイトリー ビルドで速度を求めているわけではありません。朝7時までです。可読性と保守性が必要です。
php - PHPレガシープロジェクトにORMを追加するにはどうすればよいですか?
私たちは2年以上開発されているPHPプロジェクトに取り組んでおり、今ではチームは開発をORMに切り替える準備ができていると感じています。これは、開発を本当にスピードアップし、オブジェクトで操作できるようにし、ほとんどの場合、SQLコードやデータベーステーブルの観点から考える必要がないためです。
Doctrine ORMを選択することにしました。これは、YAMLデータフィクスチャがロードされているためです。ユニットテストには非常に必要です。
私が抱えている主な懸念は、新しいORMフレームワークを使用すると、サイトのパフォーマンスが低下する可能性があることです。現在のデータベース抽象化レイヤー(pg_connect
構文を使用し、 PDO互換ではありません)間で共有接続を確立することはできません。PDO_SQLITE構文と互換性のないSQLコードが多数あるため、データベース接続メカニズムをPDO互換に切り替えることはできません。
ですから、私が理解しているように、それを使い始めると、データベース接続の数が2倍になります。データベースサーバーがこれを処理できるかどうかはわかりません。
この状況で私たちに何をすることをお勧めしますか?
c# - C#. レガシ コードにポリモーフィズムを追加する
変更できない従来のクラスがあるとします。
そのような署名を持つヘルパーを書きたい:
最初の引数が「オブジェクト」型であることに注意してください。テストコードは次のようになります。
問題は、これらに加えてどのような実装を想像できるかです。
ありがとう!
refactoring - レガシーコードの悪夢
私は、クラス図がスパゲッティの皿の上のクモの巣によく似ているプロジェクトを継承しました。私は過去 2 か月で約 300 の単体テストを作成し、メインの実行可能ファイルをカバーするセーフティ ネットを自分自身に与えました。
私は、アジャイル開発に関する書籍のライブラリをいつでも手の届くところに置いています。
- レガシ コードを効果的に使用する
- リファクタリング
- コードコンプリート
- C# でのアジャイル原則のパターンとプラクティス
- 等
問題は、私が触れるものすべてが他の何かを壊しているように見えることです. UI クラスには、ビジネス ロジックとデータベース コードが混在しています。多数のクラス間に相互依存関係があります。他のクラスを変更するたびに壊れる神のクラスがいくつかあります。また、約半分のインスタンス メソッドと半分の静的メソッドを持つミュータント シングルトン/ユーティリティ クラスもあります (皮肉なことに、静的メソッドはインスタンスに依存し、インスタンス メソッドは依存しません)。
私の前任者は、すべてのデータセットを逆方向に使用するのが賢明だとさえ考えていました。すべてのデータベースの更新は、ストアド プロシージャのパラメーターとして db サーバーに直接送信され、データセットは手動で更新されるため、UI には最新の変更が表示されます。
私は時々、彼らが仕事の安全のために、あるいはコードを引き渡す前の最後の別れとして、ある種の弱い難読化を使用したのではないかと考えたくなることがあります。
この混乱を解消するための良いリソースはありますか? 私が持っている本は役に立ちますが、私が直面しているシナリオの半分しかカバーしていないようです.