良いプログラマはコードに賢明ではなく、スマートな方法を選択する必要があります

開発の15年の経験を持つエンジニアとして、最初に私は「素朴な子」を始めましょう、それは簡潔な文であります:

優れたコードは、より表現(表現力)ができるが、(印象)印象的ではありません。

私自身は非常に混乱しています覚えて、そしてより多くの印象的な表現力、それの性質上、その違いは何ですか?

実際には、より表現の手段は、特定のコンクリートをクリアします。そのため、いくつかのコードを表現する優れた能力は、特定の問題を解決する必要があります。時間とこの給与のようなコードの断片を書くための努力の後ろには非常に明確で、明確、具体的な目標であり、このコードはまた、本当にこの目標を達成できなければなりません。

 

印象的なものの、コードを書くの個々のプロセスに目に見えるマークやマークを残すように言われています。コード難解な様々なアルゴリズムと混合し、その複雑な構造の期間は、完全にあなたの虚栄心を満足させる、あなたのために人々の注目、賞賛と拍手を誘致することであってもよいが、コードを維持し続けるために、将来的にあなたを成功することに変換することができ怒りは、エンジニアが感じます。彼は悪いテンパーも、どこ生きている人間を知ってしまった場合は、次に何が起こるか、私はそれはあなたがとても幸せを感じることはありません怖いです。

良いプログラマはコードに賢明ではなく、スマートな方法を選択する必要があります

 

これはかなりスマートな理由よりも賢く選択する必要があり、プログラマです。開発エンジニアの経験豊富な種類が影響だろう、とすることができます右、「なぜ書くべきだ」「自分自身を書くには、どのようなコードである」どのような状況下で、どのような彼らの行動を予測することができるようにする能力を持っている必要があり、かつこれら三つの問題の明確な意識を持っている「将来的にこれらのコードは、進化がどのようになるかもしれ」。簡単に言えば、スマートエンジニアはそれをしないだろう「遅すぎる」火の開発作業の種類は、彼らはそれが一度やコードを書くときにすべてのための問題を解決すべきであると信じています。

「スマート」エンジニアはちょうど反対で、彼らは速く開発する作業を開始するだけでなく、コードが見えるかもしれ作るために不正直の様々な方法を使用する方法を知っている「通常の作業を。」賢いエンジニアは手での問題のいずれかを解決するために、「ショートカット」を経由して迅速に能力を持っています。時間が経つにつれてしかし、脆弱な建築基準アップ「バンドエイド」と「テープ」の累積ビルドによって絶えずそれらは、1日の崩壊、そして全ての感触恥の努力によって賃金にすべての人々を聞かせます。アメリカの有名なソフトウェアエンジニアと同様、Construxソフトウェア会社の創設者スティーブ・マコーネルは、彼の1993年の本「コードコンプリート」の中に書きました:

プログラミング、SLY、米国中央情報局(CIA)のためにそのような作業をすることはできません日和見と何か良いを行いません。

 

スマート開発エンジニアは、物事に両方の方法を行うことはありません、彼らはあまりにもアウトカラーの、鈍いが、シンプルで理解しやすいコードを書くませんが、それは間違って行くことはありません。

また、習慣を勉強し、他のスマートエンジニアの仕事の価値があります。

ThoughtWorksのチーフサイエンティストMartin Fowler氏は、思いました

誰でも、含む愚か者は、コンピュータが理解できるコードを書くことができますが、唯一の最高のプログラマは、他の人が理解できるコードを記述すること。

プログラマは時々不可解な感じの必要性は、どのような事を証明するために、または他の彼らができることになりまし修飾ジョブに発揮する能力を示すことが必要です。このアイデアは、きちんと前を無視して、これらのより複雑な、より困難なアプローチに優先して、すべての問題を解決しようとする過程でそれらをリードし、最も直接的かつ簡単な解決策であるだろう。すべての開発エンジニアだけでなく、最悪のミスを犯すことは非常に簡単です。

精通したプログラマは、フォローアップ作業、最適化や復興に維持することは容易であるだけで書き込みコードは、任意の素晴らしいまたは予期しない問題もなく、コードを見て、他の同僚は、その意図を正確に知ることができるでしょうし、問題解決のためのアイデア。プログラマの斜めを追加するこれらの新しい、珍しいアルゴリズム、またはアイデアの開発は、時々、上司や同僚は本当に素晴らしいと思われる、すべての夜疲れたが、誇り式をアップとどまりました。それは悲惨な失敗を引き起こしたときしかし、それはまた、より多くの「まぶしい。」であってもよいです

 

「あなたは2ヶ月の仕事を離れる場合は、継続して戻ってくるのを待っている:長いあなたがコードを書いているとしてとして、あなたのエゴ影響があなたを誘惑し始めると、あなたがより良い自分自身にこの質問をしたいどのような時、どんなに仕事だけでなく、コードを理解することができる?「あなたの答えはイエスであるならば、あなたは完全に自分のアイデアと意欲に合わせて後継者のために──ちょうどあなたの慈悲を求める、このコードを記述することができますこのコードはあまりにも多くの説明を必要としない、正しい位置にコメントを追加し、変数の命名のさまざまな合理的、かつモジュラー処理されるようにできるだけしてください。


ちょうど冗談のような高品質のコードを、。あなたが作るために通過しなければならない場合は、追加の説明を他の人には、これは、コードの良い部分ではないことを、理解しています。

科学の専門家の後半にオランダのシステムは、よく知られているソフトウェアの開発エンジニアは、コンピュータ科学の先駆者エドガー・ダイクストラは、提案しました

上の焦点は、「なぜ」というよりも、「何を」、あなたより良い開発エンジニアになります。

 

このような多くのより多くのメモリなどのコードを最適化する方法、と呼ばれる、またはより高速に実行することができ、または異なるアルゴリズムや論理的思考を使用してあります。どちらの方法に有用ではない、限り客観的条件が許す限り、スマート開発エンジニアが賢明決定します。しかし、どのような最適化の作業を開始する前に、彼らは厳密には「しないでください「テスト」」を遵守します。

 

なぜ私はそれをしますか?これらのコードは大丈夫、十分に書かれましたか?プログラムの使用方法を明確に理解することは、あなたがより速く実行する場合、それはどんな良いだろう、その動作環境だけでなく、ケースになりますか?事前に自分自身を尋ねるべき質問。

可能開発チームながら、ゆっくりと実行性と堅牢性を維持することを期待するために非常に重要なプログラムであれば、精度、明快ながらとき賃金とコストの重要性を示すために最適化作業は速くなります。しかし、迅速な実行が、期待されるプログラムで逆の結果を持って、まだ何の意味も持ちません。効率的なコードの最適化は、多くの場合、より多くの利益をもたらすことができますが、最適化するための正しい方法に従わなかった場合は、結果だけで役に立たないかもしれないが、また、より多くのバグが付属しています。

あなたは、重要な、測定可能の影響がどうあるべきかの最適化に作業を行うかどうか。常に勘に頼らない、本能は常に悪いコンパスです。

代わりに新しいコードを書くの再利用


ヴィック・ガンドトラ、グーグル・ウォッチの前に、会社の上級副社長は、視点の重要な問題を提起しています:

 

コードを書く前に、私は彼らが本当に欲しいものを見つけ出すのに行かなければなりません。


精通したプログラマはコードを見て、その後、実行可能な、既存のソリューションのために見て回ることを好みます。一部のエンジニアが好む一方での「正しい方法を再構築します」。ほとんどの場合、これらの人々は、この問題に繰り返しのラウンドを作る際に時間を無駄にしています。


インターネット上で検索したり、あなたが学習し、同様の問題を解決するための一般的な方法を習得するのに役立ちますで実践されてきたあなたのコードのデータベースソリューションを見て、そして関連した時間を過ごすことを恐れてはいけません様々な長所と短所。コードを書く前に精通したエンジニアがコードを見るために長い時間がかかるだろう理由です。新しいコードの書き換え部分なので、いつもより多くの時間、コストと労力を費やしています。絶対に必要な場合を除き、それをしません。


あなたがタスクを完了する必要があるときに、それは、誰かが同様の問題を解決するために行わ何かを持っている場合はそれを見に行くのがベストであり、これは、エネルギーの無駄な消費を節約することであるスマート取得するためのショートカット、ではありません。


自分自身に挑戦


古代ギリシャの哲学者アリストテレスはかつて、言いました

 

あなたがやっていると何の課題が存在しない場合、それはあなたがより良いそれを行うことはできません。


精通したプログラマは、常に彼らは自分が記述し​​たコードに挑戦するためにあらゆる機会をつかむために、より正確には、自分自身に挑戦します。彼らは、常に謙虚に、何のコードが完璧でないことだけ、より良いコードを認識します。

 

精通したプログラマは自分の快適ゾーンに滞在し、その後の展開の実装は同じモードで作業を続ける繰り返すように容易ではないだろう。彼らは意識的に自分のコードのパラメータは、独断的なアイデアを妨げ、そして常により良いものを行うための適切な方法や手段を見つけるだろう、それは新しい何かを学ぶために時間を取る必要性を意味していても、彼らはまだ意志避けますすべてのアウトを行きます。

 

精通したプログラマは派手な機能を備えた壮大なアイデアに魅了されることはありません。彼らは非常に実用的なことと完璧な解決策が存在しないことを認識することができ、それぞれの顕著な特徴や手品は、種々の欠点を伴っています。


ヘルプ他の人に勇気

古代ギリシャの劇作家、詩人ソフォクレスの悲劇信じて一度、

 

私達のそれぞれが、本当にお互いを助けるために行うことができれば、それは幸運のためにこれ以上必要ありません。

 

プログラマーとして、それは常に人のより合理的、巧妙な種類になるということから。実際には、本当に才能の開発エンジニアがたくさんあります。しかし、時には、プログラマはすべての問題を解決するために自分の脳に頼ることができる、彼は全知であることをオーバー自信になります。結局のところ、誰もが「これは私がしません」、ワークショップで認めることを望んでいないかについて、新機能のノウハウを何も展開していないとしています。

だから、彼らは自分自身を言い続け:「私は常に自分自身の強さに依存するために使用され、今でもそうし続けることができます解決する方法を考えます..」

しかし、経験豊富なプログラマはそうは思いませんでした。彼らは助けるためにちょうどその時知っているとき、独立した思考を維持します。彼らは、任意の遅延が絶えず近づい無限の不安と非常に絶望的な圧力のプロジェクトの期限を見ていきますチームの全員へと進化し、最終的に制御不能との方向に全体を作ることができることを知っていました。そして、これはスマートなプログラマは、必要なときに助けをタイムリーに、他の原因で彼らの欠陥を露出させるのに十分な勇敢されています。

 

助けを他の人に自分の能力の問題ではなく、彼らはあなたはそれが時間通りにその職務を行うと期待に沿った作業結果を提供するために取るものは何でもできることを見るので、実際には、あなたの中に他人の信用と信頼を強化します。他人の心の中であなたの印象は、また、積極的になって自信を持って、より良い、より良い日々開発エンジニアを得ることになるでしょう。

 

最高の女性プレゼンターのためにインド賞を受賞し、俳優として、モデルKubbra SAITは言いました、

 

質問を良くするために開始するための最初のステップです。

公開された222元の記事 ウォンの賞賛185 ・は 20000 +を見て

おすすめ

転載: blog.csdn.net/qfluohao/article/details/103962055