私は Perl の第一人者ではありませんが、Perl を使用しており、「古き良き」方法でオブジェクト指向プログラムを作成できます。
今、ムースを学びたいと思っています。私はすでに基本的なドキュメントを読んでおり、最初の Moose と役割はすでに機能していますが、Moose が実際にどのように機能するかを理解するにはほど遠い状態です。
質問 1: Moose が「非常に優れた」プログラムを作成するためにどのように機能するかを理解することは絶対に必要ですか?
正直なところ、私は古いオブジェクトシステムをよく理解していません。私が読んだことを漠然と覚えているのは、それが実際にはデータ構造への参照であるということですが、それ以上詳しく調べたことはありません。などをいつどのように使用する必要があるかを知るだけで十分でbless
、autoload
物事は簡単に機能しました。私の古いモジュールのいくつかは、より効果的に書くことができるかもしれません。しかし、私にとっては、それらは機能し、うまく機能します。
これはMooseに似ていますか?それとも、Moose で「十分な」プログラムを書いている人は、Moose が「内部」でどのように動作するかを理解する必要がありますか?
この疑問は、次の理由から生じます。
METACPAN には、Moose オブジェクトをさらに簡単かつシンプルに記述するのに役立つ多数のモジュールがあります。
ランダムな例:
- https://metacpan.org/module/MooseX::StrictConstructor (分かりやすい)
- https://metacpan.org/module/MooseX::HasDefaults (わかりました、簡単です)
- https://metacpan.org/module/Method::Signatures::Simple (バンプ! 署名が何であるかわかりません。このモジュールは「簡単な」モジュールです。)
- https://metacpan.org/module/MooseX::AlwaysCoerce /hmm.... :(/
- https://metacpan.org/module/MooseX::LazyRequire /hmm... :(/
- https://metacpan.org/module/MooseX::AbstractMethod
- https://metacpan.org/module/MooseX::AttributeShortcuts (一般的な属性オプションの省略形 - おそらくヘルパーですが、学ぶことは本当に役に立ちますか?)
その他多数 (ここで別の 10 ~ 20 個のモジュールを引用したくありません)
そして今、主な質問:
次の手順、例、および推奨事項 (グッド プラクティス) が記載された優れた本はありますか。
- 上記のモジュールのうち、最初から日常的に使用することをお勧めするものは何ですか?
上記のモジュールは、作成者が何をすべきかを持っていないという理由だけで開発されたものではありません。確かにそれらは便利で役に立ちます。しかし、何十もの異なるモジュール (特に Moose 内部で遊んでいる人) を学習する (読む: 理解しようとする) ことは、非常に長いプロセスです。一方、それらを使用しないと、私のプログラムは不必要に複雑になり、解決済みのものを処理することになります。
Moose は革新的なシステムであるべきです (そしておそらくそうです)。私だけが迷子になり始めています。
編集:トナカイを見つけました。おそらく、このモジュールは質問に対する部分的な答えです: 最初から (またはほとんどの場合) 使用するのに役立つモジュールはどれですか?
PS:この質問がSOに問題ないかどうかはわかりません。そうでない場合は、どこかに移動するか、閉じてください。ここで質問したのは、SO-perl コミュニティが非常に役立つ場所であり、Moose を学習し続ける方法がわからないからです。