KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

Pythonプロフェッショナルプログラミング

LINEで送る
Pocket

Python勉強してます林です。

社内的にはperl押しの人が多いんですが、ここは一つpythonなら誰にも負けねーって
言いたいのでお勉強中です。
いつかコミッターレベルになってやるという密かな野望を持ちつつ・・・

今回購入したのはこの2冊。

Pythonプロフェッショナルプログラミング

Pythonプロフェッショナルプログラミング

エキスパートPythonプログラミング

エキスパートPythonプログラミング

目的は
・チュートリアルで大体文法とか分かったので実際どんなもんなの?
ってところを学びたい。
・ちゃんとpythonの書き方をプロく書きたい。
の以上2点です。

そのうちのPython プロフェッショナルプログラミングについて記述します。
もう片方は熟読 + 経験積まないと理解できなかった本なので後日感想を記述予定。

【感想】
Pythonを利用した場合の開発イメージを持てる良い本でした。
Pythonのことが詳しく書かれているというよりは、Pythonでプロジェクトを進めていくに
あたってのナレッジが細かく書かれていて、実際の開発〜テスト〜デプロイまでの
流れが書かれているのでイメージしやすかったです。

【特に感動した点】
単体テストコード周り
特に単体テストのナレッジ辺りは嬉しいところでした。
クラス別での単体テストコードの記述方法は 当 然 !書かれているだろうと
思っていましたけど、読んでいくにつれてDBテストをする場合は?
WEBテストする場合は?とかの疑問がちゃんと説明されていました。

いろんな本見てきましたけど、どの本も単体テストについて
記述しているところがあんまりないんですよね。
モックはこれ使えますよー、とか単体テストの方法はこんな感じーとか。
そのレベルは当然書いてあるんですけど、
DBテストをする場合はこんな構成にするとエンジニアがハッピーになれるよ!とか、
WEBテストするならこのモジュールを使うんだ!とか、
カバレッジも当然とれまっせ!とか、自動化もほれ、この通り!等々。
多分pythonでお仕事をされている方には当然なのかもしれませんが、
自分からするととても嬉しい内容でした。
思わず本を見ながら「おー!!」と声を出したくらい。

自分は「単体テストコードがないコードはゴミ以下。」だ、と教えられてきたので
単体テストコード書かないと不安な人間です。(当時の記憶が蘇りますね・・・)
当然サービス開発とか単体テストコードを書ける余裕がない現場もありますので、
ケースバイケースとも教えられてます。あしからず。

単体テストコード書くのは通常の実装を行う労力の最低でも3倍かかると実感しています。
単体テストコードの量も実装の3倍くらいかかりますね。うん。
実装するのにそんなに時間かかるのかよ・・・って思うかもしれませんけど、
品質・動作をテストコードで担保できるって
エンジニアからしたらハッピーなんじゃないかな?って個人的には思います。
誰もバグ出したくて実装している人なんていないですし、
やっぱ人間なのでミスとかするじゃないですか?抜け漏れがあったりもします。
そんなときにテストコード書いて設計、実装、テストコードに差異がないか
とかを皆でレビューして、それで問題なかったら
自信もってお客様にお届けできると思うんですよね。

なんて話が逸れましたが、そういう部分もきっちり書かれていていい本です。

ちなみにORマッパーがどんなSQL文を発行しているのかもデバッガーで
見れるモジュールも説明されてました。

素晴らしい、素晴らしいよPython。

ORマッパーがどんなSQL文発行しているのかとか気になりますよね。
正直裏で何してんだよってめっちゃ気になる(笑)
パフォーマンスにも関わりますしねー。

他の言語でもそんな感じの物が有るのかもしれませんけど・・・
自分が知らないだけで(笑)無知って怖い。

とまぁなんかやたら単体テストコード押しな文章になってしまいましたけど、
Pythonで開発する場合のアーキテクチャ設計のモデルを知るにはとても良い本です。
机に一冊置いておきたい本ですね。

Python3系のことについては少しぐらいしか触れていません。
2.7系をメインで取り扱っている為、3系を勉強したい人には不要の物になります。

一つ注文があるとしたら、タイトルがなんか違うんじゃなかろーかとも思えました。
いや、素晴らしいタイトルつけるのって変数やクラスの命名並みに難しいなーって思います。

LINEで送る
Pocket