@nqounetです。
このページは「Mooで作る簡易テキストエディタ」シリーズ全10回の目次です。PerlとMooを使ってテキストエディタを作りながら、Commandパターンを自然に学んでいきます。
シリーズの概要
テキストエディタを開発する中で「元に戻したい」「やり直したい」という要求に応えるために、操作をオブジェクトとして管理する設計を段階的に構築していきます。最終的には、その設計がGoFのCommandパターンだったことを明かします。
対象読者
- Perl入学式卒業程度の方
- 「Mooで覚えるオブジェクト指向プログラミング」シリーズを読了した方
- Undo/Redo機能に興味がある方
学べること
- テキスト操作の基本実装
- 操作の履歴管理
- Undo/Redo機能の実装
- Commandパターンの構造と利点
- SOLID原則の実践
シリーズ一覧
第1回 - 簡易エディタを作ろう - テキストを編集する
第1回-簡易エディタを作ろう - テキストを編集する - Mooで作る簡易テキストエディタPerlとMooでテキストを追加・削除できる簡易エディタを作成。Undo/Redo機能まで学ぶシリーズ第1回。- テキストを保持するEditorクラスを作成します。
第2回 - 元に戻したい! - 履歴の必要性
- 単純な方法では履歴が取れない問題を認識します。
第3回 - 操作を記録しよう - 操作オブジェクト
- 操作をオブジェクトとして表現するInsertCommandを作成します。
第4回 - 元に戻せるようにする - undoメソッド
- 各操作に逆操作を定義してUndo機能を実現します。
第5回 - 共通の約束を決める - ロールの活用
- Moo::RoleでCommand::Roleを定義し、共通インターフェースを作ります。
第6回 - 履歴を管理しよう - Historyクラス
- 履歴管理をカプセル化するHistoryクラスを作成します。
第7回 - やり直しもできる! - Redo機能
- Redo機能を追加し、Undo/Redoスタックを実装します。
第8回 - 複数操作をまとめる - マクロ機能
- 複数の操作を1つにまとめるMacroCommandを実装します。
第9回 - 完成!簡易エディタ - 統合と仕上げ
- 対話型インターフェースを持つエディタを完成させます。
第10回 - これがデザインパターンだ!
- 作った設計がCommandパターンだったことを明かし、振り返ります。
関連シリーズ
Mooで覚えるオブジェクト指向プログラミング(全12回)
Mooの基礎から学べるシリーズです。本シリーズの前提知識として最適です。
Mooを使ってディスパッチャーを作ってみよう(全12回)
Strategyパターンを学べるシリーズです。本シリーズと合わせて読むと、デザインパターンの理解がさらに深まります。
シリーズを通してCommandパターンと設計の考え方が学べます。第1回から順に読み進めてください。

