E' in fase di collaudo un nuovo componente software, da me pensato e realizzato, per formattare il codice sorgente, presente in molti miei articoli, come farebbe un IDE evoluto(Integrated Development Environment, in italiano: Ambiente di sviluppo integrato), per rendere più leggile codice sorgente già ben presentato.
Stato avanzamento dei lavori
Durante le sessioni di test, iniziate ormai da qualche giorno, mi sono reso conto di alcune differenze strutturali tra i vecchi posts, scritti con il vecchio editor di Blogger, ed i nuovi, scritti con l'ultima versione dell'editor fornito: tali differenze strutturali, purtroppo, interagiscono con l'esecuzione del nuovo componente Source Code Decorator causando solo nei vecchi post delle inattese ed inopportune sorprese!
Il componente che sto collaudando, che rientra nel vasto concetto di Parser, lavora bene anche con i vecchi posts, nel senso che il suo sporco lavoro di formattazione lo esegue correttamente, anche se però poi ripresenta tutto il codice, correttamente riformattato, scrivendolo su una unica riga, perdendo di fatto tutta l'indentazione originale del codice ed anche il senso della sua funzione, ovvero rendere più leggile codice sorgente scritto secondo le regole del buon programmatore.
Questo problema, che si manifesta con la perdita di tutta l'indentazione del codice, è dovuto fondamentalmente al fatto che il vecchio editor aggiungeva ad ogni fine riga il tag HTML <br /> anche nelle parti di codice contenute nell'elemento <PRE>.
Utilizzando invece l'ultima versione dell'editor fornito da Blogger, tutto questo non si verifica più: effettivamente il <br /> non è più presente ed è sostituito dal carattere di nuova linea rappresentato comunemente dalla scrittura \n.
Quindi, prima di poter rilasciare definitivamente il nuovo componente, dovrò normalizzare tutti i vecchi articoli postati.
Da fare prima del rilascio
Di seguito la lista delle attività necessarie da completare prima di rilasciare il componente:
- Censire gli articoli scritti con il vecchio editor di Blogger: completata il 10/07/2010;
- Normalizzare i vecchi articoli individuati dallo step precedente: completata il 12/07/2010;
- Introdurre il componente e verificare la formattazione del codice sorgente delle intere sezioni:
- Java: completata il 16/07/2010;
- Javascript: completata il 25/07/2010;
- PHP: completata il 13/07/2010;
- XML: completata il 25/07/2010;
- XPath: completata il 25/07/2010;
- XSD;
- XSLT;
- Racchiudere il codice del componente in un unico file .js;
- Procedere alla minimizzazione del codice javascript;
- Modificare il template di Blogger per compiere il rilascio definitivo del nuovo componente;
Detto questo, posso comunque rilasciare delle anticipazioni e degli screenshots sul componente, su come opera e cosa si ottiene utilizzandolo.
Source Code Decorator
Come dicevo, si tratta di un parser scritto in Javascript, il cui peso attualmente non supera i 10KB.
Ad oggi se la cava benissimo con l'analisi e la formattazione di codice Java, Javascript e PHP, mentre devo ancora finire i test per quanto riguarda il linguaggio XML e derivati.
Di seguito alcuni screenshots del risultato dell'elaborazione del codice da parte del Source Code Decorator:
Esempio di formattazione di codice sorgente Java:

Esempio di formattazione di codice sorgente PHP:

Il componente consiste fondamentalmente in una classe Javascript, che incapsula la logica del parser provvedendo all'analisi del codice sorgente ed alla sua formattazione (colori differenti per classi, funzioni, tipi primitivi, operatori, commenti, Javadocs ecc...), e da un mappa, o HashMap, che ragionando nei termini di chiave/valore è ottimizzata per il recupero del codice HTML da sostituire ad ogni ricorrenza di determinati tokens.
Da ora al momento del definitivo rilascio, il componente acquisirà un peso maggiore, sicuramente non spropositato, e questo dipenderà dal livello di formattazione e precisione che mi farà sentire soddisfatto.
E' già all'ordine del giorno, nel momento in cui il componente sarà rilasciato definitivamente, la sua minimizzazione per ridurne il peso totale; sarà distribuito ovviamente in un file .js dedicato in maniera da sfruttare i sistemi di caching dei browsers.
Perchè Javascript?
Aver scelto Javascript per eseguire questo compito garantisce che nessun utente subirà rallentamenti durante la navigazione dovuti ad un maggiore impegno di risorse del web-server, che non dovrà elaborare la formattazione, perchè sarà il client utente, utilizzando le proprie risorse, a riformattare il codice sorgente degli articoli letti.
Il tuo contributo
Se ti accorgessi di qualche problema di impaginazione su articoli datati, è probabilmente dovuto alla mancata normalizzazione dell'articolo stesso(mea culpa), ti chiedo gentilmente di comunicarmelo inviandomi una mail o, meglio ancora, postando un commento sull'articolo stesso.
Successivamente al rilascio del componente, provvederò a redarre un articolo per spiegarne nei dettagli il codice sorgente ed il suo utilizzo.
Alla prossima,
MA
0 commenti:
Posta un commento
Non ti è chiaro qualcosa?
No problem, posta il tuo dubbio ;)
..... e ricordati di firmarlo!