Organizzazione del codice, dubbi implementativi

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Buonasera a tutti,
con alcuni miei compagni stiamo implementando un’applicazione in
rubyonrails e, ci troviamo difronte a un problema di tipo organizzativo,
cerco di spiegarvi al meglio la situazione.

L’applicativo richiede login, gli utenti che entrano e usufruiscono
dell’applicativo appartengono a ruoli diversi, a volte diametralmente
opposti, vi porto un esempio:

  • infermieri
  • dottori

Questi due soggetti possiedono 2 interfacce differenti, sono stati fino
ad ora creati 2 controller apposti, chiamati home_dottore e
home_infermiere, che non possiedono pero’ model, sono semplici
controller per visualizzare la index.
Ad ogni voce del menu $x di ogni home, corrisponde una define
nell’apposito controller home_$x e una pagina $x.html.erb… qui abbiamo
dubbi implementativi: alcune funzionalita’ sono condivise ovvero,
ipotizziamo che uno dei due voglia visualizzare un paziente, ora questo
soggetto (il paziente) possiede il suo controller con i suoi metodi (per
ora quelli generati dallo scaffold, che in futuro probabilmente non
verranno utilizzati tutti), quindi prendiamo ad esempio show, ora e’
meglio andare a includere i menu, header, footer e quant’altro
all’interno della vista show del paziente oppure utilizzare ad esempio
render per portare quel codice all’interno del controller?

Nel primo caso inoltre potrebbe darsi che dovremmo mettere degli if per
caricare un menu piuttosto che un’altro in base a chi sia loggato.

Quali sono i pro e i contro delle 2 scelte?

Grazie, se qualche mio collega che sta sviluppando con me
quest’applicazione volesse ampliare la domanda, lo invito a farlo per
maggiore chiarezza…

Attendiamo commenti.
Saluti


Matteo Buferli
WEB: http://www.buferli.com
PGP FINGERPRINT: B7C9 BE0A F77F 4747 56A2 87EC F6E5 8A01 65BB 58C1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIDOED9uWKAWW7WMERAh5iAJ4nz8pXi+8mOdQvrPBlkr0zpiFBfACffLD5
mSo27yXBp6DalSs1zBhrTsI=
=ye1t
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Matteo Buferli wrote:

verranno utilizzati tutti), quindi prendiamo ad esempio show, ora e’
quest’applicazione volesse ampliare la domanda, lo invito a farlo per
maggiore chiarezza…

Attendiamo commenti.
Saluti

up


Matteo Buferli
WEB: http://www.buferli.com
PGP FINGERPRINT: B7C9 BE0A F77F 4747 56A2 87EC F6E5 8A01 65BB 58C1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIDQVV9uWKAWW7WMERAg+iAJ9a0BnTHUO/5q98gtbBfJOSSGnKAgCfearT
XTsEu5FfejEQC01AoIo69Xk=
=0thO
-----END PGP SIGNATURE-----

Si può condividere codice tra viste sia con la render sia scrivendo
degli helper e mettendoli ad esempio in application_helper.rb

Personalmente preferisco gli helper sia perché si possono modularizzare
molto più facilmente sia perché a quanto leggo le render fanno consumare
un bel po’ di memoria.

Paolo

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs