📖

【書評】自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120

2021/03/19に公開

「地図」 を持っている「自走プログラマー」になろう


本書は、システム開発を行う上で迷子にならないように、1人で進むことができる「地図」を自分で作れるように、設計から、実装、テストまで様々な状況の具体的な失敗例とベストプラクティスを教えてくれます。

タイトルに「Python」とありますが、Pythonを書いた経験が無くても、プログラミングの経験が少しでもあれば大体は理解できる内容になっています。(※ただし、Pythonのライブラリやフレームワークの話は少し分かりにくい部分はあります)

前書きに、

本書は、「プログラミング入門者が中級者にランクアップ」するのに必要な知識をお伝えする本です。

とあるように、基本的に、プログラミング初心者でも分かるように分かりやすく書かれており、一つ一つの作業の意味やメリットデメリットを理解することの大切さを認識することができます。

また、中級者にとっては、当たり前と感じる部分もあるかもしれませんが、要件定義やシステム設計部分はなかなか経験できない部分なので、新しい知識を得られるかもしれません。

本書のターゲット

  • プログラミング初心者~中級者
  • 一つ一つの実装や設計の意味とメリット・デメリットを理解して仕事がしたい人
  • 運用・保守に適したコードを書きたい人
  • システム開発の一連の流れとベストプラクティスを知りたい人

本書の構成

第1章 コード実装
 1.1 関数設計
 1.2 クラス設計
 1.3 モジュール設計
 1.4 ユニットテスト
 1.5 実装の進め方
 1.6 レビュー
第2章 モデル設計
 2.1 データ設計
 2.2 テーブル設計
 2.3 Djang ORM との付き合い方
第3章 エラー設計
 3.1 エラーハンドリング
 3.2 ロギング
 3.3 トラブルシューティング・デバッグ
第4章 システム設計
 4.1 プロジェクト構成
 4.2 サーバー構成
 4.3 プロセス設計
 4.4 ライブラリ
 4.5 リソース設計
 4.6 ネットワーク
第5章 やることの明確化
 5.1 要件定義
 5.2 画面モックアップ

プログラミング初心者は自分の実装を説明できない

本書に書かれている、プロジェクト開発の失敗例は「とりあえず動けばOK!」と考えて、目の前の問題を解決するのに精一杯なプログラミング初心者が陥ってしまう、具体的な失敗例が書いてあります。そのようなプログラミング初心者は、設計の理由や、自分が書いたソースコードを言葉で説明することができません。

プログラミング中級者になるためには、自分のした設計や実装に対して、それを選択した理由やメリットデメリット、また、採用しなかった方法までしっかり理解して説明できる必要があります。

プログラミング初心者にとって、本書は、さまざまな場面のベストプラクティスを学べると共に、プログラミング中級者になるためには、常に様々なことを考えないといけないことを学べると思います。

私自身の学び

私自身としては、1章~3章はベストプラクティスを理解しており、すでに自分で考えながら進められていると感じました。

4章、5章に関しては、まだできていない部分があり、今後の仕事に役立てることができそうです。特に学んだことを以下に書いておきます。

4.4 ライブラリ

OSSなどのライブラリを選定する時に何を基準に採用する必要があるかを学べました。私自身、要件を満たしており、ある程度有名なものであれば、あまり考えずに採用してしまっていました。

5.1 要件定義

すぐに使う技術や細かい仕様に注目せずに、まずは作りたい価値を考える必要があることを学べました。まだしっかりと要件定義を経験したことは無いが、今後、個人開発など、機会があれば役立つと思います。

5.2 画面モックアップ

単純に経験がないので、新しい学びを得ることができました。特に、無駄に複雑なシステムや実装にならない様に、モックアップから実装までをイメージする必要があるということは今後意識しようと思います。

最後に

システム開発でぶつかる壁に対するベストプラクティスは、プログラミング初心者~中級者にとっては、まさに「地図」と呼べるものになるでしょう。

ベストプラクティスを知ってる上で、さらに、プロジェクトの状況や世の中の流れまでをしっかりと考慮に入れて、その都度、ベストな選択ができれば「自走プログラマー」と呼べるはずです。

自走プログラマーになるには、努力と時間が必要ですが、常にいろいろ考えながら行動すれば必ずなれると思うので、私自身、何事も最後まで考えることを忘れないようにしようと思いました。また、本書を若手育成の指針にしていこうと思います。

Discussion