質問

また複数のプロです。それぞれ20~50代の開発者、プロジェクトからは3~5年です。

毎回でも同じです。一部のプログラマーは明るく、一部の平均値。それぞれCS、皆様を読むデザインパターン意図は、人々と良いコードもアップのコードが入りスパゲッティです。変化のモジュールは、突然休みモジュールBが常にこれらの部品のコードのさまざまな取り組みの理解を除き、書いた人です。変化するインフラは不可能であり、下位互換性の問題を防ぐ機能です。半分の時間だいたい書き換え全てをゼロから立ち上げました。

は、人々が経験したよう扱うこととします。ですか?なっているのでしょうか?して何ができるかこれを避けるためには私として受け入れらの事実です。

編集:だっていることがわかり、感動して、量と質の対応です。このサイトおよびコミュニティロック!

役に立ちましたか?

解決

Ruthlessデューデリジェ合定数のユニット試験を防ぐ方法はありスパゲティのコードです。その後もこのバンドの援助。とすぐに停止に注目して出のパスタ。

非常によく見るスパゲッティコードを導入したい人はだれのぐさい。知り合いがより良い方法だと思います。きることがいいことだと思います。

呼び出しでお願いして変更する

その指摘の中のコードレビューは通常んです。場合にチェックしを行うことができるも感じが強く、refactorでやっている。

たい時に是非と考える人もいるかもしれない少し偏心?思くないと思っています。正直いいます。したらいいと思います。ジャークでは、このアプローチの可能な社会です。しかしく悪いコードが分か保証をしているデバッグである。もう少しといえばどちらかというと高射砲と、正しい知識を身につけましょうコードです。

思いもよりませんでしたが、文化のユニット試験を防ぐとスパゲティのコードです。この力が低下していく傾向があり単体テストスパゲッティーも織り込む。時間この部隊はつけてもいいのでしょうかそのコードやr

他のヒント

このキーを避けるためのコードの腐朽にある音のボトムアップの設計と実装方法(いと思いくことについて私のビジネス考えのボトムアップ後です!)ツールの選択は:

  • プロによる契約
  • 層状デザイン
  • 目デカップリング
  • 常に構築と再利用を心が、ジェネリックの解
  • 保の枠組みの軽量、シンプル集

このようにその他の回答者が必要ッ問題です。グリーン開発者は、メンタリング(ペアプログラミングはもち)のレビューコードとデザインレビュー).より上級者には、予断を許さない。

すべてのほとんどない恐れのリファクタリング.場合のリファクタリング病院には、既に海中に沈んで場合のリファクタリングを見ると"悪い"、その違和感があります。

時を固定して傾きを解消し、何か固定されているかもしれない私のfuxファンクションを記述する修正が行われたという間違った方法:それだけで"fux"ごドラインをサポートしています。

声で

20〜50の開発者は、おそらく問題です。これはかなり高く、チェックのすべてを維持するために管理と多くのリソースが必要になります。

私は小さな再利用可能なセグメントにプロジェクトを分割検討します。離れコアシステムから抽象特定の層

コードの異なる領域間の「ファイアウォール」を作成します。あなたは、それぞれの層が応答すること(Javaでは、これは通常のインターフェイスで行われる)コードの異なる領域または層を定義し、単一のAPIを定義することによってこれを行います。そこAPIが使用する最低限のintefacesまたはクラスであってもよいが、これらの層の内部については何も「知らない」とすべきです。例えば、GUIは知っているか、データを保存する方法を気にし、データベースは、データをエンドユーザに提示される方法を知っているか気にしてはならないべきではありません。

これらのAPIは、石にキャストする必要はありません - あなたがいる限り、あなたがファイアウォールを汚染されていないことを確認して、必要に応じて物事を追加することができるはずです。

になっていると思いまはだ

だいたい書き換え全てを最初から

だけ抱きします。
利用ユニット試験でのようなリファクタリングする共通の実践.
自動化ユニットテストを変更しませんの紹介回帰は、被説明;進の一定割合のお時間にリファクタリングの古いコードは、このように、 以下の新機能!) を確保する既存のコードベースを取得しませんり,居住地の市区町村において,少なくともいます。

コードレビ、コーディング基準は、企業政策である。

は、以下に該当するに当店-てんのような店で、マイルは変更になる場合がございます。移動しながら、チーム基盤サーバーの大部分に力を維持コードの品質は少なくとも維持させる方法が可能です。一部などは、我々が取り組まなくては追加:

  • コードレビューにワークフロー-実施を行うコードエレベーターがありましたが、すでに使用されています。含む政策するのを防ぐためのチェックインから起こる場合のコードがないの見直しを行いました。
  • TeamReview-このコードレビューの苦悩を軽減の提供により完全に内部には、IDEを実現しました。
  • チェックインの方針(一般)-多くの冷ツ利用の流れをコントロールするコードです。いう公共および保護の方法を文書化して事前にチェックインを確な作業ができずにチェックインに対応する作業。

てられたご利用の場合、異なるプラットフォームのなかには、金型ごとに何ができるかが異なります。か否具としてお互いが助けたり助けが可能です。にお使いいただければ、制御、監査ワークフローの項目に移動でき少なくとも検討に値する。

この変更プロセスへの関与プッシュバック.にとって逆風となる事態が発生した心のこの政策の研修への移行から古いバージョン管理/不良追跡システム。

多くはencapsualtionと良いデザインのいくつかの基本的な教義を、次のされていないように

これが鳴ります。

他の部分に分離されたとunreliant物事を保つことはあなたが記述問題を回避することが必須です。あなたは、いくつかのより高いレベルのデザイナーや建築家が必要になる場合があります。これは、人々は、いくつかの過酷なプロセスや変更管理を正当化してきた典型的なシナリオです。 (私はそれを提唱していない)

あなたは依存関係と相互関係を回避し、定義し、パブリック・インタフェースのみを使用する必要があります。もちろんこれは単純化し過ぎですが、あなたはおそらく、あなたのコードの一部のメトリックで多くのことを学びます - などのクラスの複雑さ、パブリックメソッド、逆コードのエンジニアリングから構築されたUMLダイアグラム、

私はあなたが依存性注入の本格利用に取得することができ疎結合は多くを助けることができる技術的特徴だと思います。あなたがアプリケーションの各部分をばらばらにするときは、「面白い」の再利用から生じたスパゲティを取得する可能性が低いです。

あなたは代わりに、過度の断片化に向かってすることができるが、それは世界的な構造的な問題のもう一つの問題は少ないのです。

目の少なくとも二対がそれを見ているまでのコードがコミットされないようにしてくださいます。

は、可能な限りクリーンなデザインを保つ努力します。これは簡単ではありませんが、それは努力の価値があります。

私はそれが正常であるとは思いません。数年にあったときに、この事を戦うことは本当に難しいです。

これを回避する唯一の方法は、態度を変更することがあります:

「アジャイル開発者がソフトウェアの設計に向かっていることを態度は、外科医は、滅菌手順に向かっていることと同じ態度です。無菌の手順では、の手術がの可能にするものです。それがなければ、感染のリスクが高すぎる容認することです。アジャイル開発者は自分たちのデザインについて同じように感じます。腐敗のも、最も小さいビットを開始させることの危険性は容認には高すぎます。」     マーティンC.ロバート 「アジャイル原則、パターン、およびC#でプラクティス」

私は非常アドバイスのために、この本を検討することをお勧めします。すべての「デザインは匂い」それの名前、その存在の理由から、それらを残しての結果。これはあなたが現在の状況が適切でないと、あなたの管理を説得するのに役立ちますがあります。

グッドラック!

ソフトウェア業界における最大の問題は、プログラミングコードの品質は主観的な問題として見られるということです。いくつかの明確に定義されたメトリックがなければ、ただきちんと整頓され、および規則を以下のことは品質が許容可能であることを保証するために十分ではありません。

がありこのに変更しようとする試みがありますが、それらプログラマーの老舗文化が離れエンジニアリングに似ているものから滞在するのは非常に難しいしようとしているため、主に十分な関心や承諾を得ることはほとんどありません。プログラミングの「純粋芸術」哲学は関係なく、どのように良い個々コーダー、グループの努力の総和が常にに起こっているように、あなたの20-50開発者はすべて、独自の方法でコードをフレイルしようとしていることを意味し「泥の大きなボール」こと。

のいずれか、これを回避するために、正規化されたコードをあなたの大会の一部、または仕事後の追撃を行い、同じ「ページ」でプログラマーの全てを取得し、開発チームは小さくなっている(1-3人)、あなたはビッグだし、カフナ。それは我々が設定したものですので、いつか大きなチームがより良いものを構築するための方法を見つけるかもしれないが、それまでも、彼らの最高は、我々は、低品質のソフトウェアを構築する6 10のうち、彼らはちょうどに近づくことができれば、非常にラッキーです行うには我々の業界...

ポール。

あなたは密接にソフトウェア開発プラクティスに従うことがあります。 constastantlyアップデートがシステムで他のものに影響を与えていることを確認して、コードレビュー、およびユニットテストがあるように持っています。 20から50の開発者はたくさんあるが、それは行うことができます。優れたプロセスを実装すると、この環境であなたを救う唯一のものです。強制コーディング標準も重要です。

追跡欠陥やシステムのさまざまな部分の性能は、あなたが問題を特定することができます。システムが変更されると設計が不十分または書かれた関数またはモジュールは、欠陥の高いレートを持つことになります。 「問題」モジュールが特定された場合の決定は、モジュール(NOTアプリケーション)を書き換えるようにすることができます。

連続リファクタリング。あなたが行くようにのHAVE のは、特に設計レベルで、リファクタリングします。あなたが壊れたコードやデザインを見たとき、それを修正するために準備すること。これは、多くの場合、それ自体が、壊れていない何かを固定する場合です。それがあることを除いて...それはちょうどそれがまだ...壊れたのです顕在ないです。

いいえ

:)

ショアとウォーデンののアジャイル開発のアート(第4章)で「既存のプロジェクトにXPの適用」のセクションを持つ素晴らしい本です。あなたは苦戦しない限り、プロジェクトは、時間の経過とともに悪化:このような技術的負債を克服することは困難であり、それがますます困難に許容可能なリリースを出荷するようになります。唯一の解決策は、テストカバレッジとリファクタリングの改善保存した新しい機能を提供する速度を低減し、かつ時間を費やすことです。

通常、プロジェクトには多くのテストカバレッジを持っていない、とかなり徹底的にあなたのコードをビルドして行使する10分自動化されたスクリプトを実行するオプションがありません。テストするのは困難であるように、その代わりに、ほとんどのコードが構成されています。最良のオプションは、次に作るに視野にリファクタリングし始めているときに、コードはそれをテストすることが容易であるように抽象化することができ、簡単なテストカバレッジを追加することです。

チームは、それがクリーンでテスト可能にするために、コードの改善に時間を費やす必要があるでしょうけれども、あなたはおそらく、それは「仕上げ」のクリーンアップを取る時間配信を停止することはできません。だから、あなたはまた、新しい機能を追加しながら、それはステップバイステップで行う必要があります。それは大丈夫だ、最初の最悪のエリアを選択し、すぐに明らかな利点を期待してはいけません。最終的にはあなたがそこに着くだろうから、それを保管してください。すべての大規模なプロジェクトが悪いと言う声に耳を傾けないでください。

要するに、片付け毎週少しの時間を費やし、そしてコードは、より良い、それが今週よりも、次の週であることを確認します。

その他のコードレビュー、おそらくコードの所有権ます。

あなただけのいくつかのランダムなコードをハックした場合、あなたは、あなたが「所有」コードの限りを気にしません。それがこのプロジェクトの一つのモジュールを維持するためにあなたの責任だ場合、あなたは輝きたい。

とコードレビューは、あなたのコードを表示時間である。

単体テストの作成を開始し、これはあなたのコードを分離し、バグ修正のエラーをフォロー防ぐことができます。それあなたが良好なカバレッジを持っている、それはあなたが同様に使用されていないコードを削除することが容易になります。

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