問題タブ [refactoring]
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.
unit-testing - テストされていないコードとテストできないコードをどのようにテスト/変更しますか?
最近、すべてのコードに単体テストがあるわけではない古いシステムで、いくつかのコードを変更する必要がありました。
変更を加える前にテストを書きたいのですが、各クラスは多くの依存関係やその他のアンチパターンを作成し、テストが非常に困難でした。
明らかに、コードをリファクタリングして、テスト、テストの作成、および変更を容易にしたかったのです。
これがあなたのやり方ですか?それとも、リファクタリングが完了した後にほとんど削除される、書きにくいテストの作成に多くの時間を費やしますか?
visual-studio - Visual Studio のリファクタリング: メソッドの削除
remove メソッドのリファクタリングを実行できる Visual Studio アドインはありますか?
次のメソッドがあるとします。
または、結果が無効なバリアント。
リファクタリングの目的は、DoSomething へのすべての呼び出しを ComputeResult への呼び出し、または ComputeResult がメソッド呼び出しでない場合はパラメーターを使用する式に置き換えることです。
.net - コードベースで孤立したメソッドを見つける
誰もが一度は目にしたことがあると思います... 1 年か 2 年使用されているコード ベースで、機能が追加され、バグが修正されると、実際には存在しないコードの断片ができあがります。もう使う。コードベースを検索して、コード内の他の場所で決して使用されていないメソッドを表示する方法 (特に VS.NET でサードパーティ ツールの有無にかかわらず) があるかどうか疑問に思っています。
このタイプのユーティリティに関して私が考えることができる 1 つの課題は、暗黙的な型変換が発生しているときにマップ バックできないことです。しかし、それが問題ではないと仮定すると、私のオプションは何ですか?
java - ラベル付きループのリファクタリング
ラベル付きのブレーク/コンティニューはここでは完全に「nono」であると確信した後、コードからラベルを削除するための支援が必要です。
同じ長さの正方行列とベクトルがあります。ベクトルには、マトリックス内の値に応じて、ループ内でベクトルが変更されるいくつかの値がすでに含まれています。
コードフラグメントが基本的に理解できることを願っています…
ラベルのない、より読みやすい/より良いバージョンがあることを私に納得させてください。
c++ - C++の優れたリファクタリングサポート
Visual StudioのC#リファクタリングのサポートは、最近では非常に優れています(ただし、これまでに見たJava IDEの半分ではありません)が、C++のサポートが本当に不足しています。
リファクタリングを見たことがあります!現在試してみていますが、もっと良いツールやプラグインを知っている人がいるかもしれません。
私は現在VisualAssistXを1〜2週間使用していて、完全に中毒になっています。ヒントをありがとう、私も仕事で私に免許を取得するように上司を説得しようとします。
Visual AssistXがいくつかの特定のリファクタリングの後にVisualStudioを台無しにして以来、私は数日間バグハンティングを続けてきました。私(およびカスタマーサポート)が追い詰めるのに1週間かかりましたが、今のところVisualAssistXはClipXとの良い組み合わせ。
asp.net - 既存システムでのテスト容易性のためのリファクタリング
私は製品に取り組むチームに参加しました。この製品は 5 年ほど前から存在しており、ASP.NET WebForms を使用しています。元のアーキテクチャは時間の経過とともに薄れ、ソリューション全体で物事が比較的混乱しています。それは決してひどいものではありませんが、間違いなくいくつかの作業を使用できます。あなたは皆、私が何を意味するか知っています。
私は約 6 か月前にプロジェクト チームに参加して以来、いくつかのリファクタリングを行ってきました。これらのリファクタリングのいくつかは単純で、Extract Method、Pull Method Up などです。いくつかのリファクタリングはより構造的です。すべてのコンポーネントに付随する単体テストの包括的なスイートがないため、後者の変更は私を不安にさせます。
チーム全体がリファクタリングによる構造変更の必要性を認識していますが、プロジェクト マネージャーは、システムに回帰バグを導入していないという確信を持ってリファクタリングを行うための十分なテストがないという懸念を表明しています。彼は、まず (既存のアーキテクチャに対して) もっと多くのテストを書き、それからリファクタリングを実行することを望んでいます。私の主張は、システムのクラス構造が緊密に結合されすぎて適切なテストを記述できないということです。リファクタリングを実行する際には、よりテスト駆動型のアプローチを使用する方がよいかもしれません。これが意味するのは、既存のコンポーネントに対してテストを書くことではなく、特定の機能要件のテストを作成し、それらの要件を満たすために既存のコードをリファクタリングすることです。
最善の行動方針について経験のある人はいますか? 私自身の考えはありますが、コミュニティからの意見を聞きたいです。
objective-c - Xcodeに相当するReSharperはありますか?
私は Xcode/Objective-C/Cocoa の完全な初心者ですが、新しい言語、プラットフォーム、パラダイムを理解するのが本当に楽しくなり始めています。
ただし、Visual Studio と R# を長い間使用してきたため、リファクタリングや補完などのコーディング ツールに甘んじていました。私が知る限り、Xcode にはかなり限定的なサポートが組み込まれています。もの。
その点で、クラスインターフェイス定義から実装スケルトンを自動的に生成するなどのコーディングヘルパーを追加するアドインまたはXcode環境で利用できるものがあるかどうか、誰かが知っていますか?
ないと思いますが、聞いても仕方がないと思います。
c# - リスト内で一致を見つける最もクリーンな方法
リスト内の何かを見つける最良の方法は何ですか? LINQ にはいくつかの優れた機能があることは知っていますが、C# 2.0 に関する提案も得ましょう。この一般的なコード パターンに最適なリファクタリングを取得しましょう。
現在、次のようなコードを使用しています。
また
asp.net-mvc - 従来の ASP をリファクタリングするためのベスト プラクティスは?
大規模で古い、スパゲッティだらけの ASP システムで重要な開発を行う必要があります。私は長い間 ASP から離れており、Rails の開発に力を注いでいます。
私が行った基本的な手順の 1 つは、ページを意味のある名前のサブと関数にリファクタリングすることです。これにより、少なくともファイルの先頭で何が一般的に行われているかを簡単に理解できるようになります。
ASP 用の価値のある MVC フレームワークはありますか? または、少なくともビューからビジネス ロジックを取得する方法のベスト プラクティスはありますか? (昔はたくさんのインクルードを行っていたのを覚えています。それは今でも行われているのでしょうか?)
ビジネス ロジックの単体テストも実施したいのですが、質問が多すぎるのではないでしょうか。
アップデート:
このプロジェクトには 200 を超える ASP スクリプトがあり、数千行にもなります。
「大幅な書き直し」を選択するかもしれませんが、それまでは、ページを変更するときは、スパゲッティのクリーンアップに少し余分な時間を費やしたいと考えています。
database - どのような種類のデータベースリファクタリングツールがありますか?
CIワークフローに統合するものを探しています。dbdeploy
について聞いたことがありますが、他のものを探しています。dbdeployが気に入らない理由は、サーバーにJavaをインストールしたくないからです。
もちろん、このソリューションには、いくつかのシェルスクリプトをつなぎ合わせる必要がないことをお勧めします。