Forum: Italian Ruby user group approggio pragmatico agli helpers in rails ?

Posted by Sante Rotondi (Guest)
on 2012-11-22 12:04
(Received via mailing list)
Ciao a tutti,

come gestite gli helpers?
Il default di rails  includere tutti gli helper dovunque, il che 
potrebbe
portare a clash di nomi.

Questo si pu disattivare globalmente, su versioni recenti di rails,
inserendo in application.rb
  #do NOT include all the helpers
  config.action_controller.include_all_helpers = false
  (thx weppos)

Naturalmente questo pu rompere cose, qualora si siano usati metodi di
helper relativi ad altri controller in alcune delle proprie view.

la soluzione  includere i moduli degli helper per ogni controller che ne
fa uso, ma magari voi avete un approccio pi pratico / consolidato.

:)
Posted by Maurizio De magnis (olistik)
on 2012-11-22 12:41
(Received via mailing list)
evito gli helper e uso Cell ;-)


2012/11/22 Sante Rotondi <saten.r@gmail.com>
Posted by Fabrizio Regini (freegenie)
on 2012-11-22 12:53
(Received via mailing list)
Non mi  mai capitato di avere dei clash di nomi negli helper.
Devo dire che ultimamente li uso poco. Ora vanno di moda i presenters, 
dove hai la logica di visualizzazione racchiusa in una classe, quindi il 
problema del clashing non si pone.

Gli helpers come molte altre cose in Rails sono pratici e comodi da 
usare, e come tutte le comodit ti fanno impigrire. In questo caso il 
rischio  di dimenticare le buone pratiche della programmazione a 
oggetti.
Li uso ancora, ma evito attentamente quelle cose tristi tipo includere 
un helper in un controller. E quando le cose si fanno complicate 
estraggo una classe.

E comunque per evitare il name clashing puoi farti dei namespace negli 
helper.

-f
Posted by Matteo Vaccari (Guest)
on 2012-11-22 12:57
(Received via mailing list)
Funziona Cell con Rails 3?

2012/11/22 maurizio de magnis <maurizio.demagnis@gmail.com>
Posted by Sante Rotondi (Guest)
on 2012-11-22 12:59
(Received via mailing list)
2012/11/22 Fabrizio Regini <freegenie@gmail.com>

> Non mi  mai capitato di avere dei clash di nomi negli helper.
> Devo dire che ultimamente li uso poco. Ora vanno di moda i presenters,
> dove hai la logica di visualizzazione racchiusa in una classe, quindi il
> problema del clashing non si pone.
>

Diciamo che io preferirei aderire alla convenzione di rails riguardo gli
helpers, pi per consistenza che per pigrizia.
Il clashing nei nomi deriva dall'uso di engine che forniscono helper con
nomi un po' disinvolti. Hanno un namespace, ma venendo inclusi 
direttamente
(conf di default)  come se non lo avessero all'atto pratico.

Comunque, secondo me, questo  un ottimo topic per il ruby day :D
Posted by Andrea Pavoni (apeacox)
on 2012-11-22 13:12
(Received via mailing list)
diciamo che i presenters,  pi che una *moda*, sono una buona soluzione 
per risolvere alcuni problemi, soprattutto con i fat models :P

ultimamente ho avuto una bella discussione filosofica su questo 
argomento. avevamo una serie di controllers che dovevano restituire 
strutture di dati aggregati e presentarle in html e json.

per evitare i fat models, e riutilizzare pi codice possibile, ci siamo 
accordati per una strategia abbastanza semplice:

* i view helpers li usiamo prettamente per le views in html, senza 
escludere di inserire anche il markup per snellire le viste (aka 
dumb-views)
* i presenters li utilizziamo per strutturare i dati aggregati, in 
questo modo possiamo usarli anche per gli altri formati (es: json)

se un domani si decidesse di eliminare del tutto la parte delle views in 
html (magari costruendo una single-page-app), baster eliminare i view 
helpers senza troppe preoccupazioni :-)

per il name clashing, basta fare attenzione ai nomi usati per i metodi, 
come del resto accade per altre porzioni dell'app :P

ciao,
A.

Il giorno 22/nov/2012, alle ore 12:52, Fabrizio Regini 
<freegenie@gmail.com> ha scritto:

> Non mi  mai capitato di avere dei clash di nomi negli helper.
> Devo dire che ultimamente li uso poco. Ora vanno di moda i presenters, dove hai 
la logica di visualizzazione racchiusa in una classe, quindi il problema del 
clashing non si pone.
>
> Gli helpers come molte altre cose in Rails sono pratici e comodi da usare, e 
come tutte le comodit ti fanno impigrire. In questo caso il rischio  di 
dimenticare le buone pratiche della programmazione a oggetti.
> Li uso ancora, ma evito attentamente quelle cose tristi tipo includere un helper 
in un controller. E quando le cose si fanno complicate estraggo una classe.
>
> E comunque per evitare il name clashing puoi farti dei namespace negli helper.

--
http://andreapavoni.com
Posted by Maurizio De magnis (olistik)
on 2012-11-22 14:31
(Received via mailing list)
2012/11/22 Matteo Vaccari <vaccari@pobox.com>

> Funziona Cell con Rails 3?
>

yep
Posted by Fabrizio Regini (freegenie)
on 2012-11-22 14:39
(Received via mailing list)
Posted by Maurizio De magnis (olistik)
on 2012-11-22 14:52
(Received via mailing list)
On 22 November 2012 14:38, Fabrizio Regini <freegenie@gmail.com> wrote:

> parliamo di questo? https://github.com/apotonick/cells
>

lui :-)
Posted by Sante Rotondi (Guest)
on 2012-11-22 16:52
(Received via mailing list)
qualche risorsa sui presenters? :) :) :)


On Thu, Nov 22, 2012 at 2:51 PM, maurizio de magnis <
Posted by Maurizio De magnis (olistik)
on 2012-11-22 16:57
(Received via mailing list)
Posted by Sante Rotondi (Guest)
on 2012-12-10 15:36
(Received via mailing list)
Rispolvero questo thread un po' datato :)
Ho dato un'occhiata ai vari suggerimenti, e trovo i cells interessanti.
Non ho però dati in merito alla velocità di questa soluzione, qualcuno 
che
li usa estensivamente mi sa dare qualche puntatore?

Grazie! :)


2012/11/22 maurizio de magnis <maurizio.demagnis@gmail.com>
Posted by Davide Rambaldi (Guest)
on 2012-12-10 15:45
(Received via mailing list)
>
> Non ho per dati in merito alla velocit di questa soluzione, qualcuno che
> li usa estensivamente mi sa dare qualche puntatore?

Certo!

int *pointer;
int x=1;
pointer= &x;

il puntatore e' servito!

(scusate non ho resistito)

Davide
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.