Comment puis-je apprendre à écrire des programmes bien structurés en Perl? [fermé]

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

  •  03-07-2019
  •  | 
  •  

Question

J'ai commencé à apprendre Perl, mais la plupart de mes expériences de programmation antérieures ont été réalisées dans des langages qui mettent l'accent sur la programmation orientée objet, telle que C # et Java. Tous les exemples Perl que j'ai trouvés tendent à être de longs programmes à fonction unique et je trouve mon code d'auto-écriture de la même manière. Existe-t-il des ressources ou des tutoriels pour écrire des programmes bien structurés et maintenables?

Était-ce utile?

La solution

Premièrement, quel que soit le type de programmation Perl que vous réalisez, vous trouverez probablement Perl :: Critique sera inestimable. L’outil en ligne de commande est de loin le plus pratique pour obtenir des commentaires sur votre code, mais vous disposez également d’une interface Web . où vous pouvez télécharger votre code Perl et recevoir un retour instantané et automatisé. Notez que Perl :: Critic ne vous enseignera pas la bonne structure , mais vous aidera à améliorer votre style en général et à éviter certaines erreurs courantes.

Pour accompagner Perl :: Critic, je vous conseillerais de vous procurer une copie des meilleures pratiques Perl . (PBP). Il contient beaucoup d'informations détaillées sur lesquelles Perl :: Critic était basé. Même si vous êtes en désaccord avec certaines directives du livre, cela vous fait penser à la façon dont vous codez, et c'est très précieux. Vous n’avez pas besoin de débourser de l’argent pour un livre, mais les deux se complimentent très bien et vous constaterez de longues discussions dans PBP que Perl :: Critic ne vous donnera pas.

Si vous avez déjà travaillé avec d'autres langues et conceptions OO, vous trouverez probablement Moose . être une transition confortable. Moose est très stable, très bien soutenu et a une communauté immense et active (notamment via IRC). Moose remplace presque tous les conseils OO Perl existants, y compris les miens. La conception orientée objet est commune pour une raison; cela a du sens pour beaucoup de projets, et il n’ya aucune raison que pas l’utiliser en Perl.

Personnellement, ma structure de programme a été considérablement améliorée lorsque je suis passée à un modèle de développement fondé sur des tests. Dans un tel modèle, il est essentiel de décomposer un problème en petites unités faciles à tester. Commencez par Tester :: Tutoriel si vous débutez vos tests en Perl, puis recherchez sur d'autres ressources de test ou livres si vous souhaitez en savoir plus. Utilisez un outil tel que Devel :: Cover ou Devel :: NYTProf pour voir ce que vos cas de test rencontrent et ce qu'ils ne sont pas. Avoir un code difficile à tester est souvent le signe d’une structure médiocre.

Cela dit, le meilleur enseignant est de loin de s’impliquer dans un projet Perl existant avec des contributeurs expérimentés. Voyez comment ils font les choses et, lorsque vous faites des contributions, réfléchissez à leurs conseils. Si vous voulez une vraie application avec une valeur cool incroyable qui semble avoir aspiré la meilleure et la plus brillante des communautés Perl, alors je vous recommanderais de vous impliquer dans Padre, l'éditeur Perl .

Si (pour une raison quelconque) vous ne pouvez pas vous impliquer dans un autre projet, envisagez d'envoyer des exemples de code dans des communautés telles que Stack Overflow ou PerlMonks . Mieux encore, si vous pouvez rendre votre code open source, faites-le, et sollicitez des commentaires. Tous les langages de programmation sont mieux apprises par d’autres qui les connaissent déjà, et Perl ne fait pas exception à la règle.

Pouvez-vous faire de la bonne magie avec Perl,

Paul

Autres conseils

Si vous apprenez à utiliser OO Perl, vous pouvez aussi passer à autre chose et commencer à apprendre Moose .

Moose est un système d’objets post-moderne pour Perl 5 qui simplifie l’écriture de Perl orienté objet. Il emprunte toutes les meilleures fonctionnalités de Perl 6, CLOS ( Lisp ), Smalltalk , Java, BETA , OCaml , Ruby et plus encore, tout en restant fidèle à ses racines Perl 5.

Moose est prêt à la production à 100% et est fortement utilisé dans un certain nombre de systèmes et se développe chaque jour.

Si vous savez déjà écrire des programmes bien structurés et que vous voulez écrire du Perl bien structuré, le seul obstacle à cela est l'abondance d'exemples anciens, cruels, de code spaghetti, dispersés sur le réseau et refusés. mourir ...

Ignorez les exemples. Ou du moins, ignorez leur structure médiocre et faites seulement attention aux petits bouts syntaxiques dont vous avez besoin d’apprendre.

Rien dans Perl ne vous pousse à écrire du code incorrect. Si vous savez déjà écrire un bon code dans d'autres langues, vous pouvez appliquer exactement les mêmes principes et pratiques en Perl. C'est simplement une question de discipline, comme dans toute autre langue.

Si vous sentez que vous apprenez déjà les bases et que vous souhaitez améliorer la structure du programme, alors je vous suggère ces livres, qu'il est probablement préférable de lire dans cet ordre:

  • Perl intermédiaire - c'est probablement l'endroit pour commencer pour ce que vous demandez couvre le développement et l’utilisation de modules Perl (essentiels pour une bonne structure), de références, de structures de données complexes, d’OO, etc.

  • Medic Perl: transformer le code hérité - démontre bien- Perl structuré en montrant comment corriger Perl mal structuré

  • Programmation Perl efficace: écrire de meilleurs programmes avec Perl - un classique, mais toujours utile; plein d'idiomes de Perl qui vous aideront à écrire plus de Perl-ish Perl; Pas grand chose sur OO, mais couvre des structures de codage plus fondamentales pour rendre votre code plus succinct et pourtant plus expressif. Je pense à cela comme au livre qui m’a conduit de l’alphabétisation Perl à la maîtrise de Perl

Tous les trois sont préférables une fois que vous maîtrisez la syntaxe de base de Perl, mais aucun d'entre eux ne va trop loin dans les concepts avancés ésotériques que vous ne pouvez pas suivre si vous débutez toujours dans Perl, mais que vous possédez une expérience de programmation raisonnable. langues déjà.

Outre les sources mentionnées ci-dessus, je recommande fortement le livre. "Perl-Ordre Supérieur" par Mark Jason Dominus. Si vous en avez les moyens, achetez-le, sinon l'auteur l'a mis gratuitement sur son site, comme dans la bière gratuite, Perl supérieur gratuit . Pour la version PDF: URL de téléchargement direct (1,9 Mo).

Modifier:

J'ai oublié de mentionner Perl Design Patterns. Le site PerlDesignPatterns est une très bonne ressource ou référence pour l'apprentissage des modèles de conception Perl.

Personnellement, je n’ai pas écrit bon OO Perl avant d’avoir commencé à apprendre Java. Je vous recommande de passer un peu de temps à apprendre OO dans un vrai langage OO et à appliquer ce que vous avez appris à Perl.

Pour un lieu de mentorat, PerlMonks est très bien.

Ecrivez Perl comme vous le feriez avec C, bien que vous devriez tirer parti de certains éléments des blocs et modules BEGIN. Il doit être formaté de manière à ressembler plus ou moins au code de style ancien K & R.

En ce qui concerne la structure, ignorez le contenu OO et appelez-le comme des ADT:

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

Pour ce faire, utilisez des structures de données dans lesquelles vous auriez utilisé des objets dans OO (et en séparant les algorithmes dans leurs propres fonctions).

Ensuite, choisissez une seule façon de faire les choses et respectez-la. La cohérence est essentielle à la lisibilité.

Si vous y parvenez, le code peut être à la fois lisible et facile à comprendre.

Paul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top