変更しやすいコードを目指して、構造化プログラミングのコードをオブジェクト指向で書き直す(Python編) by nikkie

Object-Oriented Conference 2020
ロングセッション

変更しやすいコードを目指して、構造化プログラミングのコードをオブジェクト指向で書き直す(Python編)

ftnext nikkie ftnext
3

「オブジェクト指向をやってみたいけど、どこから始めればいいか、具体的にどう書けばいいかわからない」
という方に向けて、
構造化プログラミングで手続き的に書かれたコードをオブジェクト指向で書き替える方法を示します。

私自身はPythonの入門書で学習して、構造化プログラミングで手続き的に書けるようになりました。
また、Javaに代表されるオブジェクト指向に関わる言語の経験はほとんどありません。
業務でPythonを書く中でコードの変更に時間がかかり、オブジェクト指向を身に着けて「動作し、変更しやすいコード」が書けるようになりたいと痛感しています。

この裏には、Pythonの入門書でオブジェクト指向に踏み込む本が少ない状況があると考えています。
私のようにPythonで本格的にプログラミングをする人にとって、変更しやすいコードを書くための情報が不足しているという課題があります。

オブジェクト指向を身につける方法として、先輩エンジニアから『ThoughtWorksアンソロジー』の「オブジェクト指向エクササイズ」を教わりました。
エクササイズに沿って入門書のコードを変更することで、少しずつオブジェクト指向がつかめ始めています。

私がエクササイズに沿ってどのようにコードを書き換えたかをとことん具体的に共有することで、
変更しやすいコードが書けないという課題を抱えた方が、オブジェクト指向に挑戦するきっかけが提供できると考えています。

コード例はPythonで、 https://github.com/ftnext/python-image-processor にて開発中です。
構成は https://gist.github.com/ftnext/b77cadb7f49741f4654dec0ac2df6bfb にあります