ショートセッション

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

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

- 自己紹介 (1min)
- 背景:入門書は構造化プログラミング (1min)
- 課題:入門書のように書けるようになったが保守しにくい (1min)
- 解決策:オブジェクト指向 (1min)
- アプローチ:『現場で役立つシステム設計の原則』『ThoughtWorksアンソロジー』の「オブジェクト指向エクササイズ」を参考に入門書のコードを書き直す (1min)
- 対象のスクリプト紹介 (2min)
- パスで指定した画像を縮小する
- 画像の入ったディレクトリも指定可能
- 概要:対象の画像を洗い出し、縮小する処理を呼び出す
- 以下書き換え方
1.対象と保存先を扱うクラスと縮小処理を表すクラスに分けて設計(1min)
2.ディレクトリ指定のために、対象と保存先のファーストクラスコレクションを作成:マジックメソッドの上書きとUserListの使用の2通り(2min)
3.保存先の指定を追加→ファーストクラスコレクション作成を修正(1min)
- 変更しやすさ:サブコマンドでグレースケールにもできるように→共通インターフェースを持つグレースケール処理クラスを作る(抽象クラス使用)(2min)
- まとめ(1min)
- 質疑(1min)
採択者
仮採択 非採択 重複 Type: 初心者向け Type: 設計 Type: フロントエンド Type: 体験談 Type: テスト Type: 歴史 Type: 実装 Type: 概念 Type: DDD Type: 上級者向け