Newsgroup: it.comp.www.php
Titolo: Primo progetto serio: come prepararsi?

Ciao a tutti.
Da qualche anno smanetto con php, sia per i fatti miei che per la mia 
ditta: ho fatto diversi progettini, più o meno complessi, e ogni volta 
ho cercato di metterci qualcosa di nuovo, via via ho implementato le 
sessioni, poi le classi, ottimizzato il codice (a volte riscritto 
completamente per il gusto di farlo), usato ajax, poi jquery e jqueryui.
Ora dovrei affrontare la realizzazione un progetto di media complessità, 
una specie di portalino per i nostri rappresentanti da utilizzare 
principalmente su tablet.
Mi rendo conto che non posso affrontarlo senza una base solida da cui 
partire, dato che tutto ciò che so l'ho imparato da solo, e tutte le 
funzioni/classi che mi sono costruito non possono certo essere 
considerate stabili.
La mia ditta sarebbe disposta a finanziarmi un corso: avete qualche 
consiglio da darmi?
Mi piacerebbe anche utilizzare un ambiente di sviluppo / framework in 
modo da concentrarmi più sulla funzionalità e lasciar perdere i cavilli 
htmliani... ho sempre scritto codice con un normalissimo editor o al 
massimo con Eclipse, ma mi rendo conto che non posso pensare di 
sviluppare un progetto del genere senza un "aiuto": prima non ho mai 
provato niente perché ho "paura" di dover buttare alle ortiche tutto 
quello che di semi-buono ho già fatto per correre dietro alle classi / 
convenzioni dell'ambiente / framework che sceglierò. E poi ce ne sono 
talmente tanti che è dura scegliere così sui due piedi.
-- 
Jax

 massimo con Eclipse, ma mi rendo conto che non posso pensare di
Anche io ho sempre scritto codice con un normalissimo editor... Come 
framework ti posso dire di valutarne 2 con filosofie praticamente opposte:
- codeigniter, e' quello che ho iniziato ad usare io, potente e 
flessibile, poche restrizioni, si integra bene in ogni progetto anche se 
e' relativamente limitato ma si puo' espandere con plugin e librerie
- simphony, molto piu' completo ma molto piu' vincolante, copre 
praticamente ogni aspetto di un progetto medio ma richiede anche una 
maggior conoscenza dell'ambiente e del suo uso, quindi un tempo piu' 
lungo per essere sfruttato al meglio
Ciao.
-- 
Pubblicita' regresso: 
http://www.ferrero.org
** Per scrivermi in mail, sostituire nutella con ferrero...
** To contact me by email, change nutella to ferrero...

 lungo per essere sfruttato al meglio
Mi pare di aver capito che, comunque, usare un framework è un po' quasi 
doversi reimparare un linguaggio nuovo... alla fine si è vincolati sia 
alla sintassi del php che a quella a più alto livello del fw.
O sbaglio?
-- 
Jax


Non è vero al 100%, ma ci si avvicina molto.
Quello che ti posso dire io da un'esperienza ormai quasi decennale di 
programmazione praticamente solo web è che le best practices si chiamano 
così per un motivo: non sono la fola di programmatori perfettini che 
vogliono fare gli sboroni, sono l'ancora di salvezza che ti fa 
sopravvivere quando il codice diventa appena meno che banale.
Un framework in questo ti può molto aiutare, ma se le convenzioni che 
usa non le conosci inizi ad usarle in maniera acritica. Non è un male di 
per sé, però mi rendo conto che può essere spiazzante.
Io mi sono direzionato completamente su symfony perché usa gli stessi 
approcci che usavo io con un php "crudo" solo che il mio codice 
ovviamente era primitivo rispetto al loro.
Il vantaggio di un framework è che cmq è un codice condiviso, 
conosciuto, con una comunità.
Un altro vantaggio è che ti mette a contatto con paradigmi che ormai è 
praticamente necessario almeno conoscere, quali dependency injection, 
librerie ORM, annotazioni ....
Un ultimo vantaggio è che se ti appoggi ad un framework probabilmente il 
tuo codice ne risulterà essere ben disaccoppiato ed isolato, quindi più 
portabile. Certo, se parti con un framework con l'idea di cambiarlo 
l'inizio non è dei migliori :)
Se proprio vuoi farti le cose a mano un consiglio è: Test Driven 
Development.
Specialmente se il codice sotto è del tipo spaghettoso quell'approccio 
ti salva e ti permette di migrare verso un framework in un momento 
successivo con uno sforzo leggermente minore
M
-- 
I fatti mi cosano

 considerate stabili.
Come consiglio generale mi pare che hai già capito che conviene puntare 
su un framework e sono completamente d'accordo.
Su quale framework scegliere ... questo è un gran bel dilemma. Secondo 
me tra i maggiori qualunque tu scelga tanto male non cadi, tanto più se 
parti quasi da zero (intendo dire che non vieni da un altro framework) 
impararne uno o l'altro non dovrebbe fare tantissima differenza.
Oltre a quelli che ti hanno già consigliato io ti propongo di valutare 
anche Zend Framework, trovi abbastanza documentazione, molti corsi 
(costosi) e ci sono pure le certificazioni che in ambito lavorativo male 
non fanno :-)
Una altra cosa che puoi fare è con un attimino di tempo seguire il 
tutorial di base di tutti i framework che ti sembrano validi (simphony, 
codeigniter, zend) e vedi che feeling ci trovi creando una applicazione 
da zero.
ciao
Mauro

 non fanno :-)
Mi sono letto qualcosa (stamattina il tempo è tiranno) e, da quel poco 
che ho visto, praticamente io mi sono già creato una specie di 
mini-framework e non lo sapevo :D
In effetti qualche tempo fa mi sono trovato nella situazione in cui ho 
pensato che era illogico non astrarre, per esempio, l'accesso e la 
lettura dei dati, oppure la creazione degli "oggetti" html (tabelle, 
combo...). Per cui mi sono creato classi con metodi e proprietà, sulla 
falsariga di quello che più mi era piaciuto in passato, ossia Delphi.
A questo punto, visto che ci sono già abituato, anche se mi dispiace, 
dovrei davvero passare a un fw affidabile e conosciuto invece di 
continuare a perder tempo sul mio.
Certo che soffro molto la mancanza di "indipendenza" tra le varie parti 
di un progetto... soprattutto di quella visiva. E' la parte che mi è più 
indigesta della programmazione web, oltre al fatto di dover ricorrere a 
quello schifo di js a ogni piè sospinto per rendere un sito davvero 
utilizzabile. Ma questo è un problema mio :)
-- 
Jax

On Mon, 05 Sep 2011 09:29:14 +0200, Jax wrote:
Un framework non e' una scelta obbligata, semplifica certo la vita (sotto certi
aspetti, sotto altri la complica), ma sempre in relazione alla reale
complessita' del progetto che si deve affrontare.
Cmq potendo darti un'indicazione al momento la soluzione migliore e' IMVHO Zend
(sopratutto se devi interagire con RPG, AS/400).
La stessa ZEND ha un bel programma di corsi 

 utilizzabile. Ma questo è un problema mio :)
Un po' fuori tema ma... e' sbagliato "scrivere" un sito che per 
funzionare necessiti di js, il js eventualmente si aggiunge dopo (cosi' 
come tutte le cose non strettamente necessarie).
Ti consiglio di leggere qualcosa su Progressive enhancement e Graceful 
degradation.


 come tutte le cose non strettamente necessarie).
A rigor di logica ti dò ragione. Ma concorderai che oggi senza js ci fai 
ben poco, o meglio, senza js i siti sarebbero abbastanza "spartani" (in 
pratica saremmo fermi a 10 anni fa)...
Comunque dipende tutto da che target hai: è chiaro che se sto 
sviluppando il nuovo portale di google devo prendere in considerazione 
tutti i browser, tutte le piattaforme, tutte le risoluzioni, tutte le 
limitazioni compreso il no-js...
Ma se sto sviluppando un portalino che utilizzeranno in 20 a far tanto, 
tutti con lo stesso browser & hardware... capisci che a fare come dici 
tu si finirebbe per sparare alle mosche con i bazooka (anzi, 
probabilmente si rischierebbe di non finire neanche di costruirlo, il 
bazooka :))
-- 
Jax


+ o - tutto quello che c'era da dire te lo han già detto :)
come corsi io ho sempre visto solo corsi zend, che come ti han detto ha 
anche valore sul lato certificazioni se devi trovare un lavoro in futuro.
Personalmente uso codeigniter e mi trovo benissimo, su php non ho usato 
altro, ma symphony mi è sempre sembrato troppo mastodontico, lo zend è 
talmente flessibile che si può usare in mille modi.
Potresti dare un'occhiata di massima a tutti e 3 (volendo anche a 
cakephp, ma credo sia basato su php4) e vedere un po' cosa ti ispira d+.
Come curva di apprendimento penso che ci sia il + rapido.
Poi potresti valutare se usare doctrine o meno (io con ci non ne sento 
proprio il bisogno, ma altri si a leggere le guide x farli convivere), 
visto non credo esistano altri orm su php decenti.
Stesso discorso x i template engine, anche qua dopo lunga riflessione 
uso un template engine super leggero su ci e nessun linguaggio di 
templating, molti sentono la necessità di usare cose + pesanti, come smarty.
Come in quasi tutto ci sono scuole di pensiero ed ognuna ha argomenti 
validi per una scelta o per l'altra, io francamente, a patto di scrivere 
decentemente e limitare al massimo il php dentro le viste, non trovo 
vantaggi a usare smarty su php "liscio", dato sono linguaggi entrambi, 
certo se devi usare caching pesante ecc... smarty ha il suo perchè.
-- 
Z.

 smarty.
Su php "liscio" ho sempre usato smarty, ora che sto iniziando a migrare 
a codeigniter sto valutando popcorn che mi sembra piu' adatto alla 
situazione.


 La stessa ZEND ha un bel programma di corsi
Ok, ci guardo, grazie.
-- 
Jax

 consiglio da darmi?
Mi unisco a chi già ti ha consigliato i corsi "brandizzati" Zend, se
non altro perchè sono quelli ufficiali, e quindi con più validità/
spendibilità.
bye!

 poi ce ne sono talmente tanti che è dura scegliere così sui due piedi.
Ciao,
visto che hai lavorato con Delphi hai provato a considerare RAD PHP, 
della Embarcadero?
un saluto
-- 
Emanuele Desideri

 un saluto
Qualche anno fa avevo provato Delphi for PHP, ma ne ero rimasto deluso, 
troppo instabile.
Proverï¿œ a dare un'occhiata a RAD PHP, grazie.
-- 
Jax

 un saluto
Wow, sembra davvero figo di primo acchito!
O meglio, probabilmente il codice generato farà pena e andrà contro 
tutti i pattern di questo mondo e pure dell'altro, ma sono quasi 
emozionato nel fare drag&drop dei componenti! :D
Scherzi a parte, forse è proprio questo che mi serve *al momento*... una 
cosa fast&dirt&furious :)
Ci perderò una giornata e poi vedo...
-- 
Jax

 Ci perderò una giornata e poi vedo...
anchio avevo provato D4php con mia somma delusione, radphp invece ci 
sto giocando da un po e devo dire che non mi dispiace.
buon divertimento!!
-- 
Emanuele Desideri


wrote:


 Mi sembra ci siano stati ottimi consigli su come procedere.
Beh, anche se era implicito, ringrazio tutti :)
La discussione può comunque continuare tranquillamente, non penso 
proprio che, se sceglierò RadPHP per fare questo progetto, abbandonerò 
in toto lo sviluppo tradizionale.
Diciamo che, per me che non lo faccio di professione (e che non ho 
intenzione di farlo in futuro), questo strumento mi offre delle 
possibilità che altrimenti non conoscerei neanche.
E' palese che sono due strade completamente differenti, e ti dirò che la 
strada fast&dirt&furious non mi piace. Preferirei davvero fare le cose 
come si deve, ma è una decisione che non è facile prendere... 
soprattutto perché non la faccio con le mie tasche.
I corsi costano, RadPHP costa, non essere produttivi costa, essere 
produttivi all'inizio e poi bloccarsi per mancanza di supporto al 
prodotto che hai scelto costa più di tutto messo insieme.
-- 
Jax