問題タブ [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.
php - Windows 2000 ベースの Web サイトに最適な言語
ASP と Access を使用して構築された古いレガシ Web アプリケーションの更新について問い合わせを受けました。サーバーは Windows 2000 Advanced Server を実行しており、私は IIS 5.0 を信じています (私はそれについて確認しようとしていますが、会社は技術的ではないので、サーバーで Apache が実行されていることは非常に疑わしいです)。
上記のプラットフォームでこの Web アプリを更新するには、どの言語が実行可能ですか? Windows 2000/IIS 5 に対する Web 開発作業はおろか、従来の ASP には触れたことがありません。予算の問題から、サーバーを新しいものに更新する予定はありません。
私は現在、SQLite ベースのデータベースに移行することに傾いています (顧客は現時点で MySQL のインストールにあまり熱心ではありませんが、私はまだ計画段階にあり、これは比較的トラフィックの少ない Web サイトです)。私はそれとペアですか?ASP.NET は IIS 5 でうまく動作しますか? PHP は、この種のセットアップの下で何か価値のあるパフォーマンスを発揮しますか?
wpf - MS Access VBAフォームでWPFコントロールをホストする方法は?
VBA/アクセス フォーム環境では困難/不可能な GUI 機能を必要とする大規模な MS Access プロジェクトがあります。
時間が経つにつれて、WPF をプレゼンテーション層として使用するマネージド C# 環境に書き直し/移行したいと考えています。
これを行うための唯一の実用的な方法は、より長い期間をかけて行うことです。最初に VBA フォームの一部を変換し (これにより生産性が向上します)、次に 12 ~ 24 か月かけてシステム全体を変換します。
最善のアプローチは何だと思いますか。MS Access は、変換時に WPF フォームをホストできますか?
php - 古いバージョンでは isset の動作が異なりましたか
私はこれを持ついくつかのレガシーコードを手に入れました:
正確な理由はわかりませんが、これは機能しているようです。htmlcode1 は ?pagina=homepage があるときにロードされ、htmlcode2 は pagina var が存在しないか他の何かであるときにロードされます (他の何かで実際に見たことがなく、そこにないだけです)。ウェブサイトはphp4を使用しています(正確なバージョンはわかりません)。しかし、実際には、これはどのように機能するのでしょうか? マニュアルを見たところ、 isset はブール値を返すと書かれています。
誰?
vb6 - Windows 7はVB6ランタイムをサポートしますか?
私はこれについて正解を見つけることができないようです。Visual Studio 6はサポートされないようですが、私はランタイムのみに関心があります。書き直したくないレガシーアプリがいくつかありますが、お客様はそれらがWindows7で実行されることを期待しています。
誰かがそのトピックに関するMSの公式なものへのリンクを提供できれば、それは非常に役に立ちます。
unit-testing - LARGE プロジェクトで UnitTesting を開始する
既存の大規模な CodeBase の UnitTest を開始する際の問題に対処する方法について、ベスト プラクティスを推奨できる人はいますか? 私が現在直面している問題は次のとおりです。
- 巨大なコードベース
- ゼロの既存の単体テスト
- クラス間の高い結合
- 複雑な OM (ここでできることはあまりありません - 複雑なビジネス ドメインです)
- UnitTests/TDD の作成経験の欠如
- データベースの依存関係
- 外部ソースの依存関係 (Web サービス、WCF サービス、NetBIOS など)
明らかに、結合を減らしてテストしやすくするために、コードのリファクタリングから始める必要があることは理解しています。ただし、このようなリファクタリングは、UnitTests なしでは危険です (チキンとエッグですか?)。
余談ですが、ドメイン クラスまたは層クラス (ロギング、ユーティリティなど) でリファクタリングと書き込みテストを開始することをお勧めしますか?
parsing - コードベースでテーブル名への参照を検索する
VB6 アプリケーションのレガシー コードでいっぱいのディレクトリがあります。
このアプリケーションが使用するすべてのテーブルのリストを提供するように依頼されたので、特別な SQL Server ユーザー名をそれに割り当てることができます。
テーブル名への参照についてコードベースをスキャンする最良の方法は何ですか?
私が持っていたいくつかのアイデア:
「FROM」、「UPDATE」、「INSERT」のキーワードを検索し、これらの語句を囲むテーブル名を手動でメモします。
問題点: 手作業が多い
SQL トレースを使用してアプリケーションを実行し、各関数の実行を試みてから、ログでテーブル名をスキャンします。
問題: 同じ手作業に加えて、いくつかのあいまいな機能を見落とす可能性があります
誰かがより良い代替案を提案できますか?
visualization - 他の人のコードを理解する
残念なことに、非常に古く、文書化も不十分 で、設計も不十分なコードを変更しなければならないことがあります。
既存のコードにはあまり構造がないため、簡単な変更を行うには長い時間がかかることが多く、実際に多くのコードを読まないと、どこに何が起こるかを感じることができません。
このような場合に大いに役立つと思うのは、コードの概要を視覚化し、さらに詳細にドリルダウンすることさえできるツールです。ほとんどまたはまったくない構造を見つけようとしていることを考えると、そのようなツールを正しくするのは非常に難しいと思います。
これは質問ではなく、ただの思い込みだと思います。私はそれを質問にすべきです -他の人々のコード、良い面と悪い面を理解するのを助けるために他の人は何をしますか?
.net - レガシー DB 上の NHibernate
言うのは恥ずかしいですが、言わなければなりません。私はORMを扱ったことはありません。NHibernate は .Net 向けの最も成熟した製品と思われるため、実際に検討しています (間違っている場合は訂正してください)。さて、問題は、SqlServer をメインの統合ポイントとする大規模な e コマース/予約システムがあり、かなり多くのビジネス ロジックが sprocs に含まれているということです。現在、明らかに、このアーキテクチャから離れたいと考えており、しばらくの間、少しずつそうしてきました。それで、私の本当の質問は、新しい機能のためにNHibernateを使い始めて、戻ってすべてのレガシーなものをマッピングしないことがどれだけ実現可能かということです. この種の ORM の段階的な導入はサポートされていますか? もしそうなら、それをお勧めしますか?
legacy-code - どの継承されたコードがあなたに感銘を与えたり、インスピレーションを与えましたか?
私たちの開発者が協力しなければならない継承されたプロジェクトについて、何年にもわたって多くの不満を聞いてきました。WTFサイトには、「WTF?」という息を呑むようなコードの例がたくさんあります。
しかし、実際に、「これはよく考えられていた」というコードが提示されたことがありますか。または「うわー、私はそれを考えたことはありません!」
どのような継承されたコードを使用して作業しなければならなかったので、笑顔になりましたか。その理由は何ですか。
coding-style - 新しい職場でのアプリケーションの継承
新しい仕事でアプリケーションを継承するとき、元の開発者のコーディング手法に固執する傾向がありますか?それとも独自のコーディング手法を適用し始めますか?
私はガイドラインのない小さな店で働いていて、ここのルールは何だろうといつも思っていました。一部のアプリケーションは非常によく書かれていますが、私が使用する標準 (変数名など) に従っていません。一貫性を保つために少し余分な時間がかかることに気づきました。
他のものは非常に貧弱に書かれており、開発者がキーストロークごとに考えを変えていたようです...
追加の考え
独自のプロジェクトを開始する場合はどうなりますか? そこで、新しいコーディング標準をミックスに導入しました。
- 良いコードですが、私のスタイルではありません
- 悪い習慣と標準の欠如を伴う悪いコード
- 自分の基準