コードの書き方

プログラマーとしての私のキャリアを通じて、プログラマーはコードの書き方を知らないという事実に繰り返し遭遇しました。 そして、これは初心者とすでに経験のある人の両方に当てはまるかもしれません。 正直なところ、私の意見では、これを行う方法を本当に知っているユニットがあります。 問題を包括的にカバーするふりをするつもりはなく、私の意見は正しいと思いますが、私はそれを私の観点から検討します。

私の意見では、単一の標準は存在せず、存在することもできず、各人はプログラミングに対する独自のアプローチを自由に選択し、適応させることができます。 しかし、ほとんどの場合に役立つ特定のプラクティスのセットがあります。



まず、問題の主な原因に対処したいと思います。 一般的に何が間違っているのか、なぜ変更する必要があるのか​​。 すべてのプログラマーの夢は、コードを可能な限り迅速かつ美しく書き、すべてが最初から明確に機能するようにすることだと思います。 これにより、チップをより頻繁に読み、テスターとコーヒーを飲むことができるようになります。最も熱心な人にとっては、スペシャリストとして自分自身を成長させるための時間をより多く与えるでしょう。

プロのプログラマーと初心者の主な違いの1つは、優先順位システムです。 原則として、コードを機能させることはそれほど難しくありません。理解しやすくすることははるかに困難です(もちろん、機能させ続けることをお勧めします)。 したがって、プロはデバッグ自体よりもリファクタリングに多くの時間を費やしますが、それ自体はすでに優れていますが、リファクタリングの時間を最小限に抑えたいと思います。



したがって、コードの記述を改善するのに役立つ主なアイデア



アイデアを持っている



どの実装にもアイデアがあるはずです。これは、すべての機能を通過し、それを結び付ける線のようなものです。 何かを書くために座る前に、それがどのように機能するか、ブロックとは何か、それらがどのように相互作用するかを多かれ少なかれ想像する必要があります。 そのように書くために座って概念を考え出すのではなく、それはもっと面白くて頻繁にあり、結果のコードがより明確になります。 当然、すでに何かを思いついたので、できるだけこの概念の枠組み内にとどまる価値があります。最初の問題ですべてを変更すべきではなく、常に問題があります。 また、プラグインをくっつけるために、怠けて「C'mon、and drag it」という言葉を使わないでください。 これは良いことにつながりません。



理想はない



そしてもちろん彼になりたいが、彼は99です。(9)%はそうではありません。 コードを完璧にしようとするべきではありません、それはさらに悪化するでしょう;はるかに多くの時間が費やされるでしょう。 それは風車との戦いに過ぎませんが、アプリケーションが機能するという事実と、それがどれだけスマートに書かれているかについては報酬を受け取ります。 多くの場合、理想の検索は、概念の絶え間ない変化、同じものの無限の書き換え、最終的には気になり、人はすべてを捨て、プラグですべてをプラグインし、「それをドラッグします」につながります。 それは良くて便利であるべきであり、理想は多くのエンジニアではなく、多くの詩人ですが、プログラマはまだエンジニアです。



フォーカスを保つ



特に初心者にとっての主な問題の1つは、詳細を掘ることです。 時間単位ごとに1つのタスクに集中する必要があります。 私が言いたいのは、あなたが何らかの機能を書いて、あなたが対処しなければならない難しい瞬間に出くわすということです。 ほとんどの場合、この問題が100%解決されることはわかっていますが、その方法はわかりません。 そのソリューションに切り替えると、現在の問題に集中できなくなり、戻るためには時間を費やす必要があります。コンテキストの切り替えは決して無料の操作ではありませんでした。 このアイデアは、実装の詳細にも拡張されます。 データベースからデータを読み取り、ファイルに書き込む関数を作成する必要があるとします。 それがあなたのコンテキストです。 この問題を解決してから、残りを解決します(つまり、データベースから読み取り、ファイルに書き込みます)。 最初に、以下を記述します。



            var data = Read();
            Write(data);

      
      







2 Read Write, alt+shift+f10, ( f1, f1 , ). . -, . , , . , . , . .





, . , . , - , . , , , , . , !





, . . result, , , , . var ( ). i,d,v,k , . currentNode n ? , . , .



? ? ?



. ? ? ? ? ? ? . , .





, , . . , . . , . , , ? ? .





— , , - .

— , . , , . .

— , , . , .



, C# ( ), , PHP, C++, Delphi, C# . ( ).



, - , . . , . “ , ” . , .



All Articles