Il giorno 01/feb/2013, alle ore 11:30, Sante R. [email protected]
ha scritto:
2013/2/1 Andrea P. [email protected]
personalmente non sono un amante delle gemme che vanno a coprire
contemporaneamente pi di un livello nello stack MVC (vedi Devise,
ActiveAdmin e anche Wicked :P)
Non mi trovi d’accordo sulla tua prima affermazione, in quanto io sono fan
di tutto quello che mi permette di guadagnare tempo, dove possibile, e di
mantenere codice omogeneo in progetti diversi. Ci sono cose su cui bello
sperimentare, altre in cui imho vale il principio DRY anche cross progetto.
sono completamente daccordo con te, in linea di principio :-]
proprio in relazione al risparmio di tempo, facilmente dimostrabile che
molte gemme che coprono troppi aspetti, vanno bene finch le usi “as is”,
cio con il caso d’uso per il quale sono state previste.
Devise e ActiveAdmin sono un caso lampante: finch ti servono “2 cazzate
standard” sono ottime e in pochi minuti hai la funzionalit pronta. devi
solo pregare di non aver bisogno di qualche comportamento non previsto
(una validazione, un redirect, un markup html differente…), altrimenti
perderai ore. nel caso specifico di ActiveAdmin e Devise, sono gemme
confusionarie e mal documentate. il tipico workflow : follow docs →
watch it fail → write a working solution.
per rimanere DRY e non perdere tempo, solitamente ho un paio di
approcci:
-
cerco una gemma meno invasiva. per esempio Sorcery un ottimo sistema
di autenticazione, facilmente customizzabile, e con un po’ di snippets
di codice gi scritto e testato senza perdere tempo
-
scrivo qualcosa che posso riutilizzare (e magari la pacchettizzo in
una gemma)
sono fedele alla filosofia UNIX: fai una sola cosa bene e che si possa
integrare con altri componenti. IMHO non ha senso fare un po’ di tutto
benino (un po’ come la differenza tra un webmaster vecchia scuola ed un
team composto da designer, programmatore, sysop, etc)
Ci sta che si dia qualche helper di navigazione alle view, per skippare
passaggi o costruire facilmente un breadcrumb con gli step ecc, non lo
trovo affatto in contrasto con MVC.
esatto offrire qualche helper/macro/metodo, etc per parti specifiche
perfetto. ma costruire un sistema trasversale (che coinvolge pi parti
MVC perch altrimenti non funzia), IMHO terribile
A.
–