「卓越性は決して偶然ではありません。それは常に強い意図、誠実な献身、賢明な行動によってもたらされます。卓越性は賢明な選択を表します。あなたの運命を決定するのは機会ではなく選択です。」 – アリストテレス
私たちは皆、自分の分野で最高になりたいと思っていますが、望むものを達成するために時間と努力を費やしている人はほとんどいません。どの職業でもそうですが、良い人になるのは難しいです。
JavaScript開発者の優秀さを評価するのは非常に難しいです。
優れた JavaScript 開発者とは何ですか?
私たちは多くの基準を通して判断することができます。
コードの品質、納期厳守、チケットのタイムリーな解決 (注: チケットは github の問題に似ています。ここを参照してください) は、参照できるいくつかの基準です。もちろん、他のチームメンバーがチケットを解決するのを助けることも含まれます。
上記の点はいずれも正確な測定値を提供しないと思います。役に立たないものをリファクタリングしたいという理由だけで、美しいコードを書くためにプロジェクト全体を 2 か月間遅らせます。チケットを閉じても何の意味もないことは誰もが知っています。
考慮すべき変化要因はたくさんあります。 10 人の異なるプログラマーに、優れた開発者の条件を尋ねたら、10 通りの異なる答えが返ってくると思います。
あなたも今、その定義について考えていると思います。
しばらくこの定義に悩んでいたので、考えてみることにしました。
すべての開発者が行うことをいくつか見つけて、そのやり方に基づいて開発者のパフォーマンスを分類したいと思います。
業界の優れた評価を 1 つのことに基づいて行うのはあまりにも単純すぎますが、とにかく試してみるつもりです。
これで、割り引いて考えることができます。
自分の選択が正しかったことを証明してみます。これはすべての開発者が行うことであり、優れた開発者と平凡な開発者を区別します。
すべての開発者は時々、くだらないコードを書きます。
正直に言うと、あなたも私も時々、とてもくだらなくて恥ずかしいので、誰にも見られたくないコードを書くことがあります。
時々、つまらないコードを書いてしまう理由は誰にでもあります。正当な理由が何かという議論には立ち入るつもりはありません。なぜなら、私たちにはそれぞれ独自の正当な理由があるからです。
コーディングの残虐行為を紹介する前に、なぜ私たちがつまらないコードを書くのかを見直してみましょう。そうすれば、コードの臭いに悩まされたり、苦労したりすることを避けることができます。
現在、ジャンクコードを書く最も一般的な理由は「時間の不足」です。顧客との約束、タイトなスケジュール、保留中の新リリースなどがすべて原因である可能性があります。
既存のコードベースはゴミすぎて、良いコードを書くために一生懸命働く気も起きません。どうやっても、いつか崩壊するこのゴミコードベースを保存する方法はないことはご存知でしょう。
開発者として、私たちは異なるプロジェクト グループで作業することがあります。コードの最後の数行を書いた後で新しいプロジェクトに移動する必要がある場合、これは他のプロジェクトに影響を及ぼすような大きな問題ではありません。
このプロジェクトでのあなたの時間は終わりに近づいており、もう誰もあなたのコードをレビューしてくれなくなることを知ってください。したがって、コミットしてプッシュし、単体テストに頼って問題がないことを確認するだけです。
私たちは皆、時々くだらないコードを書きます。これは、私たち全員が悪い開発者であることを意味しますか?
もちろん違います。誰もが時々悪いコードを書くからといって、それだけでは何の意味もありません。
しかし、何年にもわたって、私は開発者に関する驚くべき真実を徐々に発見しました。
ジャンクコードを書いた後に私たちがどのように行動するかは、開発者資格の基本的なテストです。
ちょっと信じられないけど、本当だよ。自分がガベージ コードを作成しているという認識と、今後そのコードが再び発生するのを防ぐために取る行動は、コードの書き方と、コードの作成全般に対するアプローチの仕方を反映しています。
それは大いに関係があります。
ロンを例に挙げてみましょう。ロンは今日悪いコードを書きましたが、それについて不満を感じていました。厄介な 5 レベルの深さの Backbone モデル継承チェーンのため、Ron はすべてを壊すことなくコードを 1 行も変更することができませんでした。
ロンは、この問題を回避するために、非常にくだらないコードを書きました。ロンが時間通りにコードを届けてくれたので、みんな喜んでました。ロン自身を除いて。
彼はチームのボスに何が起こったのかを話しました。彼らは一緒に問題を解決する方法について考えました。彼らは、継承チェーンを破壊し、それを水平の構成可能なモジュールに分割することが最良の解決策であることを明確にしました。
その後、ロンは上司と話し合ったばかりのリファクタリング計画を実装する時間をくれるように上司に頼みました。
ロジャーは今日もひどいコードを書きました。彼は同僚の開発者に、信じられないほどのハッキングを使用して、奇妙な 5 レベルの深いバックボーン モデル継承チェーンをバイパスしたと語った。彼は建物全体を回って、時間どおりに配達する準備ができていました。
ロジャー自身も非常に満足しており、これ以上改善する必要はないと感じていました。
ゴミコードを書くことに対する態度に基づいて、プログラマーを下手な人から優秀な人まで 4 つのカテゴリーに分けることができます。
4 つのタイプの開発者すべてに同時に会ったことがないと教えてください。
Barney は、自分がゴミコードを書いていることを気にしていません。彼が気にしていたのは、仕事を時間通りに終わらせることだけでした。コードが正常に実行される場合は問題ありません。
Barney が書いたゴミコードは、プロジェクト全体の進行を妨げることがあります。コードに取り組んでいると、常に多くの問題が発生し、プロジェクト全体の進捗が滞ってしまいます。一方、バーニーさんは、何も新しいことを学ぶ必要はないと考えています。
彼は、仕事を成し遂げるために JavaScript について知っておくべきことをすでにすべて知っています。
Bill は自分がゴミコードを書いていることに気づいていません。彼はチームの合意とリントのルールに従い、自分の行為には何の問題もないと考えていた。しかし、彼はプロジェクト全体の構造と、さまざまなコンポーネントがどのように相互作用するかを理解するのに時間をかけませんでした。
その結果は、残念ながら混乱です。
ビルはデザインの大きな選択をする前に誰にも相談しませんでした。彼はやりたいことは何でもやります。彼は 1 年前の 3 つのブログ投稿を読み、それが決断の指針となりました。
ビルのコードに足を踏み入れると、地雷戦のように感じられ、一歩間違えば、すべてが顔に吹き飛んでしまうような気がすると私はよく言います。
Roger のタイプについては前に述べました。ゴミなコードを書いていることを十分に認識してください。彼は、コードをうまく書きたいと思った場合、コードがどのようなものになるかを知っています。彼は自分の背中をたたきながら、このくだらないことを書き続けた。
ロジャーの主な問題は、彼が何かを変えようとしなかったことです。彼は頼まれたことをきちんとやり遂げた。しかし、彼は物事を変えるために時間と労力をかけるよりも、むしろ現状のままでいることを望んでいます。
Ron は優秀なプログラマーですが、それでも時々、ゴミコードを書かなければならないことがあります。
ロンが他の人と違うのは、あのゴミコードを書くとき、自分のためでも他の誰のためでもなく、この状況が再び起こらないようにする方法を真剣に考えることです。 Ron は、どのような種類のリファクタリングが必要か、どの技術的ソリューションを変更または改善できるかを判断します。
次に、これらの調査結果に基づいて、Ron はこれらの変化を促進するための措置を講じます。
私は悔い改めなければなりません。 私はここのロジャーです。 でも、私もロンです。 また、自分が気づかないうちに、偶然ビルになってしまったことが何度かあると思います。私はバーニーのような人生を送ったとは思えませんが、誰にもわかりません。私たちは皆、永続的な卓越性への道を行ったり来たりしています。私たちは平凡な場合もあれば、善良または優秀な場合もあります。常に悪くならないように努めています。
最終的に最も長く続く役割によって、私たちがどのような開発者であるかが決まります。
正直に言うと、普通の開発者から優れた開発者になるまでに必要なのは、他のものよりも多くの知識と経験の蓄積です。しかし、良い状態から素晴らしい状態に飛躍するには、たった 1 つのこと、つまり自分の態度を変えるだけで済みます。
「覚えておいてください、あなたが偉大になる前に、あなたは良くなければなりません。しかし、あなたが悪くなる前に、あなたは努力しなければなりません - アート・ウィリアムズ
」優れたレベルの JavaScript 開発者の違いは、PHP 中国語 Web サイト (www.php.cn) に注目してください