Avatar

設計パターンを疑え

名前の嘘を暴き、意図で設計を語る

  1. Home
  2. About
  3. Perl Advent Calendar 2025 - AI Edition
  4. Archives
  5. Search
  6. Links
  7. Warehouse
    1. ダークモード

アーカイブ

2026 355
2025 85
2024 1
2023 1
2022 1
さらに見る

タグ

Perl Moo Life Social Design-Patterns Design-Pattern Web Movabletype Mojolicious Favorites Refactoring Series-Toc Yapc Ai Game Git Perl-Entrance Code-Doctor Jquery Meals
Featured image of post 【目次】PerlとMooでダイス言語を作ってみよう(全8回)

【目次】PerlとMooでダイス言語を作ってみよう(全8回)

PerlとMooでTRPGのダイス記法を解釈するインタプリタを作るシリーズの目次です。Interpreterパターンを実践的に学びます。

1月 29, 2026
読了時間: 1分
Featured image of post 第8回-これがInterpreterパターンだ! - PerlとMooでダイス言語を作ってみよう

第8回-これがInterpreterパターンだ! - PerlとMooでダイス言語を作ってみよう

作ってきた設計がInterpreterパターンだったことを明かします。GoFパターンとの対応表と、他のパターンとの関係を解説します。

1月 29, 2026
読了時間: 4分
Featured image of post 第7回-完成!ダイス言語インタプリタ - PerlとMooでダイス言語を作ってみよう

第7回-完成!ダイス言語インタプリタ - PerlとMooでダイス言語を作ってみよう

文字列「2d6+3」から式ツリーを自動構築するパーサーを実装し、ダイス言語インタプリタを完成させます。

1月 29, 2026
読了時間: 3分
Featured image of post 第6回-掛け算・引き算も追加(OCP) - PerlとMooでダイス言語を作ってみよう

第6回-掛け算・引き算も追加(OCP) - PerlとMooでダイス言語を作ってみよう

引き算(SubExpr)と掛け算(MulExpr)を追加します。既存コードを変更せずに機能を拡張する「開放閉鎖の原則」を実践します。

1月 29, 2026
読了時間: 2分
Featured image of post 第5回-すべての式に共通ルールを - PerlとMooでダイス言語を作ってみよう

第5回-すべての式に共通ルールを - PerlとMooでダイス言語を作ってみよう

すべての式クラスにevalメソッドを必須にするExpressionRoleを定義し、Moo::Roleでインターフェースを統一します。

1月 29, 2026
読了時間: 4分
Featured image of post 第4回-足し算クラスを作る - PerlとMooでダイス言語を作ってみよう

第4回-足し算クラスを作る - PerlとMooでダイス言語を作ってみよう

「+」を表すAddExprクラスを作成します。左辺と右辺のExpressionを持ち、再帰的に評価する「非終端式」の概念を学びます。

1月 29, 2026
読了時間: 3分
Featured image of post 第3回-数値とダイスをオブジェクトに - PerlとMooでダイス言語を作ってみよう

第3回-数値とダイスをオブジェクトに - PerlとMooでダイス言語を作ってみよう

数値とダイスをそれぞれ独立したクラスにし、evalメソッドで評価する設計に変更します。これが「終端式」と呼ばれる概念です。

1月 29, 2026
読了時間: 3分
Featured image of post 第2回-計算式が複雑になると破綻 - PerlとMooでダイス言語を作ってみよう

第2回-計算式が複雑になると破綻 - PerlとMooでダイス言語を作ってみよう

ダイス言語に加減乗除を追加しようとして、if/elseの嵐に陥ります。なぜコードが複雑になるのか、その問題点を整理します。

1月 29, 2026
読了時間: 4分
Featured image of post 第1回-ダイスを振ろう - PerlとMooでダイス言語を作ってみよう

第1回-ダイスを振ろう - PerlとMooでダイス言語を作ってみよう

TRPGで使われるダイス記法「2d6」を解釈して振る仕組みをPerlとMooで実装します。まずは最小限のDiceクラスを作り、ダイスを振る基礎を学びましょう。

1月 29, 2026
読了時間: 3分
Featured image of post 【目次】PerlとMooでドキュメント変換ツールを作ってみよう(全8回)

【目次】PerlとMooでドキュメント変換ツールを作ってみよう(全8回)

PerlとMooでドキュメント変換ツールを作りながらVisitorパターンを学ぶシリーズの目次です。if/elseの限界からDouble Dispatch、OCPの体験まで、全8回で実践的に学びます。

1月 27, 2026
読了時間: 2分
Featured image of post 第8回-これがVisitorパターンだ! - PerlとMooでドキュメント変換ツールを作ってみよう

第8回-これがVisitorパターンだ! - PerlとMooでドキュメント変換ツールを作ってみよう

シリーズで作り上げた設計がVisitorパターンだったことを明かし、パターンの正式な定義と構成要素を解説します。Double Dispatchの本質、パターンが威力を発揮する場面、そしてSOLID原則との関係を理解しましょう。

1月 27, 2026
読了時間: 7分
Featured image of post 第7回-単語数カウントとリンク抽出を追加しよう - PerlとMooでドキュメント変換ツールを作ってみよう

第7回-単語数カウントとリンク抽出を追加しよう - PerlとMooでドキュメント変換ツールを作ってみよう

単語数をカウントするWordCounterと、リンクを抽出するLinkExtractorを追加します。変換だけでなく分析系の操作も同じ仕組みで実現でき、複数のVisitorが共存できることを確認しましょう。

1月 27, 2026
読了時間: 6分
Featured image of post 第6回-プレーンテキスト変換を追加してみよう - PerlとMooでドキュメント変換ツールを作ってみよう

第6回-プレーンテキスト変換を追加してみよう - PerlとMooでドキュメント変換ツールを作ってみよう

新しい出力形式「プレーンテキスト」を追加します。TextConverterを作成するだけで、既存のコードを変更せずに機能拡張できることを体験しましょう。OCP(開放閉鎖の原則)の実践です。

1月 27, 2026
読了時間: 5分
Featured image of post 第5回-要素が自分の変換方法を決める? - PerlとMooでドキュメント変換ツールを作ってみよう

第5回-要素が自分の変換方法を決める? - PerlとMooでドキュメント変換ツールを作ってみよう

if/elseを完全に排除するため、acceptメソッドとvisit_*メソッドによる「Double Dispatch(二重ディスパッチ)」の仕組みを導入します。要素自身が変換方法を決める設計を学びましょう。

1月 27, 2026
読了時間: 6分
Featured image of post 第4回-変換処理を別クラスに分けよう - PerlとMooでドキュメント変換ツールを作ってみよう

第4回-変換処理を別クラスに分けよう - PerlとMooでドキュメント変換ツールを作ってみよう

if/elseの地獄を脱出するため、変換処理を別のクラスに分離します。ConverterクラスとHtmlConverterを作り、処理を委譲する設計を学びましょう。

1月 27, 2026
読了時間: 5分
1 … 7 8 9 … 87
© 2000 - 2026 設計パターンを疑え
Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。