問題タブ [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.

0 投票する
3 に答える
4411 参照

java - ジェネリックなしでレガシーコードを使用するときにEclipseの警告を回避するにはどうすればよいですか?

JSON.simpleを使用して、Java から JSON 出力を生成しています。しかし、jsonobj.put("this", "that") を呼び出すたびに、Eclipse で警告が表示されます。

型の安全性: メソッド put(Object, Object) は生の型 HashMap に属します。ジェネリック型 HashMap への参照はパラメーター化する必要があります

JSONObject がジェネリック化されている場合は、クリーンな修正になりますが、ジェネリック化されていないため、これを修正するためにジェネリック型パラメーターを追加することはできません。できるだけ少ない警告をオフにしたいので、多くのメソッドに「@SuppressWarnings("unchecked")」を追加するのは魅力的ではありませんが、警告を我慢する以外に他のオプションはありますか?

0 投票する
4 に答える
383 参照

jquery - jquery 1.3から1.4にアップグレードするための最良の方法は何ですか?

使用しているすべてのライブラリを考慮して、アップグレードが実行可能かどうかを判断しようとしています。問題は、これらのプラグインのいくつかがもう開発されていないことです。そのため、どのプラグインが1.4と互換性があるかわかりません。

古いプラグインへのレガシー依存関​​係を考慮して、これに最もよくアプローチする方法について何か考えはありますか?

0 投票する
2 に答える
1643 参照

html - テーブルベースのレイアウトをdiv/cssベースのレイアウトに変換する

かなり大きなWebアプリケーションのUIを書き直すことになっています。重要なのは、レイアウトが完全にテーブルに基づいていることです。どういうわけか、半自動でテーブルをdivに変換できれば、時間を大幅に節約できます。

このようなことをするときのベストプラクティスは何ですか?これはまったく良い考えですか?

アプリケーションは、実行時にhtmlに解析されるレイアウトファイル(ヘルパーに似たものを含む)を使用し、アプリケーション自体も特定の場所でhtmlを出力します。したがって、作業は、これらのヘルパーとアプリケーション内のhtmloutputコードの変換で構成されます。

0 投票する
11 に答える
1295 参照

legacy-code - レガシー製品に取り組むようにチームをやる気にさせる方法

私たちは、かなり古く、プログラミング初期の言語で書かれたレガシー コードに取り組んでいるチームです。チーム メンバーは最新のテクノロジのトレーニングを受けており、現在はレガシー コードに取り組まれているため、満足していません。レガシーコードでも働くように彼らを動機付けるにはどうすればよいですか?

0 投票する
6 に答える
2084 参照

java - Javaで大企業のプロジェクトを理解する

Javaで大企業のプロジェクトを理解するための最良の方法は何ですか?

0 投票する
3 に答える
145 参照

c++ - インターフェイスの再設計に関する提案を求める

レガシー コードの大部分を維持する一環として、主にテスト (単体テスト) を容易にするために、設計の一部を変更する必要があります。解決する必要がある問題の 1 つは、コンポーネント間の既存のインターフェイスです。2 つのコンポーネント間のインターフェイスは、静的メソッドのみを含むクラスです。

簡単な例:

インターフェイスはコンポーネント A によって使用されるため、さまざまなメソッドが ABInterface::methodA() を使用して入力データを準備し、コンポーネント B 内の適切な関数を呼び出すことができます。

現在、さまざまな理由から、このインターフェイスを再設計しようとしています。

  • 単体テストの範囲を拡張する - コンポーネント間のこの依存関係を解決する必要があり、スタブ/モックが導入されます

  • これらのコンポーネント間のインターフェースは、元の設計から分岐しました (つまり、コンポーネント間の i/f に使用される多くの新しい関数が、このインターフェース クラスの外で作成されます)。

  • コードは古く、時間の経過とともに大幅に変更されたため、リファクタリングが必要です。

この変更は、システムの残りの部分に影響を与えるものであってはなりません。テストに必要な多くのアーティファクトを本番コードに残すことを制限しようとしています。パフォーマンスは非常に重要であり、再設計後の低下はまったくない (またはごくわずかである) 必要があります。コードは C++ で OO です。

どのようなアプローチを取るべきか、いくつかのアイデアを探しています。これを効率的に行う方法について何か提案はありますか?

0 投票する
2 に答える
149 参照

asp.net - 複数の場所でレガシーコードの更新を合理化するためのソリューションはありますか?

私は元々2つの異なる種類のファイルを処理するために設計された古いコードで作業しています。私は最近、このコードに新しい種類のファイルを追加するという任務を負いました。私の問題のほとんどは、リストの名前から複数形の小文字でのファイルの記述方法まで、すべてを処理する新しいエントリを含む広範なXMLファイルに入力することで解決されました。しかし、24の異なるコードファイルに50の異なる場所があり、元の2つのファイルタイプに対してのみ分岐するハードコードされたswitchステートメントを更新する必要があったため、これでは不十分でした。

残念ながら、これには一貫性がありません。XMLファイルから半分、ハードコードから半分を操作するメソッドがあります。XMLファイルから動作するように見えるファイルの中には、そうでないものもあれば、ハードコードを更新する必要があると私が予想するものもありますが、それは必要ありません。したがって、これらの大部分を見つける唯一の方法は、システムの一部のみが動作しているときにシステム全体をテストし、修正する1つのステップを見つけることです(幸運なことに、エラーログが実際に何が起こっているかを教えてくれます)。その後、すべてを再度実行します。これは、すでに機能することが確認されているコードの部分のテストに時間を浪費し、その上に追加する必要のある新しい部分のテストに費やす時間を無駄にします。

面倒な作業ですが、運が良ければ、近い将来、さらに別の新しい種類のファイルを追加する必要があると予想できます。

この種の取り組みを支援できる解決策はありますか?現在の機能のいくつかのパラメーターを入力し、コードプロジェクト全体のどのポイントを実際に更新する必要があるかを文書化し、次に新しい機能をコードに追加する必要があるときに何かを実行できるもの。完全に自動化する必要はありません。これは、すべての特定のポイントに直接移動したり、ロードする必要のあるパラメーターの種類を記録したりするのに役立ちます。

特に重要なことは間違いありませんが、コードはASP.NETページ、一部のASP.NETコントロール、数百のC#コードファイル、および少数の追加のXMLファイルで構成されています。現在、すべてがいくつかの大きなVisualStudio2008プロジェクトに含まれています。

0 投票する
1 に答える
52 参照

asp.net - 別のサーバー側プログラミング プラットフォームのベスト プラクティスを使用してレガシー サイトを拡張する

私が働いている会社には、独自のプライベート PHP ベースの CMS を使用することに熱心なチームによって 6 ~ 8 年前に開発されたサイトがあります。ある企業のイントラネット データベースからの動的データを、このサイトに 1 週​​間で配置する必要があります。2 ~ 3 ページです。会社のサイト管理者に連絡したところ、彼女は管理部分を見せてくれました.CMSはhtmlブロックを挿入し、サイトマップを管理することしかできません.

  • 私は PHP の専門家ではありません。また、ほとんど聞いたことのない従来の CMS エンジンに飛び込みたくありません。
  • また、開発者チームには連絡したくありません。なぜなら、彼らがまだ存在し、この昔のサイトを拡張するのに十分な能力を持っているかどうかわからないし、とにかく時間がかかりすぎるからです.

IIS にヘルパー asp.net サイトをデプロイしようとしています。2 ~ 3 ページが必要で、現在のサイトから iframe 経由でヘルパー サイトを参照します。新しいページでは、現在のサイトから動的コンテンツをダウンロードすることもできます。

それは大丈夫ですか、iframeアプローチの落とし穴は何ですか?

0 投票する
1 に答える
5767 参照

legacy-code - 年率の計算 (継承されたコードの助けが必要)

私はクライアントと概算の融資オファーを提供するアプリケーションを作成しています (これらは後で他のバックオフィス システムによって計算されます)。計算機を作成している金融会社からコードを受け取りました。私の問題は、年率を計算するコードの部分 (開始料金と月額料金を含む) を理解していないことです。

彼らが使用しているこの方法かもしれませんが、私にはわかりません: http://www.efunda.com/math/num_rootfinding/num_rootfinding.cfm#Newton_Raphson

コードは正しく動作しますが、完全に理解していない、または信頼していないコードでアプリケーションを構築するのは本当に嫌いです。最終的な回答は、同じことを行うソースコードですが、コメントとわかりやすい変数名が付いています (私はそれを例外としていません :-) すべてのアイデアを歓迎します - 誰かがそれを説明する記事へのリンクを持っているかもしれません.

(私は決して数学や金融の達人ではないことに注意してください)

0 投票する
1 に答える
363 参照

c# - C#のきめ細かいアクセス許可:複数の内部システム、イントラネットシナリオ

次のシナリオがあります。

  • 複数のユーザー(<100)
  • ADのユーザーアカウント(さまざまなグループの下)
  • ADのすべてのグループは、内部部門に対応しています。各部門には少なくとも1人のスーパーバイザーがいます
  • (1つは言うかもしれません)私たちは相互監督を持っています(グループのグループに適用できる監督者の役割があります、すなわち、実際に3つまたはグループを監督する1人の監督者がいる可能性があります-ADに存在します)
  • 複数の内部システム。その半分はWebベースであり、すべてが.NetFramework上に構築されています。

現在、ほとんどのデスクトップベースのシステムは、フォルダーのアクセス許可によってユーザーを認証しています(ClickOnceを使用してネットワーク環境に展開され、各展開フォルダーは個々のユーザーによって許可されます)。ただし、これはすべてのデスクトップシステムで機能するわけではありません。次のように、2つは独自の組み込み認証システムを使用しています。

  • システムAは、基本的にさまざまなデータテーブルで構成されています(画面に一部のデータを表示するだけです)。

  • すべてのデータテーブルは、実際には同じデータの異なるグループです。このデータは特定のアカウントを参照しています。

  • すべてのアカウント行には、列{number、owner、type、data1、data2、data3、data4...}が含まれています。さまざまなグループ化は、番号/所有者/タイプに基づいています。

  • すべてのdata(n)列は数値です(グループ化が完了すると、各グループ化の合計が表示されます)

この特定のシステムでは、データ列はグループに帰属します。したがって、AD Group1のユーザーは列データ(1-5)を表示でき、Group2は列データ(7-9)を表示できます。ただし、各グループのスーパーバイザーは、グループの追加の列を1つ見ることができます(Group1のスーパーバイザーはdata(1-5)とdata6-を見ることができます。これをグループの「特別な列」と呼びます)。他のグループの列(「特別な列」を含むかどうかに関係なく)を表示できるスーパーバイザー、すべての列を表示できる一般的なスーパーバイザー、およびすべての非特殊な列を表示できるユーザーもいます。それは混乱です。

この問題を解決するには、ClickOnceだけでは不十分です。つまり、基本的に開発チームが行ったのは、特定の承認アセンブリを埋め込むことでした。これは、現在のシステムをパラメーターとして使用してデータベースにクエリを実行し(他のシステムをサポートします)、結果として列名のセットを返します。これらの結果は、特定のユーザー列のみを取得する別のクエリで使用されます。

このレガシーシステムは、新しいシステムに置き換えられようとしています。多くの検討(保守性を含む-システムアーキテクチャは混乱しています)の後、最小限の処理でデータを取得して表示するだけなので、クエリ(の一部)を使用してデータ取得ロジックを書き直すことにしました。

その上、既存のWebベースのシステムのほとんどはハードコードで許可されています(if(sADLogin == "userA"){..}); それらのいくつかは、特定のユーザーに送信され、指を交差させた非常に直感的でないURLのみに依存しています。悲しい。

許可にはより抽象的なアプローチを使用したいと思います(すべてのシステムで同じ認証プロバイダーを使用できるようにするため)。Webサービス/WCFを使用するのが適切だと思われます(デスクトップベースのシステムと一部のスプレッドシートを認証する必要があることも考慮すると、おそらくモニカを使用します)。しかし、それに適したパターンやアーキテクチャモデルを見つけることができませんでした。Microsoftのドキュメントには、Windowsグループを役割として使用できないことを除いて、そのほとんどを解決する1つのWCFイントラネットパターンがあります。インターネットパターン(http://msdn.microsoft.com/en-us/library/ff650091.aspx)がありますが、それは役割の問題を処理しているようです(これは私が今行っていることです)が、 WCFセキュリティを扱うのは初めてです。

何か案は?

ありがとう、