2010-01-21 8 views
18

Non ho fatto il Perl per circa 8 anni e ora sto entrando in un progetto che utilizza fortemente il Perl orientato agli oggetti, quindi ho bisogno di ricondizionare le mie abilità Perl e farlo velocemente. Negli ultimi anni ho fatto principalmente lo sviluppo Java e alcuni PHP. Sono molto bravo con OO e non sono un programmatore alle prime armi di qualsiasi estensione remota.Come posso essere aggiornato sulle ultime funzionalità orientate agli oggetti di Perl?

Così qui viene la domanda: quali sono i migliori risorse/siti/pratiche/modi/libri voi ragazzi posso consigliare di prendere le mie abilità arrugginite Perl e imparare il Perl "il nuovo modo"? I tuoi suggerimenti saranno molto apprezzati.

P.S. Ho fatto delle ricerche su alcune risposte precedenti. Voglio sottolineare che non sto cercando libri/risorse per principianti (sintassi, principi di base, ecc.) Ma in particolare quelli che coprono le capacità di OOP che non c'erano quando stavo programmando in Perl (o potrei ignorarlo in quel momento)

PPS Grazie a tutti per i loro suggerimenti e suggerimenti. Dopo alcune considerazioni sono andato con la risposta @MBO poiché menziona per la prima volta Moose che mi piace molto finora.

+0

risposta Correlati: http: // StackOverflow. it/questions/984868/is-my-book-too-old-to-learn-from-perl/984909 # 984909 – mercator

+0

In realtà si riferisce al libro a cui ho molto poco interesse. Non ho bisogno di sintassi generale, I bisogno di OOP parte di th e lingua – Bostone

risposta

21

Non scrivo codice Perl in questo momento (attualmente lavoro in altre lingue), ma leggo di volta in volta questo sito: http://www.modernperlbooks.com/mt/. Controlla anche Moose per il nuovo modo di definire gli oggetti in Perl

+3

Moose è il principale framework OO in Perl – kixx

+1

In secondo luogo sia il blog Modern Perl che Moose; controlla Catalyzed per una rapida introduzione di Moose: http://www.catalyzed.org/2009/06/a-gentle-introduction-to-moose.html –

+0

perché downvote? Dovrei copiare la risposta dal link pubblicato nel commento da [mercatore] (http://stackoverflow.com/users/23263/mercator)? Oppure ho risposto male alla domanda? – MBO

21

Il libro "Higher order Perl" potrebbe interessarti. Meglio di tutti: è gratuito.

+0

Molto interessante, ottimo suggerimento, grazie ed è gratuito (ancora meglio) – Bostone

+0

Otteniamo questo per ogni nuovo gli sviluppatori al lavoro se non lo conoscono già. – fennec

+0

+1 Nice link .. – mob

8

Partenza:

  • Perl Best Practices - bella collezione di best practice suggerite. Anche se non li adotti, la discussione sul ragionamento dietro i suggerimenti è preziosa.

  • Perl Testing: A Developer's Notebook - Fornisce un'eccellente copertura delle capacità di test di Perl.

  • Object Oriented Perl - Un eccellente libro su come utilizzare e abusare del sistema di oggetti di Perl. Questo libro è un po 'datato. Precede gli oggetti dentro e fuori (il cui tempo è arrivato e finito) e Moose, entrambi importanti sviluppi in OOP. Se hai un grande corpo di OO Perl più vecchio da mantenere, questo libro potrebbe rivelarsi utile.

  • PerlMonks - Un sito focalizzato sul Perl molto pratico con un tono molto generoso e collegiale. Un buon posto dove chiedere aiuto e feedback. È in funzione da anni, quindi c'è anche un enorme archivio di post.

+1

Test (con Test :: Altro, Test :: Eccezione, Test :: NoWarnings, ecc.) È piuttosto importante, e Perl (bene, CPAN) lo rende facile. Naturalmente potresti avere molta familiarità con tutto questo a seconda di cosa stavi facendo/dove stavi lavorando 8 anni fa ... potresti anche essere interessato a Log4perl - specialmente se hai usato Log4j in Java - che è probabilmente il più facile da aggiungere la registrazione – plusplus

+0

Buona lista - passando attraverso - grazie! – Bostone

21

Beh, prima di tutto Higher-Order Perl è veramente buono, ma è la programmazione su funzionale, non oggetti.

Perl Best Practices è un libro eccellente, ma ha i suoi limiti, e uno di loro è che Conway consiglia di utilizzare il proprio modulo Class::Std fare dentro-fuori gli oggetti, e il consenso generale sembra essere (1) che se sei andando a fare gli oggetti dentro-fuori, Object::InsideOut e Class::InsideOut sono modi migliori per farlo (2) e comunque, usare gli oggetti "Moose" è un modo migliore per andare.

Questo dimostra quello che probabilmente è la principale differenza tra il mondo Java e Perl: raramente c'è un modo standard di fare qualsiasi cosa con Perl. Iniziando come qualcuno che si sente a proprio agio con gli oggetti in un'altra lingua, direi che la cosa più interessante di Conway ora è un po 'datata Object Oriented Perl e lo osservo gradualmente a sviluppare diversi modi di aggiungere le funzionalità di OOP che hai dato per scontato.

Mi piace lo stile blessed-hash di base di Perl OOP, ma è necessario capire che l'incapsulamento è davvero debole e che mentre l'ereditarietà del metodo funziona, in genere non esiste un'eredità di dati. Ci sono anche alcuni trucchi piuttosto perlici di ampio uso, come la generazione automatica di accessor usando una routine AUTOLOAD.

Per quanto riguarda ciò che è possibile leggere sull'argomento, non trascurare la documentazione in linea fornita con Perl: perldoc. Nota la sezione "Tutorials" in alto. Se sei arrugginito sui riferimenti e sulle strutture dati di Perl, leggi i primi due: perldoc perlreftut e perldoc perldsc. Un po 'in basso nell'elenco, vedrai più tutorial OOP. Si tratta in gran parte di semplici oggetti basati su href, anche se ci sono alcune serie strane, come lo schema di Tom Christiansen per gli oggetti basati sulla chiusura nella parte inferiore di: perldoc perltoot

Se siete interessati ad alcuni dei più recenti i modi in cui le persone fanno le cose, si potrebbe voler iniziare con Moose che dovrebbe essere il più vicino possibile ottenere oggetti perl6 mentre si scrive ancora codice perl5. A proposito: ignorare la parola "postmoderno" lì, è uno scherzo sciocco che non ha alcun senso.

Se sei interessato a oggetti interni (che hanno l'incapsulamento antiproiettile, ma sono forse un po 'fastidiosi per il debug-- non puoi semplicemente usare Data::Dumper sull'oggetto per ottenere il suo stato), io suggerire di iniziare con questo perl5 wiki page.

+1

Fantastico! Grazie per aver dedicato del tempo e per aver scritto questa impressionante recensione! – Bostone

+1

Class :: Std fa schifo, tutto ciò che fa è causare dolore. Questo suggerimento è probabilmente l'idea peggiore in PBP. Mi chiedo se "Std" sia un acronimo qui (http://www.cdc.gov/STD/). Vi è molta discussione sui suggerimenti PBP da trovare su Perlmonks e altrove. – daotoad

+0

Penso che tu intenda "hash-based" invece di "href-based" –

3

Se è possibile utilizzare Moose, questo è il modo migliore per andare (IMHO).

C'è un libro a disposizione: Moose. A postmodern object system for Perl 5

Moose Book

Il libro è la versione stampata del eccellente linea Moose::Manual

/I3az/

+0

grazie, Moose sembra essere una cosa calda, maledettamente il libro non è gratis :) – Bostone

+0

@ DroidIn.net: Sì, è dannatamente caldo! Scopri la domanda/risposte Moose qui su SO. BTW ... c'è un PDF gratuito: http://blog.urth.org/2009/02/moose-book-well-sort-of.html (vedi link "PDF output ...") e guarda il Github link nei commenti per crearne uno tuo. – draegtun

Problemi correlati