【ちゃんなるぶろぐ】社会人1年生が日々の学びをアウトプット!

>>> 読書・遊び・プログラミング・アプリ開発などを通して学んだことを、文章という形で出力 <<<

3分でわかる!「プログラマが知るべき97のこと」その②②

読み終えるまで約3分

 

 

どうも、ちゃんなるです! 

今日も”デキる”プログラマになるべく勉強していきましょう!

 

今回は、次の書籍の一部を要約します。

プログラマが知るべき97のこと』

 

下の記事の続編です↓↓

chan-naru.hatenablog.com

 

 

今回選択した3つのテーマ

本書はタイトル通り97のことについて書かれています。

今回は、64~66番目の項目についてまとめます。

  1. プロのプログラマとは?(No. 64)
  2. バージョン管理システムを有効に使う(No. 65)
  3. いったんコンピュータから離れてみる(No. 66)

 

①プロのプログラマとは?

このテーマで述べられていたことは、

「プロのプログラマは、自分のキャリアや製品の質に責任を持ち、無駄のない正しく動作するコードを常に書き続ける。たとえ納期に追われても手を抜くことなく最善を尽くしていい製品を作る。」

ということです。

 

以下、要約です。

プロのプログラマとはどんな人でしょうか?

最大の特徴は、「自分が責任を取る」という態度、責任感です。

責任の取れない見積もりやスケジューリングは決してせず、作る製品の質にも責任を持ち、ミスがあれば必ず自分で対応します。

もちろん、他人に責任を押し付けるようなことは一切しません。

 

プロのプログラマの特徴:

  • 自分のキャリアに責任を持つ:自分の意志で新たな知識と技術を習得し、常に最先端にいられる努力をすること。
  • 自分の書いたコードに責任を持つ:徹底的にテストをし、「絶対にもう問題など見つかるはずがない」と思えるまで品質保証(QA)チームに回さない姿勢を持つこと。
  • 自分個人の仕事だけでなく、チーム全体のアウトプットに責任を持つ:失敗した時は、お互いがカバーし合います。各が、いずれ自分もカバーされることがあることを認識し、全体最適を目指すのです。
  • バグリストが一定以上の規模にならないように注意を怠らない:バグリストが溢れるのは怠惰の表れです。巨大なシステムなら問題追跡システムを導入し、バグの管理を自動化するでしょう。しかし、規模が大きくない段階では問題追跡システムにすぐ頼るのは開発に携わる人間の怠惰の表れなのです。
  • 間に合わせのためのいい加減な仕事は、絶対にしない:余分のない綺麗なコード、構造化されたコード、読みやすいコードを常に書き、美しくて完璧な製品を作ろうとします。業界標準やベストプラクティスは必ず守ります。プロの外科医の手術のように、時間のない中でも平常心を保ってその時にでき得る最善の処置を施すのです。

 

プロのプログラマは、自分のキャリアや製品の質に責任を持ち、無駄のない正しく動作するコードを常に書き続けます。

そして、たとえ納期に追われても手を抜くことなく、最善を尽くしていい製品を作り続けるのです。

 

バージョン管理システムを有効に使う

このテーマで述べられていたことは、

「プロジェクトを構成する要素は、ほぼ全てバージョン管理の対象にすべき。またバージョン管理システムを有効活用するために、開発チームメンバー全員が『ルール』を守るべき。」

ということです。

 

以下、要約です。

バージョン管理は、プロジェクトを構成するあらゆるものについて必要です。

プロジェクトを構成する要素はソースコードだけでなく、ドキュメントやツール、ビルドスクリプト、テストケース、画像ファイル、ライブラリなどです。

 

バージョン管理を徹底することで様々なメリットがあります。

  • プロジェクトの変更履歴が自動的に記録される
  • 誰がどんな変更を加えたのかが追跡できるようになる
  • 大胆なコード変更を恐れることなく実行できるようになる
  • タグ付けしておけば、いつでも好きなバージョンのファイルを取り出せる
  • ブランチを切り出すことで、別の作業を並行して複数人で進めることができる
  • 担当者ごとにファイルのバージョンが違うという事態を避けることができる

 

バージョン管理システムを有効活用するための『ルール』

  • コードに意味のある変更を加えるたびに、逐一コミットすること
  • コミットする際は、必ずコミットメッセージを添えること
    少なくとも、どのような変更をしたのかを加える
    可能であれば、なぜ変更したのかを加える
  • ビルドを壊すようなコードは絶対にコミットしないこと
    (チームのみんなに恨まれます笑)
    可能であれば、コミット前にビルドを回しましょう

 

バージョン管理ツールには、フリーのものがたくさんあります。

例えばGit、SubversionCVSMercurialなど。

必ず導入すべきでしょう!

 

③いったんコンピュータから離れてみる

このテーマで述べられていたことは、

「コンピュータの前で座り続けても思いつかなかった解決策が、コンピュータから離れた時にふと思いつくことがある。解決策を考え尽くしたと思っても、一度席を立ってリラックスしてみてはどうでしょう。」

ということです。

 

以下、要約です。

「何時間も集中して考えているのに、なかなか解決策が出てこない」

少々休憩して散歩に出かけたり、自動販売機にジュースを買いに行ったりしたら突然「答えが思いついた」ということはないでしょうか?

 

ここでポイントとなるのは、解決策が思いついてより良いコードが書けたということではなく、コンピュータに向かっているときに「これ以上の解決策は出せない」と思っていたことです。

 

ある問題について十分に考えたら、少し休憩をとってみてはどうでしょうか?

ふとした瞬間にアイデア(解決策)が降ってくるかもしれません。

 

あとはこのイデアを忘れないうちに実践することだけです!

 

まとめ

①プロでいる姿勢が重要で、それは自分の仕事に責任を持つことである!

②プロジェクトを構成する要素は、ほぼ全てバージョン管理の対象にすべきです!

③席に座って考え続けるだけが全てではなく、ふとした瞬間に生まれたアイデアをしっかり覚えておいて、それを実践するという姿勢も重要である!

 

*より深く知りたい方は、ぜひ本書を手にとってみてください!

書籍情報

プログラマが知るべき97のこと [ ケブリン・ヘニー ]

価格:2,090円
(2021/5/13 11:12時点)
感想(1件)

【中古】 プログラマが知るべき97のこと /ケブリンヘニー【編】,和田卓人【監修】,夏目大【訳】 【中古】afb

価格:825円
(2021/5/13 11:12時点)
感想(0件)

【書籍名】プログラマが知るべき97のこと

【著者名】ケブリン・へニー、夏目大(訳)

【出版社】オーム社

【出版日】2010年12月

【ページ数】243ページ