もし/他の多くのコードを最適化し、あなたの計画は何ですか?

プロジェクトの迅速な反復は、長い時間の後に、コードが/他、6,7層、ジェーン、ラインの機能の何百もの入れ子になった場合の多くを充填することができます!ストレート!見て!死にました!ピープル!
実際には、これは私が見てきたかなり良い、より深刻な巣で、人がこのプロジェクトにかかった、心が絶望的でなければなりません。
これは多くの理由のために起こります
  • デザインは完璧ではありません
  • 需要が不完全考えます
  • 開発者の変更
最も致命的な「は怠け者」である。しかし、何の夢は非常に恐ろしいことではありません!
時間をかけて、彼らはピラミッドをつなぎ合わせ、場合、需要に、プラスを早期に反復を最適化するのが面倒。
コードたら、最適化を再構築するためにだけ心に複雑さのレベルを維持することが困難でした。まあ、/それ以外の場合にはエレガントにそれらの余分を離れて最適化するどのようなソリューションをすることができますか?

リターンの01先

この決意条件は練習を否定され、それは以下のコードを参照して、コードの論理式でより明確になります。
実際に、私は上記のコードのこの種を見るたびに、私は私の心を傷つけた、最初に判断することができます!条件は、他に取り除きます。

02戦略パターン

このようなシナリオを持って、異なるパラメータに基づいて異なるロジックを取り、実際には、このシナリオが一般的です。最も一般的な実現:
上記のコードを参照してください、4つの戦略があり、2つの最適化スキームがあります。

以上の2.1状態

地図に格納されている特定のポリシーオブジェクトの達成は、最適化されました
この最適化プログラムは、すぐに必要性を手動でマップに追加するときに新しいポリシーを追加するとき、無視するのは簡単です、ポリシーを保存するためにオブジェクトをマッピングする対応する必要性を達成するための戦略を取得することができるようにするためには、上記の欠点を有しています。

2.2列挙

多くの学生は、メソッドが列挙で定義できる状態の表現として、ここで定義された列挙を知っていないことが判明し、runメソッドに加えて、達成することができます。
戦略の列挙を再定義
次の列挙することにより、コードの最適化の後

03オプションを使用することを学びます

それはjdk8新機能であるため、オプションは主に、空でないかを決定するために使用され、それは特に使用されていないが、それは本当にクールだと。使用の前に:
もし、ユーザログインが空になった後、間接的に場合は、動作を減らし、null以外のチェックはよりエレガントなように、それ以外の場合は、最適化オプションを使用して、アクション2を実行し、アクション1を実行します

04のヒント配列

Googleからのこのような場面があるので、日数が月、唯一のケースとして、デモの月を介して取得するために、このようなテーブル駆動方式と呼ばれるプログラミングモデル、クエリの代わりの論理ステートメントからの情報の本質的テーブルであることを説明し、データではありません厳しいです。一般的な実装:
最適化されたコードの後

05おわり

各プログラミング言語として、他の条件文の不可欠な一部である場合、プログラミング時に使用の多くになります。コードの一部は、あまりにも多くのネストされたがある場合、コードの可読性が急速に、ポストメンテナンスの難易度も大幅に改善されて減少する他の場合は一般的な推奨事項の巣は、3を超えないようにしてください。あなたが他のヒントを持っている場合は、メッセージを残して大歓迎です!


おすすめ

転載: juejin.im/post/5d2c47346fb9a07ebf4b9f53