これはユースケースタイプの質問ですが、より広く適用できるほど一般的でもあります。
要するに、私は多かれ少なかれコマンドライン ラッパーであるモジュールに取り組んでいます。〇当然。(誰かがそれを望んでいる場合を除いて) あまり詳しく説明しなくても、システムがそれほど複雑になることはありませんが、このフレームワークに 3 つまたは 4 つのオブジェクトがあるのは自然なことだと感じました。最後に、これは私が公開するオープンソースのものであり、同じ会社の数人の開発者が取り組んでいるモジュールではありません。
まず、Class::Std を使用して OO を実装しました。これは、Perl のベスト プラクティス (Conway、2005 年) がインサイド アウト オブジェクトを使用する理由について適切な議論を行ったためです。どの属性にアクセスするか、適切なカプセル化などを完全に制御します。また、彼の設計は驚くほどシンプルで賢いものです。
私はそれが好きでしたが、誰も実際にこれを使用していないことに気付きました。実際、コンウェイ自身はもうこれを推奨していないようです?
というわけで、みんなの大好きなMooseに引っ越しました。使い方は簡単ですが、私がやりたいことに対しては機能的にやり過ぎです。大きな大きな欠点は、モジュールの依存関係が多数あるため、モジュールのユーザーがそれらをすべてダウンロードする必要があることです。マイナーな欠点は、私が実際に必要とする以上の機能を備えていることです。
推奨事項とは何ですか? おそらく時代遅れのモジュールを使用するように強制したり、モジュールのすべてのユーザーに Moose とそのすべての依存関係をダウンロードするように強制したりして、仲間の開発者に迷惑をかけますか?
適切な Perl OO フレームワークの 3 番目のオプションで、これらの 2 つのいずれでもない、人気があるものはありますか?