シンプルなコードを書く3つの驚くべき方法

人生は本当に簡単ですが、私たちはそれを複雑にすることを主張します。

画像クレジット:unsplash.com Tom Grimbert

単純なコードを書くことは実際には非常に簡単です。しかし、私たちはそれを「将来に備えた」ものにすることで複雑な問題にしています。

そして、この未来への準備の妄想を克服することを学ぶと、私たちのコードはよりシンプルできれいになるだけでなく、偉大な開発者としての地位も成長するでしょう。

説明させてください。

プログラミングの全盛期に戻ったとき、1つの事実があらゆる場面で独断的に教えられました。

「同じコードを2回書かないでください」。

「コードをリファクタリングし、「より良いもの」のために再利用できるようにする必要があります。コードは、太陽の下で他のすべての開発者が使用できるブラックボックスのようなものにします。優れた開発者は、優れたコードを永続的な遺産として残しています。

ここまでは順調ですね。

私のコード作成が徐々に進化して、理解と解釈がほとんど不可能になった巨大な無意味のい塊に進化したことを除いて。私のコードの衛生状態が悪化し、私は自分が作成した悪魔を「修正」および「復活」させる日と月を無駄にし始めました。

プログラミングは難しいです。プログラムを書くとき、1行から数十億行のコードが存在する可能性があり、間違いを犯すことになります。時には大きなものもあれば、小さなものもありますが、サイズに関係なく、すべての発見とトラブルシューティングには時間がかかります。時々、あなたは急速にあなたを吸い込む「無力」の「危険な」渦から出てくるのに助けが必要です。

そして時々、あなたはただ……ゴム製のアヒルが必要です。

ゴム製のアヒルの概念は、ディーンパーカーの優れた投稿「良いカンファレンストークを行う方法」で最初に言及されました。アヒルを響板として使用するという考え方は新しいものではありませんが、ポイントを獲得する場所は、その使いやすさと有効性にあります。

ゴム製のアヒルを響板として使用する最大の利点は、それが忍耐強く、あなたを判断せず、何よりも他の人の時間がかからないことです。ゴム製のアヒルのような無生物にさえ、あなたの問題を大声で説明することには魔法のようなものがあり、それはあなたの問題の解決策を見るのを助けることができます。

コードを1行ずつゴム製のアヒルに説明しながら、自分自身を止めて、外部から状況を考え始めます。あなたは自分自身を評価し、その瞬間の「熱」で書いたすべてのことを客観的に理解するように強制します。

そして遅かれ早かれ、あなたは「AH-HA」の瞬間を得ます。答えはちょうどあなたに来ます。

そして、それはほぼ毎回感じていることです。私はそれを知っていました!」

ここでは、ゴム製のアヒルのセッションで、より良いコードを書くことについて学んだことをいくつか紹介します。

再利用可能なコンポーネントの作成は毎回必要ではありません。

コンポーネントを可能な限り再利用可能にするよう常に努力する必要があると主張する人もいます。何故なら、これらの品質問題のすべてに取り組む必要があり、より良いソフトウェアを生産するからです。あなたの唯一の目標が世界で最高のソフトウェアを作成することであるなら、これは素晴らしいことですが、誰もあなたがそれをするのにお金を払っていません。

いいえ、割り当てられた時間と予算内で十分な品質のソフトウェアを作成するための報酬が支払われます。コードを金メッキするために不必要な時間を費やすと、クールに感じるかもしれませんが、まったく無駄です。砂の中にこの製品が本当にどれほど良いものであるかを正確に線で描き、それに固執する必要があります。そうしないと、決して終わりません。

あなたはそれを必要としません

YouArentGonnaNeedIt(YAGNIと略されることが多い)は、次のようなエクストリームプログラミングのプラクティスです。

「実際に必要なときに常に実装し、必要なことを予見するときは決して実装しないでください。」

機能が必要であることを完全に、完全に、完全に確信していても、後で実装しないでください。

YagNiを練習する主な理由は2つあります。

  • 不要なコードを書く必要がないため、時間を節約できます
  • あなたのコードは、「推測」で汚染されるのを避けるためです。

動作する可能性のある最も単純なものを作成します。

極端なプログラミングでは、単純なコードを記述するための2つの黄金律に言及しています。

・最初に、「機能する可能性がある」と思われる最も簡単な方法で新しい機能を実装します。驚くほどの上部構造を大量に構築せず、派手なことを何もせずに、機能させるためにそれを入れるだけです。コードが新しい機能(およびすべての機能)の単体テストに合格するようにします。

第二に、これはルールにとって重要です。システムをリファクタリングして、現在のすべての機能を含む可能な限りシンプルなコードにします。 OnceAndOnlyOnceのルールおよび他のコード品質ルールに従って、システムを可能な限りクリーンにします。

常に覚えておいてください、私たちは最速の方法を探しているのではありません。最も簡単な結果を探しています。そのため、最初に既存のメソッドを分割します。これにより、既存のテストケースが実行されたままになります。次に、次のテストケースなどを処理する小さなメソッドの1つを(単純に)変更します。

立ち往生したときは、アヒルを試してください

バグ、問題、および一般的な難問を選別することは、プログラミングの基本的な部分です。したがって、すべての構文を学習するのと同じくらい重要なのは、バグを通り抜けてバインドから抜け出す方法を見つけるための技術を開発することです。

あなたが立ち往生していて、何も機能していないように見えるときは、ゴム製のアヒルを試してください。

だから外に出て、あなた自身のゴム製のアヒルを見つけてください、それが古典的な黄色のバスのおもちゃであろうと、海賊のように着飾ったものであろうと、あなたが快適であなたの性格に合ったものを選んでください。

どうぞ;彼と話し、質問をし、問題を声に出して説明し、クモの巣を取り除き、コードに大きな価値をもたらします。

クリス・パインが正しく言ったように。

「プログラミングとは、あなたが知っていることではありません。それはあなたが何を理解できるかについてです。」
著者について-:
Ravi Rajanは、インドのムンバイを拠点とするグローバルITプログラムマネージャーです。彼は熱心なブロガー、俳句作家、考古学愛好家、歴史マニアでもあります。 LinkedIn、Medium、TwitterでRaviに接続します。

このストーリーは、Mediumの最大の起業家向け出版物であるThe Startupに掲載され、続いて+402,714人が続きます。

ここで私たちのトップ記事を受け取るために購読してください。