ショートセッション

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

nikkie ftnext
「オブジェクト指向をやってみたいけど、どこから始めればいいか、具体的にどう書けばいいかわからない」
という方に向けて、
構造化プログラミングで書かれたコードをオブジェクト指向で書き替える方法を示します。
15分の中で「この書き換え指針に基づき、こう書き換えた」とどんどん紹介していきます。
コード例はPythonで、 https://github.com/ftnext/python-image-processor にて開発中です。
以下に構成を示します。

- 自己紹介 (1min)
- 背景:入門書は構造化プログラミング (1min)
- 課題:入門書のように書けるようになったが保守しにくい (1min)
- 解決策:オブジェクト指向 (1min)
- アプローチ:『現場で役立つシステム設計の原則』『ThoughtWorksアンソロジー』の「オブジェクト指向エクササイズ」を参考に入門書のコードを書き直す (1min)
- 対象のスクリプト (2min)
- 指定した画像を縮小する:python resize.py path/to/target
- ディレクトリの場合、中の画像を縮小
- 対象を洗い出し、縮小する処理を呼び出す
- どう書き換えたかの紹介(4min)
- 対象と保存先を扱うクラス、縮小処理を表すクラス
- 対象と保存先を引数に縮小処理を呼び出す
- ディレクトリが指定できるよう、対象と保存先のファーストクラスコレクションを作成
- 保存先の指定を追加→ファーストクラスコレクション作成を修正
- 変更しやすさ(2min)
- サブコマンドでグレースケールにもできるようにする→共通インターフェースを持つグレースケール処理クラスを作る(抽象クラス使用)
- まとめ(1min)
- 質疑(1min)
1
採択者