「いいね数に文字列が入ってる?」そんなバグを型制約で未然に防ぎましょう。isaオプションで型チェックを追加する方法と、シリーズ全12回の総まとめをお届けします。
クラスが大きくなりすぎてメソッドだらけ…。そんなとき、handlesを使えば属性として持っているオブジェクトにメソッド呼び出しを委譲できます。クラスをスリムに保つ委譲のテクニックを学びましょう。
MessageもUserも作成日時を記録したい。でも継承関係はない…。そんなとき、Moo::Roleを使えば継承なしで同じ機能を複数のクラスに追加できます。ロールによる振る舞いの共有を学びましょう。
親クラスと子クラスで同じ名前のメソッドを持つとき、子クラスのメソッドが優先されます。if文による分岐だらけのコードを、オーバーライドでスッキリ書き直す方法を学びましょう。
通常投稿と管理者投稿で同じコードを何度も書いていませんか?Mooのextendsを使った継承で、共通の機能を親クラスにまとめ、コードの重複を解消する方法を学びます。
クラスが巨大になって管理しづらい…そんな悩みはありませんか?関連するデータを別のクラスに分離し、クラス同士を連携させる設計を学びます。MessageクラスからUserクラスを抽出して、シンプルで拡張しやすい設計を目指しましょう。
いいね数がマイナスになってしまった…それは内部状態を直接いじられたから。Mooで内部属性を隠蔽し、公開メソッド経由でのみ安全に操作する「カプセル化」の基本を学びます。
うっかり値を渡し忘れて動かない…そんなバグに悩んでいませんか?Mooのrequiredで必須パラメータを強制し、defaultで安全なデフォルト値を設定する方法を学びます。
どこからでも変更できてしまう属性がバグの原因に?Mooのis => 'ro'で読み取り専用の属性を作り、必要なものだけis => 'rw'にすることで、安全で堅牢なクラス設計を学びます。
コピペで増えていく変数群にうんざりしていませんか?Mooのnew(コンストラクタ)を使えば、同じ構造のオブジェクトを何個でも簡単に作れます。配列とループで一括処理する方法も解説します。
グローバル変数だらけのスパゲティコードを卒業しませんか?Mooのhasで属性を、subでメソッドを定義して、データとロジックを1つのクラスにまとめる方法を初心者向けにやさしく解説します。
Mojo::Log を教材に、Perl のイベント駆動プログラミングを基礎から解説。on(購読)と emit(発火)の仕組みを図解とコードで学び、カスタムフォーマットや複数出力先への配信など実用パターンも紹介します。
GitHub Copilot の Ask モードを調べ物ツールだと勘違いしていませんか?実はリポジトリ全体を分析する強力な調査ツール。Ask → Plan → Agent の流れで新規プロジェクトのオンボーディングが数分で完了。実践的な活用法を解説します。
GitHub Copilot の Web・エディタ・CLI を徹底比較。プレミアムリクエスト 118/300(活用率 39%)の実測データから、各インターフェースの最適な使い分け戦略と生産性 2 倍化のロードマップを解説します。
PerlとTDDで学ぶ、JSON‑RPCエラー設計と境界値テスト。JsonRpcError値オブジェクトの実装手順、Fail Fastと防御的プログラミングによる本番向け設計を解説。