アルゴリズム
今週のトピックでは、アルゴリズムとカウント(セイあるhttps://leetcode.com/problems/count-and-say/)、勇敢な質問、およびインターネットをチェックし、製造するための法則n個の文字列を見つけることができませんでした知っている、それは文字列の文字の数によって次の番号の文字列を生成するので、再帰を使用することです。
パブリック文字列countAndSay(INT N){ 場合(N == 1 ){ リターン "1" 。 } 他{ 文字列rawStr = countAndSay(N - 1 )。 CHAR []文字の= rawStr.toCharArray()。 StringBuilderのSB = 新しいStringBuilderの(); int型私= 0 ; 文字一時=「」; 用(チャー:文字C){ 場合(TEMP == C){ I++ ; } 他{ 場合(!TEMP = '' ){ sb.append(I).append(TEMP)。 } TEMP = C。 I = 1 ; } } sb.append(I).append(TEMP)。 返すsb.toStringを(); } }
読書
「美はシンプルである」(https://97-things-every-x-should-know.gitbooks.io/97-things-every-programmer-should-know/content/en/thing_05/)
この記事では、かなり単純なものからコードを議論しました。コードを書くとき、私たちは、コードが読み取り可能であることを確認して、保守性、優れた開発スピードと美しい保つように努めています。キーは、このすべてのそれをシンプルに保つことであるようにすることです。
美しいコードとは何ですか?これは非常に主観的な質問は、誰もが大部分は生活の背景によって決定された別のビューを持っていますが、基礎が簡単です。かかわらず、単一の責任で単一部品全体としてのアプリケーションまたはどのように複雑なシステム全体の、そして私たちのシステムは、保守性テスト可能にし、開発のスピードを維持することになる、残りの部分との単純な接触を持っています。
「美はシンプルである」(https://97-things-every-x-should-know.gitbooks.io/97-things-every-programmer-should-know/content/en/thing_06/)
コードが考慮されなければならない前に、復興物事を議論Benpian。真剣に私たちが復興するまでの時間と多くの痛みを節約するのに役立ちますこれらの事を考えます。
復興の前に最初のコードとテストケースの下に数えます。これは、私たちが強みを保持し、間違いを避けることができるようにあなたは、現在のコードの強みと弱みを理解するのに役立ちます。
すべてのコードを書き換える誘惑に抵抗します。最高の多くのコード、どんなに醜い既存のコードとして再利用するが、それはテストされている、あまりにもコードレビュー。あなたがテストをソリューションで、バグ修正は、我々が知らないで、コードのテストの後、数ヶ月または数年を要した捨てる意味古いコードを、捨てます。
大きな改善よりも優れて徐々に改善。フィードバックやテストを通じて、それが簡単に私たちは、システムへの影響を評価するために作るための漸進的な改善。
各反復開発が完了した後は、既存のテストケースでのことを確認します。新しいテストケースは、あなたが修正を網羅追加します。フル考慮せずに、既存のテストケースを破棄しません。このユースケースは、あなたがコードを理解するのに役立つことができる理由を考えるように追加します。
再構成プロセスでは、個人の好みと自己の影響を受けません。ただ、コーディングスタイルは無理がある、それらのコードの復興にお好みではないと思います。私は前任者が不合理であるコードの再構築、にしたより良い感じ。
新技術の導入は、復興のための理由にすることはできません。費用便益分析の使用は、新しい技術を示していない限り、新たな枠組みを大幅にコード、保守性の機能性を向上させることができ、または再構築することではありません。
誤るにはヒトです。復興は必ずしも良く新しいコード、または再配置される前のコードと、我々はすべての人間であるため、間違いを犯すように良いを保証するものではありません。