Come iniziare a programmare a oggetti

Salve ragazzi rieccomi dopo un po' di tempo.
Ho studiato Programmare con PHP di Antonio Ghu poi avevo iniziato a studiare Sviluppare Siti Web con PHP e Apache
che è fatto molto bene ma purtroppo è basato sul procedurale. Molti, anche qui sul forum mi hanno consigliato di studiare php ad oggetti. Dopo svariate ricerche, giri in biblioteca,contatti su forum e "colloqui" con alcuni amici sembra che uno dei migliori manuali in Italiano riguardo Php5 ad oggetti sia PHP 5 Guida Completa
Nel manuale all'inizio dice che: "Sebbene il capitolo 2 prevede un'introduzione alla sintassi di PHP, questa è da intendersi quale promemoria per i programmatori di PHP e non un tutorial per i nuovi programmatori.

Dato che ho già studiato il primo libricino e fatto i primissimi capitoli di quello procedurale, che ne dite se passo alla studio di questo manuale direttamente? Il manuale dovrebbe essere più avanzato ma credo che una volta fatta la sintassi sia possibile studiarlo. Che ne dite? Gli date uno sguardo?

Grazie

inviato 5 anni fa
bismark2005
modificato 5 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Se il tuo obiettivo è imparare a programmare ad oggetti posso dirti con certezza che PHP 5: Guida Completa non è il libro adatto.

Il consiglio che mi sento di dare a chi vuole imparare a programmare a oggetti è quello di lasciare perdere questo genere di libri perché fuorvianti in quanto si limitano a spiegare cos'è una classe o a dare un'infarinatura generica sulla sintassi senza però spiegare come imparare a pensare a oggetti. Infatti programmare a oggetti non richiede soltanto la conoscenza delle pratiche di OO ma un vero e proprio cambio di paradigma nella risoluzione dei problemi e modellazione della realtà.

Puoi leggere un'interessante serie di cinque articoli di Jacob Wright sulla programmazione a oggetti giusto come antipasto.

Un altro link che al tempo è stato per me fonte di grande ispirazione è A Laboratory for Teaching Object-Oriented Thinking da cui penso troverai spunto per ulteriori ricerche personali o porre altre domande qui su PHPNews.

Ciao.

risposto 5 anni fa
Andrea Turso
Andrea Turso
86
modificato 5 anni fa
Purtroppo, in Italiano è l'unico libro "degno" che esiste. Ora inizio a studiare questo poi man mano approfondisco sul webbismark2005 5 anni fa
Sicuramente è un libro più che degno, e mi piace l'introduzione che fa ai Design Pattern, però se imparare a programmare a oggetti è il tuo obiettivo questo non è il libro adatto, o almeno io non mi sento di consigliartelo.Andrea Turso 5 anni fa
In realtà il mio piano di studio (su consiglio di garak) dovrebbe essere: Studio dei primi 8-9 capitoli del libro. Passaggio allo studio di un Framework (Simfony 2). Per la programmazione ad oggetti come dicevo, oltre al libro cercherò di studiare qualcosa sul web. Poi ho anche delle ottime videolezioni su Java che spiegano abbastanza bene la programmazione ad oggetti. Io ci provo a fare così. In caso di difficoltà torno a Java. Java è ad oggetti "puro", non ti puoi sbagliare!!! Purtroppo Php come linguaggio è un po' strano. Non si capisce bene se è "carne o pesce". Anche i manuali sono tutti bismark2005 5 anni fa
Tutto dipende dall'obiettivo che vuoi raggiungere :)Andrea Turso 5 anni fa
X 1 X

Se vuoi imparare a programmare ad oggetti dovrai lmeno per un poco lasciare il PHP e passare a studiare prima i concetti di base e avanzati della programmazione ad oggetti e poi applicarli l PHP, considerando però le differenze strutturali del linguaggio rispetto al paradigma di programmazione vero e proprio; il PHP non è nato come linguaggio ad oggetti e la sua implementazione moderna risente fortemente di questa mancanza.

Ti consiglio pertanto di libri che apparentemente non hanno molto a che vedere con il PHP ma che parlano in modo approfondito di programmazione ad oggetti, come ad esempio: "UML pratico con elementi di ingegneria del software" di Ernesto Damiani,Mauro Madravio,Andrea Böhm.

Poi entra in una biblioteca universitaria, per esempio se c'è nella tua città nella Universitas che è una catena di librerie e cerca testi che parlano di paradigma S.O.L.I.D. e patternes di programmazione.

risposto 5 anni fa
Marco Grazia
In realtà i paradimi della programmazione ad oggetti li conosco abbastanza bene avendo fatto 2 corsi java. Ora si tratta solo di "traslare" queste conoscenza da java a php.- Ad esempio ho visto che per accedere ad un metodo/attributo in java si usa il punto (.) in Php ->bismark2005 5 anni fa
Una visione un po' troppo semplicistica a mio parere. Aver seguito due corsi su Java (cosa esattamente?) non è sufficiente per conoscere i paradigmi della programmazione a oggetti. Certamente tu sai scrivere codice in un linguaggio OO, ma pensare/programmare/sviluppare a oggetti è un discorso a parte, ci va disciplina, esperienza e un modo di pensare totalmente differente. Ripeto, usare le classi non è condizione sufficiente perché un software sia a oggetti, è l'approccio alla soluzione che deve essere OO.Andrea Turso 5 anni fa
Scusa......ma se non inizio a scrivere qualche semplice classe come faccio a studiare i design pattern? al corso java subito dopo la teoria ci facevano fare gli esercizi. Se studio prima l'uml, poi il paradigma solid, poi caso mai ci mettiamo la storia della programmazione forse per l'età della pensione un hello world lo scrivo. La verità è che mi sono proprio stufato di php. Nemmeno l'ultimo libro che ho comprato è ad oggetti. Solo i primi capitoli danno una spiegazione della teoria ad oggetti e poi...procedurale. Basta torno a studiare java. Ben diceva il mio amico che Php non è un linguaggio serio. Grazie.bismark2005 5 anni fa
Perdonami, non pensavo fosse personale. Sempre a mio parere, prima di buttarti nella pratica a scrivere classi per studiare i Desing Pattern dovresti studiare Analisi e Modellazione di Sistemi, facendo pratica con gli Automi a numero di Stati Finiti (FSM) in modo da consolidare le basi analitiche, per poi passare all'analisi Top-Down e Bottom-Up, e pian piano, mediante esercizi di analisi e programmazione, iniziare a modellare i primi sistemini nel tuo linguaggio preferito (anche procedurale) e poi dopo tanta pratica puoi iniziare a fare pratica con i concetti di incapsulamento, delega, etc...Andrea Turso 5 anni fa
Quello che volevo evidenziare è che la Programmazione Orientata agli Oggetti non è limitata alla sintassi con cui i linguaggi di programmazione la implementano ma è una vera e propria metodologia. È per questo motivo che troverai la trattazione sui libri dedicati ai linguaggi di programmazione *sempre* deludente, semplicemente parlano del linguaggio di per sé e non della metodologia. Per farti un'esempio, quello che stai cercando di fare tu è imparare il Kung Fu comprando i film di Bruce Lee, certamente puoi vedere come muoverti, ma non imparerai mai la disciplina, per quella c va altro studioAndrea Turso 5 anni fa
X 0 X

Non ti preoccupare non ho nulla di personale con te. Ok comprerò anche il libro UML pratico con elementi di ingegneria del software, male che vada questo mi serve per tutti i linguaggi

risposto 5 anni fa
bismark2005
modificato 5 anni fa
Andrea Turso
Andrea Turso
86
Visto che hai tanta voglia di leggere ti consiglio anche Object Oriented Analysis and Design di Grady Booch.Andrea Turso 5 anni fa
X 0 X

Se hai tanta voglia di studiare come dici, non ci metti due secoli ad imparare ma pochissimo tempo.

PHP è un linguaggio serio e chi dice il contrario o non lo conosce affatto o lo conosce poco, non esiste a priori un linguagio poco serio, compreso il [url=http://en.wikipedia.org/wiki/LOLCODE]LOLCODE[/url], ma esistono linguaggio all purpose e linguaggi mirati per fare una cosa particolare.

PHP e Java sono sicuramente linguaggi all purpose, ma mentre il java non è nato specificatamente per il Web anche se con il supporto alle reti, PHP è un linguaggio specifico per il Web che ha tentato di portarsi anche verso il lato client.

Questo non li fa necessariamente ne stupidi e ne intelligenti a priori, solo differenti, se è il Java che ti serve studialo pure, se no vedine un'altro; ma comunque non è il linguaggio che fa il programmatore ma lo è il problema.

So che oggi molte aziende chiedono PHP o .NET , Java... ma chi lo usa ancora? Un settore di nicchia? Ovviamente no, ma è pur sempre un linguaggio lontano dal Web e più vicino al client/server che è una cosa molto diversa e più complessa.

Quindi PHP diventa poco serio solo perché orientato al Web e in particolare al lato server? E' un'ottima interfaccia per costruire solide applicazioni proprio tra programmi che girano in Java e client che leggono solo l'html, vedi ad esempio alcuni telefonini (non esistono solo Android, iPhone e BlackBerry) magari si può dire come ho già detto che è un linguaggio procedurale che si è votato alla OOP con molti limiti, limiti che si stanno abbattendo piano piano, ma a te questo non interessa, una volta che hai capito i concetti di base della programmazione OO applicarne i concetti non può essere complicato.

Vuoi esempi più che validi di programmazione orientata agli oggetti in PHP? Bene vai sul sito di [url=http://www.phpclasses.org/]PHP Classes[/url] scarica qualche listato e studialo, non importa se il tuo libro non parla in modo specifico di oggetti, ma col listato in mano e il libro potrai capirli meglio, la sintassi non è importante, usare un punto o una freccetta non significa nulla, capire il late state bindings molto di più :-)

Scusami se sono stato prolisso. M.

risposto 5 anni fa
Marco Grazia
Grazie. seguirò i tuoi consiglibismark2005 5 anni fa
Si ma in pratica caro Marco non hai detto nulla. La mia domanda era diretta e semplice. Come imparare a programmare ad oggetti in Php?. Mi sembra che avete fatto un mare di chiacchiere senza dare nessuna soluzione concreta.bismark2005 5 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda