質問

ということかんが継承されたC#のコードベースを使用するワンクラス200staticメソッドを提供コア機能などのデータベースのルックアップ).多くの夢このクラスが豊富に使用のハンガリー語表記の悪ます。

ば、refactorの変数名のハンガリー語の表記、またはお任せくのお米"ひとめぼれ"や小

を選択した場合に変更すべての変数を削除ハンガリー語表記で何をする方法は?

役に立ちましたか?

解決

そのままにしておきます。時間を有効に活用できます。

他のヒント

リファクタリング-その規模でのハンガリー語の表記法は、コードの自然な読みやすさを本当に妨げるものであり、演習はそこにあるものに慣れるのに良い方法です

ただし、コードベースを知っている他のチームメンバーがいる場合は、リファクタリングに関するコンセンサスが必要になり、変数のいずれかが1つのプロジェクトの外部に公開されている場合は、そのままにしておく必要があります。

変数名、リファクタリングを右クリック->名前を変更します。

これを行うVSアドインもありますが、組み込みの方法はうまく機能します。

私はどうしますか?コードを維持するだけで、重要な方法を書き直さないと仮定しますか? そのままにしておきます。そして、コードを追加するときは、既存のスタイルを使用します。つまり、意味のないHいハンガリー語表記を使用します(気分が悪くなるほど汚いです)。

しかし、ほら、本当に hankerin 'fer refactorin' を持っているなら、一度に少しだけやってください。作業するたびに、変数名の変更に10分かかります。少し片付けます。数か月後、whiのようにきれいになったと思うかもしれません。...

ハンガリー語表記には2種類あることを忘れないでください。

元のチャールズ・シモンイHNは、後にAppのハンガリー語として知られ、後のシステムハンガリー語と呼ばれる憎むべきものは、いくつかのくちばし(専門用語)を完全に読み違えたシモニーの元の論文

残念なことに、System HNはPetzoldなどによって広められ、今日のように正当に認識されているより支配的な中絶になりました。

元のAppsハンガリー記法の意図についてのJoelの優れた記事を読んで、急いで迷子になって申し訳ありません。

もしもあなたが持っているのがアプリのハンガリー語なら、おそらく元のCharles Simonyiの記事とJoelの記事の両方を読んだ後にそれを保持したいと思うでしょう。

System Hungarianの蒸し暑い山に上陸した場合

すべてのベットはオフです!

ふう! (鼻を押しながら言った)(-:

幸運に感じてハンガリー語を消したい場合は、使用されているハンガリー語の接頭辞を分離し、検索してファイルを置き換えて nothing に置き換えてから、再構築します。エラーの数が少ない場合は、修正してください。エラーの数が膨大な場合は、戻って最初に論理(ドメインごと)クラスに分割し、次に個別に名前を変更します(IDEが役立ちます)

以前はVB6の時代に宗教的に使用していましたが、VB.NETが公開されたときに停止しました。これは、新しいVBガイドラインが述べていることです。他の開発者はしませんでした。そのため、古いコードがたくさんあります。コードのメンテナンスを行うとき、関数/メソッド/サブタッチから表記を削除します。すべてに対して非常に優れた単体テストを取得し、壊れていないことを証明するために実行できる場合を除き、一度にすべてを削除することはしません。

これを行うことで、どれくらい壊れますか?それは自分自身に問うべき重要な質問です。そのライブラリを使用するコードが他にもたくさんある場合は、名前を変更する演習を行うことで、人々(たぶんあなた)のために作品を作成しているだけかもしれません。

リファクタリングの際に行うことのリストにそれを入れました。少なくともその後、誰もがあなたがライブラリを(一時的に)破壊することを期待しています。

そうは言っても、名前の付けられていないメソッドや変数に完全にいらいらするので、関係を深めます。

私はそれからプロジェクトを作成しません。私はVSのリファクタリングツールを使用し(実際にはResharperのを使用しますが、VSの作業はうまくいきます)、変更するために呼び出されたメソッドのすべての変数を修正します。または、大規模な変更を行う必要がある場合は、理解するために呼び出されたメソッドで変数名をリファクタリングします。

削除および変更する正当な必要性がある場合は、組み込みのリファクタリングツールまたはResharperなどを使用します。

しかし、私はクリス・コンウェイに一定の見地から同意し、なぜあなたはうんざりしますか?それ"方法は本当に最適な方法です!

直接使用する場合にのみ変更してください。また、テストベンチがまだ機能することを確認するために、適用する準備ができていることを確認してください。

ハンガリーの表記を段階的に廃止する最善の方法は、コードを修正するときにリファクタリングすることです。この種のリファクタリングを行うことの最大の利点は、変更するコードの周囲に単体テストを作成して、指を交差させて既存の機能を壊さないことを期待するのではなく、セーフティネットを作成することです。これらのユニットテストを実施したら、コードを自由に変更してください。

より大きな問題は、200(!)メソッドを持つ単一のクラスがあることです!

これが非常に依存している/大幅に変更されたクラスである場合、より使いやすくするためにリファクタリングする価値があるかもしれません。

これでは、Resharperは絶対に必要です(組み込みのリファクタリングを使用できますが、Resharperの方がはるかに優れています)。

関連するメソッドのグループの検索を開始し、これらをリファクタリングして小さな凝集クラスにします。最新のコード標準に準拠するように更新します。

コンパイル&テストスイートを実行します。

もっとエネルギーを持っていますか?別のクラスを抽出します。
使い古された-問題ありません。明日また戻って来てください。わずか数日で獣を征服できます。

い@Booji--これから手動で、通常のベースが既に訪問し、コードその他の正当な理由その後、ごく最も一般的なものにし、人を大切についてご覧いただけます。

したヴィッセル神戸は、神戸市民のうえ同様の問題は、私の場合、違反したコードしました。非常に古い癖の悪いような"ハンガリーからFoxPro日かった弱いタイピングや珍しいスコーピング)—習慣って蹴.

このハードで受け入れで矛盾したスタイルにドラインをサポートしています。なんとたった週間前または"ねじれ"を始めたパラメータ名の頭文字"p".認知移し、当初は感じるようになる感覚の自由なのです。世界になかったかということだと思います。

この問題について私が取り組んできた方法は、変数に出会ったときに一度に1つの変数を変更し、さらに詳細な変更を行うために戻ってきたときにさらに広範な変更を実行することです。もしあなたが私のような人なら、変数の異なる命名法はしばらくバットバットを狂わせるでしょうが、あなたは徐々にそれに慣れるでしょう。重要なのは、必要な場所にすべてが揃うまで一度に少しずつ削っていくことです。

代わりに、変数を完全に放棄し、すべての関数に42を返すようにすることもできます。

より大きな問題は、200メソッドの God Object クラスであるように思えます。ハンガリー語の表記を削除するだけのリファクタリングは、それ自体が低価値でリスクの高い活動であることをお勧めします。リファクタリングに自信を持たせるために、そのクラスの周りに豊富な自動化された単体テストのセットがない限り、私はあなたがそれをしっかりと本当に放っておくべきだと思います。

TDDプラクティスに従う開発者は、(願わくば)そもそもgodオブジェクトの構築を自然に避けていたので、そのような一連のテストが存在する可能性は低いと思います-包括的なテストを書くことは非常に難しいでしょう。

しかし、Godオブジェクトを削除し、単体テストベースを適切な場所に置くことは、より価値があります。私のアドバイスは、クラス自体をリファクタリングする機会を探すことです-おそらく、適切なビジネス要件/変更が発生し、そのコードの変更が必要な場合(したがって、購入されて支払われたシステム&回帰テストが付属することを願っています)。一度にすべてをリファクタリングする努力を正当化することはできないかもしれませんが、機会が来たら少しずつそれを実行し、変更を試してみることができます。このようにして、スパゲッティコードをゆっくりと、包括的な単体テストを使用して少しずつきれいなコードベースに変換できます。

また、必要に応じてハンガリー語を削除できます。

実際には、ここでアプリケーション拡張についても同じことをしています。私のアプローチは、VIMマッピングを使用して特定のハンガリー語表記プレフィックスを検索し、それらを削除して、必要に応じて大文字を修正することでした。

例(vimrcに移動):

"" Hungarian notation conversion helpers
"" get rid of str prefixes and fix caps e.g. strName -> name
map ,bs /\Wstr[A-Z]^Ml3x~
map ,bi /\Wint[A-Z]^Ml3x~
"" little more complex to clean up m_p type class variables
map ,bm /\Wm_p\?[A-Z]^M:.s/\(\W\)m_p\?/\1_/^M/\W_[A-Z]^Mll~
map ,bp /\Wp[A-Z]^Mlx~

リファクタリングのためだけにコードを壊す場合、特に、そのコードに依存している可能性のあるチームの他の人に影響を与える場合は、iをそのままにすることを真剣に検討します。

チームがこのリファクタリングに問題がなく、これに時間を費やした場合(コードがより読みやすく/保守しやすいことを意味する場合、将来的に時間の節約になる可能性があります)、Visual Studio(または任意のIDEコードのリファクタリングを支援するために使用しています)。

ただし、このような大きな変更がチーム/ボスが喜んで取るリスクではない場合、やや非正統的な中途半端なアプローチをお勧めします。すべてのリファクタリングを1回のスイープで行う代わりに、通常のメンテナンス中に触れる必要があるコードのセクション(より具体的には、関数)をリファクタリングしませんか?時間が経つにつれて、このリファクタリングが遅くなり、コードがよりクリーンな状態になります。その時点で、最終的なスイープでリファクタリングプロセスを終了できます。

ハンガリーの表記法が大好きです。どうしてそれを取り除きたいのか理解できない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top