フォームから送信されたURLを受け取る方法を学びます。POSTルーティングとparamメソッドでフォームデータを取得し、送信されたURLを画面に表示してみましょう。
URL短縮サービスの入口となるフォームを作成します。Mojolicious::LiteのGETルーティングとEPテンプレートで、URLを入力できる画面を表示しましょう。
友人から「長いURLを短くしたい」と相談されたことをきっかけに、Mojolicious::LiteでURL短縮サービスを作り始めます。morboで開発サーバーを起動しHello Worldを表示するまでを解説。
シンプルなTodo CLIアプリ(全10回)の目次ページです。各回の要点と関連記事へのリンクをまとめました。
Repositoryパターンの応用演習です。既存コードを変更せずにSQLite永続化を追加し、JSON→SQLiteへの切り替えを実装。DBIとDBD::SQLiteの使い方も学びましょう。
素朴な実装から洗練された設計への変化を振り返ります。CommandパターンとRepositoryパターンの導入効果を確認し、デザインパターンの威力を実感しましょう。
Getopt::Longでコマンドライン引数を整理し、--verboseなどのオプションにも対応します。サブコマンドとオプションを組み合わせた堅牢なCLIアプリに仕上げましょう。
Command::Completeを追加し、Commandパターンの拡張性を体験します。新機能追加が既存コードにほとんど影響しない設計の威力を実感しましょう。
肥大化したif-elsif分岐をCommandパターンで解消します。各操作をCommand::Add、Command::Listなどのオブジェクトに分離し、拡張性の高い設計を学びましょう。
ファイルI/Oなしでテストできるよう、InMemoryRepositoryを追加します。同じインターフェースで実装を切り替える威力を体感し、Repositoryパターンの真価を理解しましょう。
Repositoryパターンを導入し、メインロジックから永続化コードを分離します。TaskRepository::RoleとTaskRepository::Fileの実装で、保存形式の変更に強い設計を学びましょう。
プログラム終了後もタスクを保持するため、JSONファイルでの永続化を実装します。PerlのJSONモジュールを使った読み書き方法を解説。タブ区切りからJSONへの移行で、より堅牢なデータ管理を実現しましょう。
TodoアプリのデータをMooでクラス化します。Taskクラスを定義してid・title・is_doneを管理し、mark_done()メソッドでタスク完了を実装。素朴な配列管理からオブジェクト指向への第一歩を踏み出しましょう。
Perlで実践的なCLIアプリを作ってみませんか?if-elsif分岐でadd・list・completeの3つのサブコマンドを持つTodoアプリを実装。配列でタスクを管理するシンプルな構成から始め、動くアプリを通じて拡張性の課題を体感します。
「Mooを使ってディスパッチャーを作ってみよう」シリーズ(全12回)の目次記事です。各回へのリンクと短い説明をまとめています。