Perl初心者がパールインフラストラクチャについて知っておくべきこと

IT業界では人材不足が大きく、パールバレルが非常に少ない(そして、すでに存在し、既にテヘディールになりたいと思っており、多くのお金を稼ぐ)ため、多くのオフィスは有能な若者をパールオオムギに変えて喜んでいます。

私が今働いている会社もこれについて考え、パール大麦を調理する初心者シェフのために特定のチートシートを作成するという私の考えを思い出しました。



私はすぐに真珠の死についての話を脇に置きたいと思います、技術が流行しなくなって死んだように見える場合、それは技術が成熟していることを意味し、その範囲は明確であり、あなたは行って仕事をする必要があります舌。

Perl 6は別の言語であると考えています。Perl6は長くて痛みを伴う誕生でも、真珠の生命と発達を妨げません。



もちろん、テクノロジーが消滅することもありますが真珠のリポジトリでのコミットの履歴の日付追加モジュールのfill / updateリボンの日付を見ると、真珠が活気づいているとは言えません-人生は最高潮に達しています。 どういうわけか私はCPAN上のモジュールを特別に監視しました-毎日何十ものモジュールが更新されています。



また、すべてのフリーソフトウェア、およびpearlも例外ではなく、Unixのようなオペレーティングシステムで実行されます。これはすべてWindowsで実行できますが、必ずしも必要ではありません。開発者(GNU / Linux、FreeBSD)にすぐに通常のオペレーティングシステムを習得することをお勧めします



いつものように、すべてがベビーベッドスタイルになり、リンクは主に公式のドックになります。クイックスタートのためのあらゆる種類のドックはネット上でいっぱいです:



-ニュートンは、ガリレオなどを意味する巨人の肩の上に立っていたので、さらに見たと言いました。 そのため、Newtonは開発者に、すでに書かれたものを書かないように示唆しました。 そして、真珠のためにすでに書かれているものは通常CPANにあり、ディストリビューションのリポジトリからインストールできます(ただし、通常はすべてがそこにあるわけではありません)。ネイティブcpan



ユーティリティとそのバリエーションcpanp



cpanm



(+便利なツールcpan-outdated



cpanm



)。 もちろん、現在の実装が何かに満足していない場合、またはそれがどのように機能するかをよく理解したい場合にのみ、独自に作成できます。

-そして、デバッガの必要性に関するコンセンサスはありませんが、真珠にはデバッガがあり、少なくとも最小限の制御を行うことをお勧めしperl -d _



perl -d _





-BenchmarkまたはDumbbenchモジュールを使用してコードのパフォーマンスを測定できます。著者によれば、より信頼性の高い結果が得られます。

-Devel :: NYTProfプロファイラーを使用してボトルネックを見つけることができます。このトピックに関するプレゼンテーションがあります(メモリリークを検索するためのモジュールもありますが、Devel :: Leakのように、現在どれかはわかりません)

-単体テストには、 Test :: MockObject型のTest :: Moreおよびモックモジュールがあります。 まあモック テスト非機能テスト についての記事がいくつかあります

-最小限の真珠スクリプト/モジュールタイトル

 use strict; use warnings; use utf8; use open (:utf8 :std); use v5.16; #    : perl -v
      
      



必要なものすべてを1行で接続するためのモジュール( Modern :: Perluni :: perlcommon :: sense )がありますが、異なるモジュールのセットを接続します-たとえば、未定義の警告を無効にしても機能しませんが、独自のモジュールを作成しても問題はありません。

-パールがutf-8でどのように機能するかを理解する必要があります(より正確には、少なくともそれほど単純ではないことを知っている)- ドック記事記事の最後に別の記事へのリンク)

- グッドプラクティスを知って使用し、理由と理由を理解することによってのみ違反する価値がありますperlcritic



ユーティリティは、「聖書」から離れた場所を教えてくれます(信者を怒らせていないことを望みます)

-コーディングスタイルは別のトピックであるため、 このドキュメントを基礎とする必要があります。 perltidy



ユーティリティは、構成で説明されているものにコーディングスタイルをもたらすことができます。 perltidy



、誰かの曲がった形式のコードをすばやくコーミングできます。

-真珠にはかなり便利なドキュメントがあり、ネットワークに接続せずに使用できます。

 perldoc -f _ perldoc perlre perldoc perlvar  ..
      
      





同じことがネットワーク上で美しい形であることは明らかです: perldocはチートシート拡張チートシートリンクによる拍車などのあらゆる種類の機能を覚えておくと、特にモスクワ大麦の分布があるコミュニティを助けるかもしれません

-モジュールの作成についてはドキュメントに記載されていますが 、Mooseなどの重いモジュールを使用しない場合、OOPスタイルで作成されることが多いと思いますが、 ここここを読んでください。有能なOOPはフィールドとクラス:: XSAccessorを使用しています

-国際化、 search.cpan.org / perldoc?Locale :: Maketext :: TPJ13を読む価値があります

-ドキュメント-POD

-モジュールをCPANのモジュールとして配置することは合理的です(そこにアップロードする可能性があります)。この手順を簡素化するために、 ExtUtils :: MakeMakeおよびModule :: Starter (まだDist :: Zillaがありますが、インストーラーはありません) )

-例外処理はeval(2つの形式があり、1つは文字列引数を持つものが正確にevalで、2つ目はコード引数を持つものがより試行的です)、良いTry :: Tinyオプションがあります。

-Carpモジュールは、warnとdieの類似物を提供し、非常に有益な出力を提供します。

-単一行を使用すると、たとえば、システムperl -E 'use SOAP::Lite'



モジュールがあるかどうかを確認するなど、小さなことをすばやく行うことができます。

-モジュールによって複雑な構造をログ/画面に出力できますData :: DumperData :: Dump a little prettier + there is DDPJSON :: XS isはるかはるかに適切であり、 マーシャリングに適していますが、デバッグ出力にも使用できます

-YAML設定に適した形式、 YAML :: XSモジュール。

-スクリプト/モジュールがどのモジュールに依存しているかを理解する必要がある場合が時々あります。Module:: ScanDepsのようなモジュールが便利です。

-現時点で最も関連性の高いMojolicious Webフレームワーク、まだDancerがあり、 Catalystは生きているようです。

-イベントループと並列プログラミング-vividsnowからのコメント参照

-関数パラメーターは既成のモジュール、たとえばParams :: Validateで検証できますが、複雑な構造を検証する方法はわかりませんが、 Data :: Validate :: Structを使用できます。

-Log :: Log4perlLog :: Dispatch 、および異なるLog :: Any Loggerのユニバーサルラッパーなど、ロギング用の既製のモジュールがあります。

-コマンドラインパラメータの解析には、 Getopt :: Longモジュールがあります。

-DBIx :: Classタイプの DBIおよびORMデータベースで動作します。

-FindBinおよびlib :: absスクリプトからスクリプトへの絶対パスを検索します。

- テンプレートテキスト:: Xslateテンプレートエンジン。Mojoliciousを使用する場合は、Mojo ::テンプレートを使用する価値があります(ただし、個別に使用できます)。

-多くの一般的に使用される関数は標準モジュールにあります。たとえば、リストを操作するために、List :: UtilおよびList :: MoreUtilsがあります。

-IDE? vim、emacs、またはその他の高度なコンソールエディタを設定します。モンスターは必要ありません。

-ベースブックは、Larry Wall、Tom Christiansen、Jon Orwantによる「Programming Perl」です。彼女は、「Advanced Perl Programming」Sriram Srinivasanをさらに理解したい場合、ラクダの本です。



フレンドリ名、適切なサイズの関数などについて 言う必要もありますが、真珠と結びついておらず、何度も言われているので、ここではそうではありません。



もちろん、いつものように、私は集合的な精神の助けを期待しています-私は大きなものに他に何が必要かを思い出すのにうんざりしていますが、ささいなことには当たりたくありません。



UDP:人々に感謝: UncleAndy 、Andrey Kovbovich、 Pilat 、Akzhan Abdulin、

afiskonからの有用なコメント

biophreakからのコメントもっと見る

テンプレートエンジンPSGIテストについての詳細::ロシア語ソース保護ドキュメントドックの開始



All Articles