Newsgroup: it.lavoro.informatica
Titolo: Java: Impararlo?

Ciao a tutti
devo avviare un nuovo progetto piuttosto delicato che mi vedra'
coinvolto per la progettazione e la realizzazione di un database che
verra' poi gestito dai programmatori con procedure java secondo le
specifiche che io gli fornisco.
Non è che non mi fidi di loro :-))) ma vorrei poter mettere il becco
se c'è qualcosa che non va.
A tal proposito vorrei trovare un testo valido - ho gia' scaricato
tutti i tutorial dal sito Sun - che mi aiuti a imparare un po' di java,
non tanto per programmare quanto per poter controllare il lavoro dei
programmatori e anche per capire se quello che pretendo da loro è
fattibile in una maniera piuttosto che in un'altra.
Avete qualche suggerimento?
Grazie a tutti
ciao
mario

 Avete qualche suggerimento?
"Thinking in Java" di Bruce Eckel. Puoi comprare il cartaceo dell'ultima 
versione oppure scaricare gratuitamente il .doc (o .pdf, non ricordo) 
della versione precedente partendo dal sito 
www.mindview.net
HTH,
Giulio

 mario
Mario, il suggerimento di Petrucci è ottimo, Eckel spiega bene dalla
base.
Accetta però la mia opinione : per quanto bravo tu sia ed abbia voglia
di imparare se java ed il paradigma Object Oriented non ti sono noti
(soprattutto quest'ultimo) avrai enormi difficoltà a fare quello che
ti sei prefisso.
La fattibilità passa attraverso una profonda conoscenza del mezzo e
del metodo : sei confidente di poter imparare tanto da poter
controllare/contestare le scelte di programmatori che fanno questo da
anni per mestiere ?
Non rischi di prendere decisioni contrarie a quelle che fanno si di
avere un prodotto fatto 'a regola d'arte' perchè giudicheresti con il
tuo metro di paragone la strada intrapresa dai tuoi uomini troppo
'lunga' e 'contorta' ?
Just my two cent.
Stefano Grevi

 Just my two cent.
Apprezzati :-)
grazie
mario

 la sintassi dovrebbe essere vagamente simile a java.
Si quanto è simile al C, al C++, a D e a Python. La sintassi è il tuo
ultimo problema.
Buon divertimento!
-- 
Lawrence - 
http://www.oluyede.org/blog
http://www.neropercaso.it
"Nothing is more dangerous than an idea
if it's the only one you have" - E. A. Chartier

 Avete qualche suggerimento?
Qui le cose si fanno dolenti purtroppo. Java, e in particolare
l'architettura J2EE, è una bestiaccia: confermo ciò che ti hanno già
detto, che Eckel è un buon tutore e che la sintassi è l'ultimo dei
problemi. Se ricordo ben tempo fa avevo letto che per java si stimava
una learning curve con un "gradino" iniziale di almeno sei settimane a
tempo pieno: non so come l'avessero calcolato, quindi prendilo giusto
come indizio del fatto che non è una cosa da "tech yourself in 24
hours", senza pretese di attendibilità particolari.
Il problema, con in qualsiasi altro ambiente, è entrare nella logica
delle astrazioni implementate negli ambienti di base, e nel caso
dell'architettura J2EE queste sono molte, stratificate, e IMHO in
alcuni casi anche ridondanti e terribilmente contro-intuitive.
Cmq, buon lavoro e in bocca al lupo per il progetto...
Bye!

 Avete qualche suggerimento?
Si, ho un ottimo suggerimento.
Qualcuno ti ha suggerito "Thinking in Java" che è un buon testo ma parla
solo (o poco piu che) della sintassi. Per imparare cosa vuol dire
progettare applicazioni in Java (architetture, framework, pattern,
metodologie) servono come minimo un paio di dozzine di libri ed una
esperienza (rilevante) di progettazione e sviluppo di almeno 5 anni.
Dopo esserti letto Thinking in Java potrai al massimo controllare che la
sintassi dei programmi sia corretta, cosa che tra l'altro il compilatore
Java fa già benissimo.
Il mio suggerimento (che sembra tirare l'acqua al mio mulino, ma è in
realtà veramente il migliore che ti si possa dare) è di assumere un
consulente per fare la code review. Ti costerà meno di quel che pensi
(potrebbe bastare anche una giornata a settimana), soprattutto se per la
ricerca del consulente giusto ti ingegni un po' (google sarà amico) e non
ti rivolgi al bodyrentallaro/grossa-società-di-consulenza che sarà ben
felice di spennarti per mandarti il neoassunto di turno.
--
  Mopo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 felice di spennarti per mandarti il neoassunto di turno.
Quoto. Decisamente !!! :-)

 Avete qualche suggerimento?
Purtroppo non credo che ti basti acquisire le basi (i testi suggeriti
sono ok per questo) per metterti in grado di fare code review, a meno
che queste procedure java siano veramente elementari. Appena si alza la
complessità entrano in gioco numerose scelte architetturali, che vanno
dalla semplice programmazione ad oggetti, alla applicazione di design
pattern, fino alla scelta di un framework. Se non sei in grado di
valutare questi aspetti è inutile mettersi a valutare la qualità del
software da come è scritto un ciclo for o da come è indentato il
codice :-)

 ha scritto nel messaggio 
news:1166429471.0...@80g2000cwy.googlegroups.com...
[CUT]
Come la vedi se un programmatore si scarica due tutorial tipo "DBA for 
dummies" e poi contesta le tue specifiche?
Saluti 

verranno impiegate nel progetto ;)
Non mi sembra che il suo ruolo sia quello del PM ma quello del DBA, ma forse 
ho capito male io
Saluti


Per curiosità, non è che potresti fare un esempio concreto di quello che
non dovrebbero farti, giusto per capire.
Ciao, Alessandro


 dummies" e poi contesta le tue specifiche?
ne possiamo sempre parlare, ma siccome io sono quello che paga,
gradirei che il lavoro venisse svolto come dico io ;-)
ciao
mario

 ha scritto nel messaggio 
news:1166441152.3...@l12g2000cwl.googlegroups.com...

Ah beh allora hai sbagliato il post in partenza....non hai specificato da 
nessuna parte questo piccolo dettaglio....
Detto questo allora è più conveniente dal punto di vista economico e 
sopratutto tecnico la soluzione che qualcuno ti ha proposto, prendere una 
persona con molta esperienza che venga una volta a settimana e controlli il 
tutto, anche perchè se i tuoi programmatori hanno anni di esperienza alle 
spalle e te magari gli contesti qualche scelta, rischi di fare la figura di 
quello che siccome paga vuole mettere bocca senza sapere nulla o sapendo 
poco :-)
Poi se nel frattempo te vuoi imparare una nuova tecnologia ben venga.
Saluti 

 Poi se nel frattempo te vuoi imparare una nuova tecnologia ben venga.
I CEO tecnicamente esperti e Up-to-Date sono sempre benvenuti :-)

 di programmazione ad oggetti
Certo, e il C++ è un C con le classi... :-P 
-- 
__________________________________________________
Luc (33, CO)
MS Visual Studio developer - Programmer since 1985
__________________________________________________

 gradirei che il lavoro venisse svolto come dico io ;-)
Ok, però ad esempio il ns. titolare è un programmatore con i controca**i, 
quindi ha tutti i diritti di controllarci anche tecnicamente, volendo. :) 


 sapere" è capitata pure a me) :-(
E' proprio per quello che non ho specificato il dettaglio all'inizio...
Infatti sono ancora in fase decisionale, prima di decidermi se far
partire il progetto oppure no devo aver bene in chiaro tutto, anche gli
aspetti del linguaggio ri programmazione. Siccome in realta' non pago
solo io ma anche altri (sono loro che vogliono java), prima di mettere
la mia parte voglio essere sicuro di tutto, anche di non fare figuracce
con i programmatori addentrandomi in campi che conosco molto poco.
grazie a tutti per i suggerimenti. Ho scaricato il TIJ e nelle vacanze
lo guardo, poi ho trovato alcune pubblicazioni in italiano su
mokabyte.it
 che voglio vedere.
ciao
mario


Certo, mui semplice:
Chiedi all'architetto se userete Hibernate o EJB3.
Se userete Hibernate piglierei il grande "Hibernate in action" el
grandissimo Gavin King
Per EJB 3, che sono in release da quest'estate, ce'' ancora pochino, mi pare
che il meglio e' quello della O'really
Se tu devi "solo leggere" il codice di altri salterei i manuali di sintassi
java, che tutto sommato come sintassi e' elementare e se sai il C o il C# e'
pure simile.
Per finire chiedi di nuovo all'architetto che framwork usera' sul Front end,
se e' web o meno, eccetera. Se usate JSF, ovviamente uno sguardo alle JSF lo
devi dare con "Core JSF" ad esempio, o forse sono migliori le specifiche
gratute alla sun, io li uso incrociati. Se invece uscite in struts ci sono 2
manuali pdf, io usavo "Struts Live" o una cosa simile.
Se infine non uscite sul Web, vorra' dire che uscirete Swing oppure AWT
oppure Applet. In questo caso darei un' occhiata a un testo standard per
capirci qualcosa.
Ciao Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 aspetti del linguaggio ri programmazione.
Tutorial della Sun e libro di Eckel è ciò con cui molti di noi hanno
iniziato (consiglio in quest'ordine).
Devo dirti però che, l'accesso ad un db si fa con JDBC o se
l'applicazione è web e l'Application Server li gestisce, con i
DataSource. Il libro di Eckel non li tratta.
Poi, a questo si aggiunge che spesso l'accesso ai dati è trattato
attraverso framework quali Hibernate o iBatis e che il contesto
transazionale spesso e volentieri è demandato agli EJB.
Insomma, di carne al fuoco ce ne è...:-)

 capirci qualcosa.
e se decidono di implementare la business logic sul db, magari in pl/sql
o procedure java su oralcle? li manca un pezzo: il db e l'architettura.
usate mysql? le fate le fk? cosa sono? usate un db ad oggetti?
ecc..ecc.. ti sei dimenticato un pezzo importante (forse) :)

 Avete qualche suggerimento?
Ti do un suggerimento diverso da quello degli altri
Da quello che ho capito sei piu' interessato a verificare con regolarita' il
*cosa* fa il prodotto e non il *come* lo fa, in questo caso lo strumento che ti
suggerisco e' quello dei "test di accettazione" (Acceptance Tests)
E' una pratica della metodologia XP (eXtreme Programming) e consiste nella
scrittura di test derivati dalla collaborazione fra il customer e il team di
sviluppo, al fine di *testare* l'accettabilita' (da parte del customer) delle
funzionalita' implementate
Generalmente questi test vengono scritti prima della funzionalita' che andranno
a testare, sono automatici e vengono eseguiti piu' volte al giorno per dare il
polso della situazione sia al team sia al customer (quante delle funzionalita'
che ho richiesto sono state implementate con successo?)
E' molto piu' semplice di quello che sembra, un approfondimento sulla pratica lo
trovi qui [*], lo strumento piu' famoso per realizzare test di accettazione (per
lo meno nel mondo java) e' fitnesse [**]
Quindi il consiglio e' di trovare un team che sappia cosa sono i test di
accettazione [***] e di impegnarti in prima persona per scriverli :-)
[*] 
http://xp123.com/xplor/xp0105/index.shtml
 
http://c2.com/cgi/wiki?AcceptanceTest
 
http://www.extremeprogramming.org/rules/functionaltests.html
[**] 
http://fitnesse.org/
[***] In alternativa e' sempre possibile insegnarglielo attraverso un corso
oppure un'attivita' di coaching, se non sai a chi chiedere manda una mail alla
ml italiana dell'eXtreme Programming
(
http://it.groups.yahoo.com/group/extremeprogramming-it/
) oppure rivolgiti
all'eXtreme Programming User Group della tua zona (io sono il coordinatore di
quello di Milano)
-- 
SunGray aka Gabriele Lana
http://www.agilemovement.it
http://milano-xpug.pbwiki.com/

mario r.p. ha scritto:

Ah per una volta che c'e' qualcuno volenteroso non arroccato sul suo
campo di specializzazione...vai lodato..
Leggiti questi:
http://www.amazon.com/Core-Java-TM-I-Fundamentals-7th/dp/0131482025/sr=1-1/qid=1166461865/ref=pd_bbs_sr_1/002-3644123-8748851?ie=UTF8&s=books
http://www.amazon.com/Core-Java-II-Advanced-Features-7th/dp/0131118269/sr=1-2/qid=1166461865/ref=pd_bbs_sr_2/002-3644123-8748851?ie=UTF8&s=books
e  anche
http://www.amazon.com/Java-Persistence-Hibernate-Christian-Bauer/dp/1932394885/sr=1-1/qid=1166461920/ref=pd_bbs_sr_1/002-3644123-8748851?ie=UTF8&s=books
E non dar retta a quelli che ti dicono che ci vorrebbero 5 anni...
Intanto prima inizi prima ci capisci qualcosa...
buona lettura

 ecc..ecc.. ti sei dimenticato un pezzo importante (forse) :)
boh, io dalle 3 righe che ha scritto ho provato a dargli qualche dritta a
intuito.
Certo oggi Hibernate o gli EJB3 vanno usati comunque, perche' il JDBC non
lo usa piu' nessuno, che non sia masochista.
Nicola
