ホームページ >バックエンド開発 >PHPチュートリアル >テクニカル ディレクターが優れたプログラマーがどのようにコードを書くかについて語る
プログラマーにとって最も重要なことはコードを書くことであるため、プログラマーが優れたプログラマーであるかどうかを判断するには、主に彼が書くコードによって決まります。
たとえコードの意図が分からなくても、基本的に優れたプログラマーが書いたコードと下手なPHPプログラマーが書いたコードは一目でわかります。優れたプログラマーが作成したコードは、きちんと標準化されており、自然な視覚的な美しさを持っています。余白のバランスが良く、コメントが適切で、名前付けと植字は統一された標準に従っています。貧弱なプログラマーが作成したコードには、長すぎる関数、一貫性のない名前とレイアウト、深すぎるネスト構造、非常に複雑な式、随所に数字が含まれるなどの問題が発生することがよくあります。
もっと簡単に読んでいただければ、自分が良いプログラマーであるか悪いプログラマーであるかについて、より自信が持てるようになります。優れたプログラマは、注意深く一貫性のあるコードを作成します。優れたプログラマは、キャメルケースなどの統一された命名方法を常に遵守しますが、下手なプログラマの変数の命名は、統一された標準から逸脱することがあります。優れたプログラマは、コード内に目に見えるスペル エラーがほとんどありませんが、劣ったプログラマには、はるかに多くのスペル エラーが発生します。優れたプログラマは、追加/挿入などの同じ種類のアクションに対してこの動詞とその同義語を使用しません。優れたプログラマは一貫した省略規則を使用しますが、悪いプログラマは省略しない場合もあれば、省略する場合もあります。優れたプログラマーは、名前の中でどの形容詞または名詞が最初に来るか、どれが最後に来るかに細心の注意を払いますが、下手なプログラマーにはルールがなく、最初に来ることもあれば最後に来ることもあります。優れたプログラマーは、反復的なコードの大きなセクションを作成することはほとんどありませんが、劣ったプログラマーは、反復的なコードから統一された概念を抽出して再利用するのが困難であることがよくあります。優れたプログラマはコメントと外部 API のコード間の一貫性に注意を払いますが、下手なプログラマはコメント内のパラメータ名や関数定義に一貫性がないことがよくあります。優れたプログラマは、コメントアウトされたり #if 0 で囲まれたゴミコードを残すことはほとんどありません。彼らは、それが有用であればコードを必要としますが、そうでない場合は必要としないと考えています。コードの一部が本当に必要かどうかに関係なく、コードをクリーンに保つ習慣が欠けているため、ジャンクコードが放置されます。
上記のように、たとえ彼が使用する言語を理解できなくても、プログラムのロジックが気になり、良いプログラマーか悪いプログラマーかを区別できなくなります。プログラムの品質は、ほとんどの場合、それが美しいかどうかによって決まります。そうでない場合、私は C++ STL ソース コード以外に優れたプログラムを見たことがありません (少し詳しく見てみると、STL ソース コードは、十分に美しいとは言えませんが、それでも十分です。ここで提案されている要件は一貫性の原則です)。また、優れた美しいコードは、Linux カーネル、InnoDB、JDK、JUnit など、どこにでも見つかります。
注意深く読むと、より正確になります。優れたプログラマーによって書かれたコードは、自然でシンプルかつ簡単であるように見えます。通常、関数は短く、その名前は関数が行うべき内容を正確に反映しています。ロジックは単純で自然で、読んでいると心からため息が出てしまいますが、下手なプログラマのコードはこう思わせることが多いですよね。また何をしているのですか?質問。優れたプログラマーは、重要な瞬間に最後の仕上げを追加します。 劣ったプログラマーは、コメントがないか、単にコードの繰り返しであり、まったくナンセンスです。さらに悪いことに、コメントは間違っており、誤解を招くものです。
優れたプログラマーは、必ずしも言語弁護士である必要はありません。つまり、言語のあらゆる詳細を非常に明確に理解し、プログラミング時にあらゆる場所でその言語を使用できる人です。優れたプログラマーは、自分のスキルを誇示したり、コード内に独自の部分を慎重に構築したりすることはあまりありませんが、ほとんどの場合、それを常に率直な言葉で表現します。
プログラマーのチームワーク精神はコードからもわかります。チームワークに注意を払うプログラマーは、厳密にチームの規範に従ってコードを作成しますが、スタイルがチームの規範と一致しないプログラマーは、チーム精神に欠けている可能性があります。チームワークに注意を払うプログラマは、前提条件、事後条件、パラメータを NULL にできるかどうかなど、モジュールの外部インターフェイスの重要な説明に注意を払います。チームワークに注意を払わないプログラマは、これらの詳細に対処するのが面倒です。 。
優れたプログラマーと劣ったプログラマーの生産性の差は大きく、プロジェクトのサイクルが長くなるほどプロジェクトは複雑になり、プロジェクトの品質要件が高くなるにつれて、優れたプログラマーの価値も高まります。優れたプログラマーと劣ったプログラマーでは、管理コストにも大きな差があります。優れたプログラマーは、設計を決定するために協力するだけでよく、コードを読む必要はありません。劣ったプログラマーのコードは、多くの場合、複数回レビューする必要があります。理想的な品質に達しない可能性はまだあります。
良いプログラマーになるには、まず良いプログラマーになるという野心を確立し、時間が経つにつれてどんどん上手になっていきます。野心のない人は決して優れたプログラマーにはなれないし、そういう人は年をとる前にマネージャーにならなければ役立たずになってしまいます。
2 時間の筆記試験と 30 分の面接に合格するだけでは、プログラマーを評価するには十分ではありません。筆記試験や面接を通じて、プログラマーがアルゴリズムやデータ構造などの基礎的な知識を持っているか、プログラミング言語の特性を習得しているか、技術に関心があるかどうかを判断できますが、本当にできるかどうかを知る必要があります。コードを書かずに良い仕事をするだけでは十分ではありません。
テクノロジーに情熱を持っているように見える人が、必ずしも優れたプログラマーであるとは限りません。こうした人々は、革新的な仕事に喜んで取り組むかもしれませんが、その後のコーディング、テスト、デバッグ、コピーライティングの作業にはうんざりするかもしれません。良いアイデアを思いつくかもしれませんが、多くの場合、それを実行できません。会社はこうした人材を多くは必要としていない。
そのため、採用方法を改善する必要があります。一度入社すると、たとえ試用期間中であっても抜け出すのは難しいため、採用が最も重要です。正社員になるための条件は白黒はっきりと書かれており、それを満たしていれば、資格を取得することはそれほど難しくありません。今年の新入社員は全員が優秀というわけではありませんが、確かに優秀な人材なので当然正社員になるはずです。
採用を改善する方法は、彼にプログラムを書くように依頼することです。1 つは彼にプログラムを書くように依頼する、もう 1 つは既存の長いプログラムを再構築するように依頼し、1 日以内に完成させるように依頼することができます。 。半月テストできればリファクタリングは必要ありませんが、1 日では短すぎます。リファクタリングを通じて、コードを読んで理解する能力をテストし、リファクタリングを通じて崩壊を魔法に変えることができます。他人のコードを書きたくない、他人のコードを受け入れるのが嫌で、何度もコードをやり直さなければならない人は理想的ではありません。
今年、2 人が同様のアプローチをとりました。優秀な履歴書を持っていて、プログラミングの質問を 2 つ受けて不採用になった人もいました。また、平均的な履歴書と面接でプログラミング試験に合格し、採用された人もいました。単なる筆記試験や面接よりも正確な気がします。
LAMP BrothersオリジナルPHPチュートリアルCD/『Essential PHP inDetails』を無料でプレゼント 詳細は公式サイトカスタマーサービスまでお問い合わせください: http://www.lampbrother.net
PHPCMS二次開発 http://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat開発
モバイルインターネットサーバーサイド開発 http:// yun.itxdl.cn/online/server/index.php?u=5
Javascriptコース http://yun.itxdl.cn/online/js/index.php?u=5
CTOトレーニングキャンプ 5
|