幡ヶ谷亭直吉ブログ

娘のここねと格闘するエンジニア。

『VTuberサプーが教える! Python 初心者のコード/プロのコード』を読んで ~ 言語に沿って設計をする

読書メモ。2025年49冊目。
VTuberサプーが教える! Python 初心者のコード/プロのコード』を読んでの感想となります。(2025/7/9記載)

本の概要

「自分が書いたコードは、仕事で通用するか不安……」
「動くものは作れる。そこからどう上達すればいい?」
そんな悩みを抱えるあなたに、VTuberサプーがPythonでのコードの書きかたをお教えします! 本書は、コードの見た目の整えかたから、読みやすさ、シンプルさ、安全性……などを意識した「プロ」の知識とテクニックをまとめました。中の人のエンジニア経験から得た知見をもとに解説しているので、実際に現場でちゃんと役立つコードに改善できます。この1冊で、自分の書くコードをワンランクアップさせましょう!

引用:

gihyo.jp

動機

  • 現在自分が関わっているプロダクトのバックエンドがPython

  • Pythonの読み書きはなんとなくできるレベルだが、言語理解は浅く、動的型付け言語の経験も浅い。

  • プロダクト成長に合わせたコードの整理は必要になっており、Pythonでのプロのコードを学びたい。

感想

良いコードの書き方の指針のひとつとして安全性が挙げられていることを新鮮に感じました。
自分はJava育ちなので、静的型付け言語においては、コンパイル時に不備を検出できることが当たり前になっていました。
一方でPythonのような動的型付け言語では、そうした安全性は実行時まで保証されないことが多く、「安全性を設計に取り込む」姿勢が求められるのだと実感しました。
プロダクトを構築する言語に応じて、設計や品質の考え方を適応させていくべきだと思いました。

忘れたくないメモ

私が本書を通じて得た理解や気づきを、自分のためにも書き留めたメモです。
特に印象に残ったポイントを振り返ります。

グルー言語

Python はグルー言語として有名です。グルーとは「糊付け」という意味でソフトウェアやその部品同士をくっつける言語という意味です

グルー言語、はじめて知りました。
改めてPythonは汎用性の高い言語ということなのか。

ミュータブル、イミュータブル

・ミュータブルな型(可変): リスト、辞書、集合
・イミュータブルな型(不変): int、float、文字列、タブル、bool
「安全性」重視ならインプレースではない処理
「処理効率」重視ならインプレースな変更

言語理解が無いと落としがちな部分だと思いました。
特にクラス型、プリミティブ型の区分けに慣れた人間にとっては、気を付けないと意図しないバグを生みそうです。 

型ヒント

特にチーム開発では、関数を作った人とその関数を使う人が違うということはめずらしくありません。関数を使う人は、関数内の処理をすべて理解してから使うというよりも、関数名や引数の名前から、その関数がどのような動作をするのかを推測して使うことが多いです。そのため、型ヒントを記載して関数に渡す値の型がわかる状態にすることは、関数の使いやすさを上げてくれて、 バグを生みにくくします。

ソースコードにいかに意図を残すか。
意図を読み切れずに当初の想定と異なる利用をされないようにするか。
個人的には値オブジェクト迄育てたいと思いつつ、そこまでのハードルがまだ見えずにいます。
dataclassについてのYouTubeもわかりやすかったです。