自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120
- 技術評論社 (2020年2月27日発売)
- Amazon.co.jp ・本 (288ページ)
- / ISBN・EAN: 9784297111977
作品紹介・あらすじ
「初心者本はひととおり読んだけれど、次に何をしてよいかわからない」
「簡単なコードは書けるけれど、中規模システムは作れない」
本書は、そんなプログラミング迷子が設計からコードまで書けるスキルを身につけるための指南書です。
開発現場で起こった実際の問題とその解決法をもとに、文法以外に必要な「プロジェクトの各段階でプログラマーがやること」「その選択をどう判断するのか」「どうコードを実装して実現していくのか」を解説します。コードにはPythonを使用していますが、ほかのプログラム言語でも共通する知識が満載。より効率的かつ効果的にプログラムを書ける「自走できるプログラマー」へ導きます。
感想・レビュー・書評
-
【読書メモ】
「プログラミング迷子が自走できるようになるための地図を伝える」
プログラム迷子とは
・どのファイルに何のコードを書くが定まらず、気がつくと一貫性がなくなっている
・作ってみたは良いけれどごちゃごちゃしていて今後を開発を続けるのが大変
という人のこと
まさしく自分が当てはまるのだが、特効薬的なものではなくやや残念
ただ、細かいいろいろな着眼点など有用なものも多い
不要なものもけっこうあって、
・エラー処理部分などはパイソニックで逆に他言語には使いにくそう
・あとDjango特化部分は使っていないので不要
あと、すでに作ってしまっているごちゃごちゃやログラムをどうするか、が悩みではある
とりあえず辞書のクラス化から検討するか
さらにPythonのクラスについてもっと勉強が必要
@propertyとか知らなかったし……
【参考になった点】
・プログラマーのためのネーミング辞書 https://rodic.jp
・コナント 処理の意味となぜそうなるのか
*辞書でなくクラスを定義する:特定のキーを持つ辞書を期待するならクラスを定義する
・テストをよりよく書こうより、実装の設計を見返す
*公式ドキュメントを読む:web検索でわかったことにしない、ただし時間制限は必要
・必要十分なコードにする
・正規化を崩す=検索性性向上=更新の手間は増える
・削除フラグより履歴テーブルを作って削除する
・臆せずエラー(例外)を発生させる
・専用の例外クラスでエラー原因を明示する
*ログはprintではなくloggerを使う
・状況依存の設定値は環境変数で設定:ex)DEBUG=boolCos.environ.get('DEBUGFalse))
・適切なライブラリを選ぶ
・一時的な作業ファイルで競合しないファイル名を作る:tempfile.NamedTemporaryFile関数
。ssh port forwardingによるリモートサーバアクセス
*いきなり作り始めてはいけない:流れを知ること、価値検証・設計
・どんな痛みを解決するものなのか、その大きさや頻度を確認
・最小で実用できる部分から作る→最小の完成形を見つける
・一度に実装する範囲を小さくする
・タスク1つの実装時間は目安3時間
・ソースコードの実装場所にToDoコメント詳細をみるコメント0件をすべて表示 -
経験値がギッシリ。
何かしら学び得るものがあるし、この手の本じゃないと得られない内容。 -
コードの書き方から要件定義まで。逆に読んでもいいし、ピンポイントでも読んでいい。
-
自走プログラマー -Pythonの先輩が教えるプロジェクト開発のベストプラクト-
入門とかの本は結構あるが業務でプログラムをする場合のコツを紹介してくれている。中身はWebアプリ開発のことがほとんどで特にDjangoを使ったアプリ構築が中心となるのでそれが目的ではない人は困ると思う。
1章 コード実装
1.2.12項の辞書ではなくクラスを定義するは考えさせられた。
2章 モデル設計
ほぼDjangoのモデル設計とデータベース設計の話
3章 エラー設計
3.1.63の臆さずエラーを発生させるはそうだよなと思った。
4章 システム設計
デブロイの話など
5章 やることの明確化
省略
ちょうどDjangoのことを勉強中だったのでどストライクでした。 -
エンジニアなら当然知っておくべき当たり前の事柄が幅広くカバーされているので、若手エンジニアにおすすめする。
ベテランエンジニアも、Pythonに不慣れな場合ならPythonではこうやる・こういうツールやライブラリがある、といった形で参考になるだろう。 -
kindleにて購入。
PythonとDjangoでのWebアプリ開発を題材に書かれてるけど、門外漢のソフト開発者の自分でも共感できることが多かった。Web屋さんがどんなことに気をつけて開発しているかが知れて面白かった。
・間数名では具体的な英単語を使う
・副作用を意識する
・意味付けできるまとまりで関数にする
・戻り値がリストの関数では忘れずに要素数もテストする
・レビューをお願いするときは、すべて行の「これは何?」に答えられるようにしておく
・例外を隠さない
・集計のためにログメッセージはフォーマットせず、引数を使う
・環境依存の設定は設定ファイルで、状況依存の設定は環境変数(.env)で管理する
・Gunicornのワーカープロセスは自動的に再起動されるので、自前で非同期スレッドをおこしてはいけない
・一時的な作業ファイルには絶対に競合しない名前を使う
-
初心者を脱するための120のノウハウを紹介する本。実装からテスト、設計まで扱っている範囲は幅広い。PythonとDjangoを使用しているけれど、それほど依存している訳ではないので、Python知らないから読めないといものではない。ただ内容的にはいかにも初心者向けという感じで、そこそこ経験のある人間からするとやはり物足りないものがある。