「ThePragmaticProgrammer」を読んで学んだこと

要するに:古いが金。

1999年に出版されたThePragmatic Programmerは、PragmaticProgrammerになる方法についての本です。これは本当に「優れたプログラマー」を意味します。

はい、約20年前に発行されました。しかし、この本は、プログラマーやソフトウェアエンジニアに非常に関連する多くの洞察を提供しています。

あなたは以前にこの本について聞いたことがあり、実際にそれが実際に何についてであるかを疑問視したかもしれません。さて、今日は本を読んで学んだ興味深いことのいくつかをあなたと共有します。

プログラマーになることには、技術的なスキル以上のものがあります

私は自分のラップトップを掃除していて、それは素晴らしいと思いました。 じゃあ。

本のタイトルを読むとき、あなたはそれが多くの技術的な教訓を与えることを期待するかもしれません。しかし実際にはそうではありません。この本が20年経った今でも関連性があるのは、プログラマーであることが技術的な強さだけではないことを教えてくれるからです。そして、私たちはしばしばこの事実を見落とします。

この本は、プログラミングには技術的な能力以上のものがあることを教えてくれます。

猫は私のソースコードを食べました

私の猫のカレー

これは本の最初の章であり、非常に興味深い概念です。

ある日、宿題を終えずに犬が食べたと言ったのを覚えていますか?(私はいつも宿題を終えているので、実際には覚えていませんか?)

それ(そしてこの章)が私たちに教えていることは、実際には責任です。あなたが何かに責任を持っているとき、あなたはそれに対して責任を問われる準備ができているべきです。

間違いを犯してその責任を果たせない場合は、それを補って解決策を見つける必要があります。言い訳をしたり、指差しゲームをしたりしないでください。ただ仕事に取り掛かって、猫があなたのソースコードを食べただけだとみんなに言うことはできません。

オプションを提供し、下手な言い訳をしないでください。

それはすべて壊れた窓についてです

その孤独で冷たい景色はすぐに私の目を引きました。

この本には、窓が壊れたために、都市部が非常に乱雑になり、荒廃したという話があります。

これは私たちのコードによく似ています。ダーティなコード(壊れたウィンドウのように見えます)を見ると、コードをダーティにしても大丈夫だと思い始めるかもしれません。後で戻っても大丈夫ですが、ほとんどの場合、そうすることはありません。

「壊れた窓」を修理せずに放置しないようにしてください。そのようなコードを見つけたら、できるだけ早く修正してください。壊れたコードを修正する時間が誰にもないと考え続ける場合は、コードを保持するためだけにごみ箱を購入することをお勧めします。

この章で説明することは、実際には単純です。それは、イニシアチブとあなたのものの世話についてです

イニシアチブを取り、触媒になります

リレーランナー

また、何かがすべて良いか、何かが実際に行われる必要があることを知っている場合もあります。それはあなたの頭に浮かび、あなたはそれが正しいことだと自分自身に思います。

考え続けるだけでは何も起こりません。または、プロジェクトのタイムラインに含めるように要求した場合、膨大な機能開発の要求と技術的負債に直面する可能性があります。それで、それは議論の別の年に終わります。

それはあなたのゲームをステップアップする時です。あなたができることを考え出し、それをやり過ぎないでください、しかしまたそれを合理的にしてください。完全なアイデアが得られたら、それを人々に見せましょう。彼らは「ええ、それがあればもっといいかもしれない」と思うかもしれません。

彼らに未来を垣間見せれば、人々はあなたの周りに集まるでしょう。変化の触媒になります

さらに、この本は、プログラマーとして忘れがちな基本的な基礎についても教えてくれます。

仕事を深く掘り下げるほど、ずっと前に学んだ基本的なことを忘れてしまうことがよくあります。

忙しい追跡機能と新しい技術の改善により、深く掘り下げる前に事前に注意を払う必要のあることが実際にはもっとたくさんあることを忘れがちです。

クリーンなコード

スリップ、トリップまたはフォール

私たちが忘れがちな最も基本的な原則の1つは、クリーンなコードです。機能がますます積み重なるにつれて、コードベースは太くなり、技術的負債は増加します。

ただし、コードを作成するたびに、コードの一貫性とクリーンさを維持することを常に忘れないでください。

この本で言及されていることの1つは、DRYの原則(Do n't Repeat Yourself)です。これは、コードの再利用性に関連しています。重複は悪であり、それが真実です。コードが重複していると、コードの保守が非常に難しくなり、機能を変更したりバグを修正したりする必要があるときに混乱を招く可能性があります。

コードの一部を修正する必要があったときのことを覚えていますか?そして、変更したビットと非常によく似たコードがあることに気づきましたか?それで、あなたはその部分も、そして別の部分も変更しなければなりません、そして多分このビットも…あなたは絵を手に入れます。

正しいツールを見つける

パラトド干し草の溶解

木こりのように、正しくて適切な道具を見つけることは非常に重要です。木こりが木を切り始める前。彼らは決定しなければなりません-彼らはチェーンソーが必要ですか?それとも斧で十分ですか?あるいは、彼らが使用できる真新しいライトセーバーがあるかもしれません。しかし、包丁を使うと木を切り倒すのに時間がかかるかもしれません。

プログラマーにとっても同様です。この本は、作業を開始する前に適切なツールを見つけることが非常に重要であることを教えてくれます(優れたコードエディターなど)。コーディングにすぐに飛びつくべきではありません。

たとえば、実際にはWindowsのメモ帳を使用してコーディングし、コンソールを使用してコンパイルすることができます。しかし、それはあなたにとって適切なツールですか?最も使いやすいエディターを見つけてください。それを学び、習得すると、生産性が数倍向上します。

この本には、EmacsやVimなど、いくつかのエディターが記載されています。しかし、最近では、Visual StudioCodeなどの最新のコードエディターを見つけることができます。あなたに合ったものを見つけてください。それはコーヒーの好みのようなものです。ラテを好む人もいれば、カプチーノを好む人もいます。

偶然にプログラムしないでください

これは、本に記載されている非常に重要な点の1つです。私たちのプログラミングの旅のすべてにおいて、私たちが盲目的にそして予期せずにコーディングしていた時があったでしょう…そしてどういうわけかそれはちょうどうまくいきました。

おそらく実際に何をしているのかわからなかったので、コードをどんどん追加し続けても、それでも機能しました。つまり、ある日問題が発生し、コードのチャンクを削除しようとして、すべてが完全に壊れてしまうまでです。そして、あなたはそれを引き起こした部分がわからなかった。

未知のものに頼ることは非常に危険です。コードが何をするのかわからない場合は、コードを単純化して、偶然だけでなく、コード自体が信頼できるものであることを確認してください。

あなたが確信していることだけに頼ってください。偶然にプログラムしないでください。

単体テスト

最近、テストが話題になっています。そしてそうです、それは20年前にも重要なトピックでした(そしてそれは常にそうなるでしょう)。

しかし、最近ではユニットテストを忘れることがあります。彼らはコードを完成させたばかりで、すべてが大丈夫だと思っていたかもしれません...エッジケースのためにコードが本番環境で壊れてしまうまで。

安定性を維持し、安全にリファクタリングするために、ユニットテストを作成してコードを保護する必要があります。そして、あなたのテストが幸せな道だけをカバーしているなら、それは決して十分ではありません。コードに対して冷酷なテストを実行し、利用可能なすべてのテストをカバーするまでコードが終了しないことを忘れないでください。

単体テストは、コードが本当に完成したことを確信するのに役立ちます。

所有権を取得する

最後にもう1つお話ししたいことがあります。私たちが知っているように、プログラマーはコードの形で「レガシー」を残すのが好きです。そして、はい、ほとんどの場合それは悪いです。

プログラマーである私たちは、自分の仕事に誇りを持つべきです。私たちは、与えられた責任と私たちが取り組んできたコードの一部を誇りに思うべきです。

最終的にコードに誇りを持って所有できるようになると、優れた遺産を残すことができるようになります。そして、人々は私たちのコードを署名として見るでしょう。彼らが私たちのコードを見るとき、彼らはそれが専門家によってしっかりしていてよく書かれていることを知るでしょう。

仕上げ

要件やチームワークなど、この本で取り上げていないトピックがさらにあります。これらのトピックの調査に興味がある場合は、本を見つけて読んでみてください。

ただし、注意点として、この本が好きだったのと同じくらい、本の古さ(20歳)を見ると、関連性がないように思われるものもありました。それはPrologのような古い言語について話し、それが本当に新しい概念であるかのようにOOPについて話します-したがって、これらの奇妙なことは正しくないようです。

しかし、それはすでに数十年前のものであるため、非難することはできません。

それを除けば、この本で取り上げられている内容のほとんどは、上記で取り上げたトピックのように、プログラミングの現在の時代に非常に関連しています。

この本のすべてを要約しようとすると、基本的には、より優れたエンジニアになることについてWebで読んだことのあるすべてを網羅していると言えます。

The Pragmatic Programmerに関する私の記事を読んでくれてありがとう!うまくいけば、それはあなたにプログラマーまたはソフトウェアエンジニアとしてのあなたの旅への洞察を与えてくれました。さらに詳しく知りたい場合は、本のコピーを入手してください。

PS私は、第三者からの宣伝やマーケティングの手段なしに、自分でこの記事を書きました。カバー写真はアマゾンのサイトから取られました。