私は数年プログラミングをしており、時間の経過とともにC#とJavaScriptに非常に慣れてきました。大規模なC#プロジェクトとJavaScriptプロジェクトがいくつかあり、操作に問題はありません。私は最近、PHP&AngularJSプロジェクトを開始し、PHPの経験はありません。
PHP側の流れが追跡しづらくなってきています(JavaScript側は大きいですが、簡単に処理できます)。私が試してみると、もつれたボールを想像しています私が始めたときに私が犯した主な設計ミスは、積み重なって設計に影響を与え始めており、新しいものを実装するのにますます時間がかかります。
私は厳しい締め切りにあり、DRY、SOLID、良いコードを書くのがますます難しくなっています。コードのチャンクをコピー/貼り付けして、設計時間が長くなるにつれ、動作にわずかな変更を加えることがより魅力的になってきています。また、コンテキストスイッチを実行する必要がある場合(あるプロジェクトからこのプロジェクトに戻る場合)にコードベースに戻るのにも長い時間がかかります。このプロジェクトに戻ると、いつも不安を感じます。
これを解決するには、どのような手順を踏めばよいですか?余計に時間がかかることも正当化する必要があるため、上司は開発者ではなく、開発やソフトウェアのライフサイクルに精通していないため、通常よりも説明が難しい場合があります。
あなたは技術的負債を負っています。ずさんなコードを締め切りで正当化すればするほど、締め切りが多くなり、達成度はますます低くなります。
これで完全に回避できることを理解してください。誰もあなたを混乱させてあなたを混乱させるつもりはありません。混乱に包まれたある日目覚めるだけです。
その時点で、履歴書を更新して私の問題にするか、借金を返済してコードのクリーンアップに時間をかけるかを決定します。
あなたが掃除ルートに行くなら、これは「デザインにより多くの時間を費やす」ことではないことを理解してください。これは、いくつかの怠惰な習慣を破り、ゴミを出すことです。
ダーティなコードのホールセールを捨てることは悪い考えです。そのために行われた作業のためではなく、機能するコードがアイデアを捉えるためです。ダーティなコードを捨てる前に、アイデアをクリーンなコードに移してください。
単体テストがあるとこれは役立ちますが、同じ注意を払ってテストを作成した場合は、修正も必要になる可能性があります。
固さをあきらめないでください。変更できない場合は、ソフトウェアではありません。
新しいものを実装するのに、ますます時間がかかります。
これが正当な理由です。頑張って、カラスを食べて、物事に時間がかかる理由と、システムのリファクタリングと再設計に少し時間を費やす必要があることを説明します。
それを行わない場合、ダウンローで少しずつリファクタリングする必要があります。タスクは既に必要以上に時間がかかっています。コードベースを変更するたびに少し時間がかかります。統合テストを追加します。抽象化を抽出します。
「巨大なプロジェクトをリファクタリングするにはどうすればいいですか?」 「1枚ずつ」です。
関連する投稿を読んでいて、このブログ投稿に出くわしました: http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/ 。 [〜#〜] tldr [〜#〜]:プロジェクトに巨大なリファクタリング「フェーズ」を作成しないでください。プロジェクトオーナーから賛同を得ることはまずありません。その間、whatについて取り組むべき選択のガイドがなくなります。代わりに、新しい変更やバグ修正を行うたびに時間を取って、現在作業しているコードを取り除いてください。あなたがそれらを修正する機会があるときに臭いがくっつくのを許さないでください。