altre destinazioni

ultimi post

ultimi commenti

tag principali

archivi

powered by

  • WPFrontman + WP

friends

copyright

  • © 2004-2011
    Ludovico Magnocavallo
    tutti i diritti riservati

Voi come leggete il codice?

21 febbraio 2013

1 commento

Sto facendo un lavoro per una società abbastanza nota (vi dico solo che è un plugin per WP), e alcuni dei commenti fatti al mio codice dal mio referente mi hanno un po’ spiazzato: per capire cosa intendesse ho dovuto fare lo sforzo di uscire dalle mie consuetudini di sviluppo.

Dopo qualche meditazione, sono giunto alla conclusione che i nostri rispettivi approcci alla lettura del codice sono radicalmente diversi. Il mio approccio, quando prendo in mano una classe che non ho mai visto, è prima di tutto di farmi un’idea generale di cosa faccia guardando i nomi dei metodi nel class browser. Fatto questo, scendo se è il caso nel dettaglio dei metodi che mi interessano o mi sembrano cruciali per il suo funzionamento. Per me, quindi, un metodo usato una volta sola non solo ha poco senso — e ne privilegio quindi il riuso rispetto ad altre considerazioni –, ma è addirittura dannoso in quanto inquina la comprensione a colpo d’occhio del codice.

Il mio interlocutore invece segue un approccio diverso: quando prende in mano una classe guarda subito al costruttore, e parte da lì per seguire un eventuale flusso di codice. Per lui un metodo usato una sola volta ha un senso, in quanto incapsula determinate operazioni e — se il nome è scelto con criterio — nasconde parte del codice rendendo più semplice e veloce seguire un eventuale flusso di esecuzione.

Nel caso specifico (un plugin per WP) è probabile che il suo approccio abbia senso, dato che il codice viene eseguito più o meno in sequenza, anche se la sequenza è pilotata dai vari hook di WP, cui sono agganciati i metodi pubblici della classe. Certo è che lavorando di solito in Python/Django, un approccio di questo tipo mi sembra un po’ stravagante.

Sarei curioso di sapere come altri leggono il codice, e se la differenza è dovuta più al framework (WP) che porta a pensare in maniera sequenziale, al linguaggio usato, o se è soprattutto un approccio personale. BTW, questo post è scritto usando il plugin di cui sopra, secondo il principio dell’eat your own dogfood.

Personal information store

6 febbraio 2013

7 commenti

Da un po’ di tempo sentivo l’esigenza di avere uno spazio personale dove annotare appunti e idee sui progetti in corso (di programmazione, ma non solo), qualcosa di semplice, leggero, che non richiedesse installazioni particolari, e ovviamente sincronizzato su tutte le macchine che uso.

Il formato ideale per strumenti di questo tipo è ovviamente quello dei cari vecchi wiki, e in particolare della loro versione ultraleggera, dinamica, monopagina, che può girare senza nessun tipo di installazione: TiddlyWiki. Ci avevo giocato qualche anno fa, l’avevo trovato elegante e utile ma un po’ ruvido nell’utilizzo pratico, e soprattutto problematico da tenere sincronizzato o installare lato server, e me ne ero quindi dimenticato.

Curioso di vedere se in questi anni era evoluto e se potesse quindi servirmi come information store personale, l’ho scaricato e ci ho giocato per un po’ di tempo. Il risultato, dopo un po’ di smanettamento, è quasi perfetto per quello che mi serve:

  • in accoppiata con Dropbox i problemi di sincronizzazione sono risolti
  • la formattazione del testo tipica dei wiki, un po’ scomoda secondo me, può essere abbastanza facilmente sostituita da Markdown
  • le nuove versioni sono iper-estensibili, fantastico ad esempio l’utilizzo di schede contrassegnate di sistema con testo e codice, per implementare plugin

Se siete alla ricerca di un sistema agile e leggero per organizzare pensieri e appunti dategli un’occhiata, anzi se volete vi clono il mio con già installato Markdown e il paio di configurazioni che servono, così vi evito quel po’ di ricerche per capire come si fa (gli spazi wiki sono spesso parecchio disordinati — ironico per uno strumento che si propone di organizzare l’informazione).