Domanda

Ho iniziato a studiare Perl ma la maggior parte della mia precedente esperienza di programmazione è stata in linguaggi che enfatizzano la programmazione orientata agli oggetti come C # e Java. Tutti gli esempi di Perl che ho trovato tendono ad essere lunghi programmi a funzione singola e trovo il mio codice di auto-scrittura allo stesso modo. Ci sono risorse o tutorial per scrivere programmi gestibili e ben strutturati?

È stato utile?

Soluzione

In primo luogo, indipendentemente dal tipo di programmazione Perl che stai facendo, probabilmente troverai Perl :: Critico per essere prezioso. Lo strumento da riga di comando è di gran lunga il più conveniente per ottenere feedback sul codice, ma esiste anche una interfaccia web dove puoi caricare il tuo codice Perl e ricevere un feedback automatico e istantaneo. Nota che Perl :: Critic non ti insegnerà una buona struttura , ma ti aiuterà a migliorare il tuo stile in generale e ti allontanerà da alcuni errori comuni.

Per andare con Perl :: Critico, consiglierei di ottenere una copia di Best Practices di Perl (PBP). Contiene molte informazioni dettagliate su cui si basava Perl :: Critic. Anche se non sei d'accordo con determinate linee guida nel libro, ti fa pensare su come codifichi, e questo è molto, molto prezioso. Non devi sborsare soldi per un libro, ma i due si complimentano molto bene l'un l'altro, e ci sono lunghe discussioni che troverai nel PBP che non otterrai da Perl :: Critic.

Se hai già lavorato con altre lingue OO e design OO, probabilmente troverai Moose essere una transizione confortevole. Moose è molto stabile, molto ben supportato e ha una comunità enorme e attiva (soprattutto via IRC). Moose sostituisce quasi tutti i consigli OO Perl esistenti là fuori, incluso il mio. Il design orientato agli oggetti è comune per un motivo; ha senso per molti progetti e non c'è motivo di non usarlo in Perl.

Personalmente, ho trovato un notevole miglioramento nella mia struttura di programma quando sono passato a un modello di sviluppo guidato dai test. In base a tale modello, è essenziale scomporre un problema in unità piccole e facilmente testabili. Inizia con Test :: Tutorial se sei nuovo ai test in Perl e poi guarda in altre risorse di test o libri se vuoi saperne di più. Utilizza uno strumento come Devel :: Cover o Devel :: NYTProf per vedere cosa stanno colpendo i tuoi test e cosa non lo sono. Avere codice difficile da testare è spesso un segno di scarsa struttura.

Detto questo, il miglior insegnante di gran lunga è quello di essere coinvolto in un progetto Perl esistente con collaboratori esperti. Guarda come fanno le cose e quando dai contributi, pensa ai loro consigli. Se vuoi un'applicazione reale con un fantastico valore che sembra aver risucchiato il meglio e il più brillante della comunità Perl, allora consiglierei di essere coinvolto con Padre, l'editor Perl .

Se (per qualsiasi motivo) non puoi essere coinvolto in un altro progetto, prendi in considerazione la possibilità di pubblicare esempi di codice in comunità come Stack Overflow o PerlMonks . Meglio ancora, se puoi rendere il tuo codice open source, allora fallo e sollecita il feedback. Tutti i linguaggi di programmazione vengono appresi meglio con altri che hanno già familiarità con essi e Perl non fa eccezione qui.

Che tu possa fare Good Magic con Perl,

Paul

Altri suggerimenti

Se stai imparando OO Perl potresti anche passare alla prossima grande cosa e iniziare a imparare Moose .

Moose è un sistema di oggetti postmoderno per Perl 5 che elimina il tedio dalla scrittura di Perl orientato agli oggetti. Prende in prestito tutte le migliori funzionalità da Perl 6, CLOS ( Lisp ), Smalltalk , Java, BETA , OCaml , Ruby e altri, pur rimanendo fedele alle sue radici Perl 5.

Moose è pronto per la produzione al 100% e in uso intenso in numerosi sistemi e cresce ogni giorno.

Se sai già come scrivere programmi ben strutturati e vuoi scrivere un Perl ben strutturato, ma l'unico ostacolo a ciò è l'abbondanza di antichi, crufty, esempi di spaghetti-codice che sono sparsi sulla rete e rifiutano morire ...

Ignora gli esempi. O almeno ignora la loro scarsa struttura e presta attenzione solo ai piccoli bit sintattici che devi imparare.

Non c'è nulla in Perl che ti spinga a scrivere un codice errato. Se sai già come scrivere un buon codice in altre lingue, puoi applicare gli stessi principi e le stesse pratiche in Perl. È solo una questione di disciplina, proprio come in qualsiasi altra lingua.

Se ritieni di aver già appreso le nozioni di base e desideri migliorare la struttura del programma, ti suggerirei questi libri, probabilmente meglio leggere in questo ordine:

  • Intermediate Perl - questo è probabilmente il punto di partenza per quello che stai chiedendo; copre lo sviluppo e l'utilizzo di moduli Perl (essenziali per una buona struttura), riferimenti, strutture di dati complessi, OO e altro

  • Perl Medic: Transforming Legacy Code - dimostra bene- Perl strutturato mostrando come correggere Perl mal strutturato

  • Programmazione Perl efficace: scrivere programmi migliori con Perl - un classico, ma comunque utile; pieno di modi di dire Perl che ti aiuteranno a scrivere di più Perl-ish Perl; non molto su OO, ma copre strutture di codifica più fondamentali per rendere il tuo codice più conciso e tuttavia più espressivo. Penso a questo come al libro che mi ha portato dall'alfabetizzazione del Perl alla fluidità del Perl

Tutti e tre sono i migliori quando ti senti a tuo agio con la sintassi Perl di base, ma nessuno di essi si spinge troppo in concetti esoterici avanzati che non puoi seguire se stai ancora iniziando in Perl ma hai una ragionevole esperienza di programmazione in altri lingue già.

A parte le fonti sopra menzionate, consiglio vivamente il libro " Perl di ordine superiore " di Mark Jason Dominus. Se te lo puoi permettere compralo, altrimenti l'autore ha messo il libro sul suo sito web gratuitamente come nella birra gratis, Perl ordine superiore gratuito . Per la versione PDF: URL di download diretto (1,9 MB).

Modifica:

Ho dimenticato di menzionare Perl Design Patterns. Il sito PerlDesignPatterns è un'ottima risorsa o riferimento per l'apprendimento dei modelli di progettazione Perl.

Personalmente, non ho scritto un buon OO Perl fino a quando non ho iniziato a studiare Java. Ti consiglio di dedicare un po 'di tempo all'apprendimento di OO in una vera lingua OO e applicare ciò che impari a Perl.

Per un posto da tutorare, PerlMonks è FANTASTICO.

Scrivi Perl nel modo in cui scriveresti C, anche se dovresti trarre vantaggio da alcune cose INIZIA blocchi e moduli. Dovrebbe essere formattato in modo che assomigli più o meno al vecchio codice K & amp; R C.

Per quanto riguarda la struttura, salta le cose OO e assegnale invece come ADT:

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

Fondamentalmente lo fai usando strutture di dati in cui avresti usato oggetti in OO (e separando gli algoritmi nelle loro stesse funzioni).

Quindi, scegli solo un modo per fare le cose e attenersi ad essa, la coerenza è vitale per la leggibilità.

Se lo gestisci, il codice può essere sia leggibile che di facile comprensione.

Paul.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top