Perl Advent Calendar 2018 13 日目の記事です。 チームで開発を行うとき、機能単位で担当者を割り振り、実装することが多いかと思います。 しかし、実際には一人で実装するにはボリュームが大きく、機能も分割しにくいケースがよくあります。 このような時には、ビジネスロジックをプラガブルに設計しておくことで、開発のスケールアウトをしやすくなります。 プラグインの実装 複数の処理を繋ぎ合わせ、次処理に回すような流れを想定した場合、菱形多重継承のような実装モデルが想像されます。 各クラスで実装した処理をメソッド順序解決を行いながら順次実行されるわけです。 多重継承 Class A → B → C → Dの順に init が実行される このようなプラガブルな構造を実装する方法としては、古くはClass::C3のようなモジュールがありました。 しかし、次処理にまわしたい要件を実現す