Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-05-2009, 09:14   #1
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
[MVC] perche? (e soprattutto come separare i layers) - lunghetto

Ciao a tutti, premetto che ho ripreso Java dopo anni di C/C++ embedded e C# e che ci lavoravo la bellezza di 6 anni fa, quindi -chiaramente- le mie opinioni sono totalmente opinabili e sicuramente non corrispondenti alla realta', proprio da questo ho deciso di scrivere questo post.
Da poco ho inziato a lavorare con Jsf/Spring/Hibernate, su un'applicazione che ha necessita di essere distribuita su n application servers, molto grande, molto modulare (almeno nei desideri dell'analista ma va beh...).
Ora, io ho sempre lavorato limitandomi a separare gui/logica/db come insegnato da millenni ormai, realizzando query sql piu'o meno complesse, elaborando i vari risultati, validando etc, tutto questo con servlet/JSP. Niente di eccezionale insomma. Si preparava l'analisi con use cases e uml si implementava la parte di business col db, si disegnava la gui e via andare.
Attualmente vedo (per esempio) Spring e Hibernate, belli, potenti flessibili, -strani-.
Ipotizzo una cosa banale, una semplice maschera CRUD con lista, schifosamente standard, (oggi) non voglio stare 2 ore a scrivere codice ridondante o molesto, -non voglio replicare le informazioni soprattutto-, per esempio le primary keys voglio che siano read-only in modifica e editabili per un nuovo record. Ma per questo devo conoscere i metadati del db, che sono gestiti var livelli sotto da Hibernate, ma sono dati che l'application server conosce, non vorrei dover riscrivere nella logica dell'interfaccia tutto questo comportamento (imho abbastanza comune). Con Spring (prendo questo perche'e'l'unico che conoscicchio, ma non credo sia molto diverso da altri) dovrei farmi un'altro bean che gestisce questi metadati con altri pojos, con altro xml, con altra logica, etc. etc.
Altra cosa, La logica di business, ho il mio pojo, ipotizzo un pattern stile Value Object, con il mio vo che rotola tra gui e persistenza, la logica non puo'essere messa sul lato gui, non puo'essere messa sul lato hibernate. Va messa sul pojo??? Si dovranno fare delle classi che dato il Pojo vi applichino delle operazioni, sto impazzendo??? (prob.si...)
Il Control di MVC, prendo Jsf perche'e quello che ho appena visto (male), qual'e' la sua ragion d'essere in una applicazione tipo gestionale? Capisco un sito web, ma...
Ripeto che non conosco assolutamente bene questo enorme mondo, e per questo che chiedo a chi gia'bazzica tutto questo, le mie idee attuali sono dovute banalmente al fatto che sono tornato su questi ambienti da poco piu'di un mese, quindi non mi trucidate
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 12:47   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Se la tuo opinione è che tutto il carrozzone enterprise fa schifo hai il mio voto.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 13:34   #3
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
Tendenzialmente...

Mi sembra quantomeno strano di dover costruire tutto sto po'po' di roba per la minima cosa, ovvero, se aggiungo un campo al sistema devo andare a ritoccare:
1) Il file hbm di hibernate (se non uso le annotations di hib. )
2) La classe Entity di hibernate
3) La classe VO
4) La copia dei parametri da entity a vo e viceversa
5) Aggiungere il campo nei vari ed eventuali findBy
6) Modificare l'hsql delle ricerce di cui al punto 5 (si in effetti avere solo un dialetto sql per tutto male non e',anche se le join sono un tantino contorte rispetto ad un sano sql standard... rimpiango Oracle 8...)
7) La gui
In piu',sara'che sono pesantemente legato all'approccio C/C++ non amo molto la reflection...giusto per motivazioni prestazionali, non per altro..
Ripeto, probabilmente e'una mia impressione ma mi sembra un tantino eccessivo... attendo (e spero in) smentite
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 14:10   #4
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Guarda, sfondi una porta aperta. Potremmo star qui a darci pacche sulle spalle per delle giornate intere.

Vorrei darti un'opzione B ma non c'è. Sono "soluzioni" software che nell'ambiente enterprise devi usare quindi rassegnati e vai.

Va precisato però che Java e Java EE in comune hanno solo un pezzo del nome.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2009, 14:43   #5
zakmckraken
Member
 
Iscritto dal: Apr 2004
Messaggi: 56
Fantastico, quindi niente simpatiche soluzioni out-of-the box... a parte imporbabili tentativi di automatizzare la generazione della persistenza e quant'altro dal modello UML (si intende questo con MDA? si lo so, ma google usa troppa CO2 per ricerca :P ), ma... mai provato il mistico AndroMDA... che ti genera pure la gui, che pero'ha una lista di dipendenze un po, come dire 'inconsistente' (e se qualcuno e'riuscito a usarlo con Jsf mi dica come perche' io ho dichiarato la resa incondizionata...), fatta col caro dolce Maven, che pero'fa ingrandire i progetti in maniera brutale (basta aggiungere la dependency... mettiamoci questo plugin) mi sembra di vedere rotolare a valle la qualita'del codice... non delle librerie intendiamoci, saran fatte benissimo, ma di solito cerco sempre di minimizzare codice e dipendenze (anche per non spararmi ad ogni release), e ogni mattina, quando sbatto 50 Mb su JBoss (di librerie, piu' altri 15 di applicativo) insomma mi sento un po'come se fossi diventato un enrome ippopotamo sovrappeso con problemi di gotta...
Continuo a sottolineare che spero di trovare qualcuno che mi critichi...e mi dica che sto sbagliando tutto... e PGI-Bis, grazie per il supporto morale, almeno non mi sento piu'solo ... mal comune mezzo gaudio!
zakmckraken è offline   Rispondi citando il messaggio o parte di esso
Old 13-05-2009, 15:49   #6
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Lungi da me essere scambiato per un esperto...

Anche io, ma solo per scopi 'didattici', stavo cercando di capirci qualcosa su questi design.

Credo di aver capito che fin quando un progetto dev'essere gestito e manutenuto da una sola persona, adottare questi design non ha molto senso.
Davvero è come prendere un lanciarazzi per sparare ad una mosca (citazione)


In un team abbastanza vasto dove ci sono competenze specifiche e comunicazione fra i vari componenti del progetto, credo possa semplificare le cose, almeno per progetti molto ampi.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 13-05-2009, 16:02   #7
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
In un team abbastanza vasto dove ci sono competenze specifiche e comunicazione fra i vari componenti del progetto, credo possa semplificare le cose, almeno per progetti molto ampi.
Per progetti molto ampi oppure per teste molto diverse
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-05-2009, 16:29   #8
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
JSF e Hibernate, nella mia modestissima opinione sono lammerda.
Se li devi usare perchè sei costretto dall'ambiente in cui lavori, posso risponderti solo con un "I feel your pain".
Se invece hai possibilità di movimento, ti dò un paio di framework alternativi che fanno le cose come devono essere fatte.

http://www.stripesframework.org/ (un web framework action-based, l'ho usato un pò, figo)
http://wicket.apache.org/ (un altro web framework, ma component-based. Mai usato, ma ne parlano tutti molto bene)
https://activeobjects.dev.java.net/ (un ORM fatto come dio comanda, non come hibernate...è moooolto più semplice)
http://code.google.com/p/google-guice/ (un framework per dependency injection senza quella merda di xml, se ti serve)
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 29-06-2009, 12:47   #9
gokan
Senior Member
 
L'Avatar di gokan
 
Iscritto dal: Apr 2002
Città: Palermo
Messaggi: 4913
Ciao, rispolvero il thread che avevo seguito, e che avevo messo tra i sottoscritti per i vari framework segnalati da shinya
Come è andata a finire all'autore del thread con jsf/hibernate nel progetto in cui lavora?

Me lo sono chiesto perchè anch'io lavoro da un pò con jsf e sebbene lavori con le vecchia versione 1.0 devo dire che non sono così malaccio..per fare qualche form, mostrare tabelle di risultati e cosette "tipo gestionale" non sembra malaccio; tra le altre cose sono costretto ad utilizzare RAD di ibm come ide (una sorta di eclipse potenziato e più pesante) e devo dire che vi sono dei tag ibm abbastanza comodi.
Finora l'impressione non è negativa e leggendo in giro, le JSF 2.0 (al momento in versione RC) promettono molto bene.

Quote:
Originariamente inviato da shinya Guarda i messaggi
JSF e Hibernate, nella mia modestissima opinione sono lammerda.
Se li devi usare perchè sei costretto dall'ambiente in cui lavori, posso risponderti solo con un "I feel your pain".
Se invece hai possibilità di movimento, ti dò un paio di framework alternativi che fanno le cose come devono essere fatte.

http://www.stripesframework.org/ (un web framework action-based, l'ho usato un pò, figo)
http://wicket.apache.org/ (un altro web framework, ma component-based. Mai usato, ma ne parlano tutti molto bene)
https://activeobjects.dev.java.net/ (un ORM fatto come dio comanda, non come hibernate...è moooolto più semplice)
http://code.google.com/p/google-guice/ (un framework per dependency injection senza quella merda di xml, se ti serve)
Per quanto riguarda questi link, sembra molto interessante wicket, però come tutti sappiamo alla fine usiamo sempre i framework che vanno in voga (e non sempre sono i migliori, ma molto supportati si).
Torniamo sempre ai soliti discorsi..lavorando come dipendenti di qualcuno è difficile imporre l'uso di alcune tecnologie piuttosto che altre.
Se lavorassi come libero professionista allora si potrebbe anche prendere in considerazione (fino ad un certo punto però) l'uso di framework alternativi.

ciao
__________________
Sun Certified Java Programmer - Sun Certified Web Component Developer - Sun Certified Business Component Developer
gokan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Ultimo giorno di Black Friday: ecco le o...
Le pubblicità stanno arrivando su...
Ultimo giorno di Black Friday: droni DJI...
Elon Musk: 'AI e robotica sono la chiave...
Wi-Fi superveloce anche in giardino? FRI...
Ogni richiesta a ChatGPT consuma quanto ...
Nuova Renault Clio, primo test: ottimo f...
CD Projekt conferma che l'uscita dei tit...
Black Friday Amazon: accessori auto e av...
Addio al notch anche su iPhone 17e: ecco...
Ultimo giorno di Black Friday: GPU, CPU,...
Ultimo giorno di Black Friday: super sco...
In piena transizione elettrica, Lotus ag...
Ultimo giorno di Black Friday: robot asp...
Il Natale segna l'ingresso di Geely in I...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v