qb è il codice che tiene in piedi questo wiki.
Si tratta di un’applicazioncina scritta con RubyOnRails, soprattutto per divertirsi ad imparare il framework e quindi è un po’ un pastrocchio, con codice duplicato e pessimi hack. Il nome aveva un senso ma non me lo ricordo più.
Alcune caratteristiche:
- markup textile delle pagine nel wiki
- autenticazione (banale ma facilmente migliorabile)
- supporto per UTF-8
- syntax highlight per gli spezzoni nei tag
pre - pagine modificate di recente nella home page
- feed RSS
- pubblicazione sitemap per i motori di ricerca
- XHTML e RSS validi
- highlight delle differenze tra revisioni
- rollback in due click
- semplice sistema di caching
- download del codice sorgente in una pagina
I piani sono di fornire alcune funzionalità aggiuntive come i backlink, ed operazioni di “reflection” dal wiki, come il mostrare i blog indicati nella pagine personali nella homepage.
E’ possibile ottenere il codice da subversion con il comandosvn checkout svn://svn.berlios.de/shekina/qb
Il codice fa un po schifo, quindi qualsiasi miglioria è ben accetta, in particolare potete dare un’occhiata al file TODO o scrivere dei test, ce ne sono ancora troppo pochi.
Alcune stat veloci:+----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Helpers | 72 | 59 | 0 | 10 | 0 | 3 | | Controllers | 139 | 118 | 5 | 13 | 2 | 7 | | Functional tests | 321 | 263 | 9 | 34 | 3 | 5 | | Models | 160 | 136 | 5 | 23 | 4 | 3 | | Unit tests | 254 | 218 | 6 | 25 | 4 | 6 | | Libraries | 64 | 56 | 1 | 7 | 7 | 6 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 1010 | 850 | 26 | 112 | 4 | 5 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 369 Test LOC: 481 Code to Test Ratio: 1:1.3
La code coverage dovrebbe essere di circa il 90%.
Wish List
Visto che le pagine sono un po’ incasinate, e molte sono raggiungibili solo attraverso Tutte le pagine, sarebbe cosa buona poter indicare per ogni pagina delle categorie in modo da avere anche una sorta di indice un po’ più dettagliato.