Perlで適切に構造化されたプログラムを書く方法を学ぶにはどうすればよいですか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/410359

  •  03-07-2019
  •  | 
  •  

質問

Perlの学習を始めましたが、以前のプログラミング経験のほとんどは、C#やJavaなどのオブジェクト指向プログラミングを重視する言語での経験です。私が見つけたPerlの例はすべて、長い単一関数プログラムである傾向があり、自分のコードを書くのと同じように感じます。保守可能な適切に構造化されたプログラムを作成するためのリソースやチュートリアルはありますか?

役に立ちましたか?

解決

まず、どのようなPerlプログラミングを行っているかに関係なく、おそらくを見つけるでしょう。 Perl :: Critic は非常に貴重です。コマンドラインツールは、コードに関するフィードバックを得るのに最も便利ですが、ウェブインターフェースもあります。 Perlコードをアップロードして、即座に自動化されたフィードバックを受け取ることができます。 Perl :: Criticは良い構造を教えてくれませんが、一般的にスタイルを改善し、いくつかのよくある間違いからあなたを導きます。

Perl :: Criticを使用するには、 Perlベストプラクティスのコピーを取得することをお勧めします(PBP)。 Perl :: Criticの基礎となった多くの詳細な情報が含まれています。本の特定のガイドラインに同意しない場合でも、コーディング方法について考えることができます。これは非常に貴重です。本のためにお金を払う必要はありませんが、2つは非常にうまく補完し合っており、PBPにはPerl :: Criticからは得られない長い議論があります。

既に他のオブジェクト指向言語とオブジェクト指向設計を使用している場合、おそらく Moose を見つけるでしょう。快適な移行になります。 Mooseは非常に安定しており、非常によくサポートされており、巨大で活発なコミュニティがあります(特にIRC経由)。 Mooseは、私自身のものも含め、既存のオブジェクト指向Perlのアドバイスのほとんどすべてに優先します。オブジェクト指向設計は一般的な理由です。多くのプロジェクトにとって理にかなっており、Perlでそれを使用するしない理由はありません。

個人的に、テスト駆動開発モデルに移行したとき、自分のプログラム構造に大きな改善が見られました。このようなモデルでは、問題を簡単にテストできる小さなユニットに分割することが不可欠です。 Perlでのテストを初めて使用する場合は、 Test :: Tutorial から始めて、他のリソースのテストまたは書籍」をご覧ください。 Devel :: Cover または Devel :: NYTProf を使用して、テストケースがヒットしているかどうかを確認します。テストするのが難しいコードを持っていることは、しばしば貧弱な構造の兆候です。

これらすべてを述べたが、最高の教師は、経験豊富な貢献者と共に既存のPerlプロジェクトに参加することです。彼らがどのように物事を行っているかを見て、あなたが貢献するとき、彼らのアドバイスについて考えてください。 Perlコミュニティの最高で最も明るいものを吸い込んでしまったように見える、素晴らしいクールな価値を備えた実際のアプリケーションが必要な場合は、 Padre、Perlエディター

(何らかの理由で)別のプロジェクトに参加できない場合は、スタックオーバーフローや PerlMonks 。さらに良いのは、コードをオープンソースにすることができれば、それを行い、フィードバックを求めることです。すべてのプログラミング言語は、すでにそれらに精通している他の人とよりよく学ばれ、Perlはここでも例外ではありません。

PerlでGood Magicを実行できますか

ポール

他のヒント

OO Perlを学習している場合は、次の重要なことに進み、 Mooseを学習することもできます。

MooseはPerl 5用のポストモダンオブジェクトシステムであり、オブジェクト指向Perlの記述から退屈を取り除きます。 Perl 6 CLOS Lisp )、 Smalltalk 、Java、ベータ OCaml 、Rubyなど、Perl 5のルーツを忠実に保ちます。

Mooseは100%生産可能で、多くのシステムで頻繁に使用され、日々成長しています。

適切に構造化されたプログラムの作成方法を既に知っていて、適切に構造化されたPerlを作成したいが、それに対する唯一の障害が、ネットに散らばって捨てられている古くてcrい、スパゲッティコードの例が豊富な場合死ぬ...

例を無視します。または、少なくともその貧弱な構造を無視し、学習する必要のある小さな構文ビットにのみ注意を払います。

Perlには、あなたに悪いコードを書くことを促すものは何もありません。他の言語で適切なコードを作成する方法をすでに知っている場合は、Perlでまったく同じ原則と実践を適用できます。他の言語と同じように、単に規律の問題です。

すでに基礎を学んでいると感じ、プログラム構造を改善したい場合は、これらの本をお勧めします。おそらく次の順序で読むのが最善です:

  • 中間Perl -これはおそらく開始する場所ですあなたが尋ねていることに対して; Perlモジュール(適切な構造に不可欠)、参照、複雑なデータ構造、オブジェクト指向などの開発と使用について説明します

  • Perl Medic:レガシーコードの変換-構造化されていないPerlの修正方法を示すことによる構造化されたPerl

  • 効果的なPerlプログラミング:Perlによるより良いプログラムの作成-古典的ですが、まだ有用です。 Perl風のPerlを書くのに役立つPerlイディオムが満載です。オブジェクト指向ではあまりありませんが、より簡潔で表現力豊かなコードにするための、より基本的なコーディング構造をカバーしています。これは、PerlリテラシーからPerl流fluさへと導いた本だと思います

Perlの基本的な構文に慣れたら、3つすべてが最適ですが、Perlを使い始めているが他の言語で合理的なプログラミング経験がある場合には従うことができない難解な高度な概念にあまり深く入り込むことはありません既に言語。

上記の情報源とは別に、この本を強くお勧めします "高次Perl"マーク・ジェイソン・ドミナス。 買う余裕があれば、それ以外の場合、著者は無料のビール無料の高次Perl 。 PDFバージョンの場合:直接ダウンロードURL (1.9 MB)。

編集:

Perl Design Patternsについて言及するのを忘れました。 PerlDesignPatterns サイトは、Perlデザインパターンを学習するための非常に優れたリソースまたはリファレンスです。

個人的には、Javaの学習を開始するまで、適切なOO Perlを作成しませんでした。本当のオブジェクト指向言語でオブジェクト指向を学ぶのに少し時間を費やし、学んだことをPerlに適用することをお勧めします。

指導する場所については、 PerlMonks は素晴らしいです。

Cを記述するのと同じ方法でPerlを記述しますが、BEGINブロックとモジュールを利用する必要があります。古いスタイルのK& R Cコードのように見えるようにフォーマットする必要があります。

構造については、オブジェクト指向のものをスキップし、代わりにADTとしてスタイル設定します。

http://en.wikipedia.org/wiki/Abstract_data_type

基本的には、オブジェクト指向でオブジェクトを使用するデータ構造を使用してこれを行います(アルゴリズムを独自の機能に分離します)。

次に、物事を行うための方法を1つだけ選択し、それに固執します。一貫性は読みやすさに不可欠です。

これを管理すれば、コードは読みやすく、理解しやすくなります。

ポール。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top