nikkie-ftnextの日記

イベントレポートや読書メモを発信

「ITエンジニア本大賞 2023」で投票したおすすめの本の1冊は『良いコード/悪いコードで学ぶ設計入門』です #itbookaward #ミノ駆動本

はじめに

みんなおすすめ本持ってていいなア!!じゃあ、本バトルしようぜ!本バトル!!
nikkieです1

みなさん、「ITエンジニア本大賞 2023」に投票しました?(12/11締切)
私は、し ま し た!

おすすめ本について語っていくブログシリーズができることに気付き、今回筆を執っています。
初回はミノ駆動本です。

目次

ミノ駆動本ってどんな本?

ミノ駆動本の正式名称は『良いコード/悪いコードで学ぶ設計入門』2

設計の入門書で、変更容易性を実現する設計について学べます。
誰もが犯しがちなまずい設計(=悪魔)を「なぜそれがまずいのか」「どのようにすれば解決できるのか(悪魔を退治できるのか)」をコード例とともに解説しています3

私の渾身の紹介がこちら:

写経も交えて読むのがオススメです!

ミノ駆動本で知った設計テクニック

クラスの使い所がようやく分かった😭

ソフトウェアエンジニアとして現在7年目(キャリアの過半はPythonを書いてきました)ですが、クラスの使い所が長いこと分からなかったのです。
ミノ駆動本を読み、手を動かす中でちょっとずつ分かってきて、悪魔も見えるようになってきました。

if文/switch文以外の分岐

if文/switch文以外に分岐を実現する方法があるとわかったのは、非常に大きかったです!
ライブラリのコードを読んでいて、「これってMapを使った分岐じゃん!」と発見しました4

自己防衛責務を備えたクラスのインスタンスを渡して別のクラスをインスタンス

こちらは最近の学び。
自己防衛責務とは、インスタンスが絶対不正な状態にならないこと(完全コンストラクタや不変性で実現)。
イニシャライザ(Python__init__)は引数をそのまま設定するものと思い込みがあったのですが、不正な状態になっていないインスタンスがラップしている値を取り出して属性に設定、「なるほど!」と膝を打ちました。

ミノ駆動本は他の技術書を紐解くきっかけにも!

後述の読書会のおかげもあって、ミノ駆動本で知ったトピックについて他の技術書で学びを深めています。
たーのしーー!

『Clean Code』

テスト駆動開発

私もびっくりしたのですが、ケント・ベックの『テスト駆動開発』、(TDDにとどまらず)設計についても学びがありました!
別名参照問題についてはどこかでアウトプットしたいなー。

ミノ駆動本_読書py

加わっていただいたYumihikiさんと共同主催している、Python使い視点での読書会。

2〜3週に1回ペースで2桁に到達しました!

これまで1回でもご参加いただいた皆さま、誠にありがとうございます。

みんなで学んでいるおかげで、ミノ駆動本からいろいろな気付きを得られているのかなと思います。

共同主催Yumihikiさんのアウトプットからも刺激をいただいています!

次回は12/2(金) 20:30〜
常連さんも、はじめましての方も、お久しぶりの方も、お待ちしています!

終わりに

私の2022年の学びの大半はこの本から、ミノ駆動本について語ってきました。


📣 ミノ駆動本はいいぞ!!

さて、「ITエンジニア本大賞 2023」は全6冊投票可能。
つまり、あと5冊、オススメを残しています。
投票したおすすめの本シリーズ、次回もお楽しみに(せめてもう1回は書きたい!)

12/11までです、ITエンジニア本大賞 2023に投票して盛り上げましょう!
ブログなどでみんなのおすすめ本も、教えてほしいなア!



P.S. 勝手にアニメコラボ

であいもん5とシンクロ!!

読書会のconnpassを作る中で、「えぬえるぴーや的に鬼滅の刃は恐ろしい」と思い知りました😨


  1. チェンソーマンはエアプ勢です
  2. 「良い」のルビは「いい」ではなくて「よい」です。
  3. 先日のForkwell Libraryでも共有されていましたね(動画 10:58-)。
  4. 例えばFlaskのデコレータです。
  5. 舞台の京都にイベントに行くくらい好きです。