Pagina 1 di 1

Manuali sul php

Inviato: lunedì 21 aprile 2014, 20:21
da Schiavone
Salve forum,

volevo porre una domanda. Ultimamente mi sono sfogliato parecchi manuali sul Php. Ho notato una cosa...

I manuali base sono tutti basati sul procedurale, mentre quelli avanzati sul Php Object Oriented. Tuttavia nei manuali avanzati ti spiega cosa è una classe, l'ereditarietà, il polimorfismo, la cache,l'orm,pdo ecc ecc ecc. Però ad oggi non ho visto nessun manuale avanzato che ti spiega come effettuare un login in Php, come inviare una mail, come costruire un piccolo cms,come creare una newsletter ecc ecc ecc.

Quindi se studi il manuale +avanzato, rischi di conoscere tanta teoria ma di non saper far nulla praticamente. Perchè i manuali avaznati "saltano" la parte pratica?

grazie

Re: Manuali sul php

Inviato: lunedì 21 aprile 2014, 22:40
da Zoff
Perché la pratica serve solo all'inizio.
Un manuale avanzato è per chi sa già usare il linguaggio e vuole migliorare e ottimizzare il suo codice e il modo in cui lo scrive.
Le cose da fare sono le stesse, ma le fai in modo migliore.
Per cui dovresti essere già in grado di crearti i tuoi esercizi.

Ad esempio:
Un login è un dettaglio implementativo, una qualsiasi richiesta ad una pagina web che va a variare la sessione dell'utente è equivalente.
Se stai studiando la programmazione ad oggetti questo dettaglio ti è assolutamente inutile perché si traduce nella singola chiamata ad un metodo dell'oggetto che ingloba la sessione.

Re: Manuali sul php

Inviato: lunedì 21 aprile 2014, 22:52
da Schiavone
Grazie per la risposta Zoff. Chiedo ulteriori chiarimenti.

Mi stai dicendo che con il manuale di base imparo a fare un Login, a convalidare l'input dell'utente,a costruire un piccolo cms, una bacheca elettronica e tantissime altre cose.

Con il manuale avanzato faccio le stesse cose però in maniera migliore e ottimizzata.

Ne deduco che bisogna studiarsi prima il manuale di base (fare gli esercizi) e poi passare al manuale avanzato, altrimenti si rischia di conoscere in teoria come fare bene certe cose ma non saperle fare.

E' come se io imparassi tutte le migliori tecniche per guidare una formula 1 ma non ho mai portato nemmeno una panda.

Re: Manuali sul php

Inviato: lunedì 21 aprile 2014, 23:08
da Zoff
Personalmente ritengo la pratica altamente sopravvalutata.
È senz'altro utilissima ma ho conosciuto tantissime persone che si sono "studiate" fino all'ultima virgola di manuale facendo tutti gli esercizi esattamente come descritto nel libro che quando gli si chiedeva di fare qualcosa di diverso da quello che era nel manuale non sapevaa neanche da dove partire o nel migliore dei casi aprivano Google e speravano di trovare qualcuno che l'avesse già fatto nella speranza di copiare.
Questa è la causa fondamentale della crisi del software e, nel caso specifico di php, il motivo per cui tanti utenti lo credono un linguaggio utile solo per "siti piccoli" o per giocare.

Lo vuoi studiare per giocare e fare delle prove "in casa"? Fermati al procedurale.

Lo vuoi studiare seriamente e costruire una tua figura professionale su questo tipo di programmazione? Allora rimboccatti le maniche, studiati la teoria e la pratica la fai quando sai maneggiare la programmazione ad oggetti. È una cosa accessibile a tutti ma non "per" tutti.
Non a caso per essere assunti come "programmatori senior" non è richiesta solo l'esperienza ma almeno una laurea e possibilmente certificazioni professionali.
La programmazione web non è più facile di quella non web, l'unica agevolazione è la presenza di un enormità di framework facili da utilizzare e che permettono di creare un poco sito dall'aspetto professionale e con molte funzionalità.
Ma se ci vuoi lavorare e campare non ti basta, devi saper prendere in mano questi strumenti e personalizzarli o prendere in mano framework e costruirti da zero l'applicazione web che ti serve.

Re: Manuali sul php

Inviato: lunedì 21 aprile 2014, 23:30
da Schiavone
Concordo con te Zoff, ma io volevo porre una questione diversa.

Credo fermamente che in tutte le cose occorra gradualità. Una persona che inizia da zero con la programmazione (ad esempio in Php) a mio avviso deve come minimo sbattersi con la programmazione procedurale per almeno 6/8 mesi. In questo modo si acquisiranno non solo le basi di Php ma anche di mysql.

Quando si hanno abbastanza chiare le basi del Php si può passare alla programmazione ad oggetti.

Diversamente non avrebbe senso la presenza di manuali per principianti e per utenti esperti.

Ad esempio a me, un mio carissimo amico mi ha sconsigliato di iniziare direttamente con un framework o con la programmazione ad oggetti. Mi ha consigliato questo manuale:
http://www.amazon.it/PHP-Apache-MySQL-T ... ords=php+6

E' un bel malloppo (circa 800 pagine),che non studierò tutto...altrimenti non finisco più. Quando avrò acquisito una certa manualità e praticità con il Php, passerò alla programmazione ad oggetti e ad un framework.

Il percorso mi sembra molto più linerare che iniziate direttamente con un framework o con la programmazione ad oggetti.

Re: Manuali sul php

Inviato: lunedì 21 aprile 2014, 23:47
da Zoff
Se devo dire la verità non trovo il nesso con il messaggio con cui hai aperto la discussione.
Nel primo messaggio chiedevi perché i manuali avanzati "saltano" la pratica.
Qui stai dicendo invece che non si può passare ai manuali avanzati senza aver studiato i manuali base (che poi non è il senso stesso di manuale avanzato?)

Re: Manuali sul php

Inviato: lunedì 21 aprile 2014, 23:58
da Schiavone
Quello che volevo dire (e che ho dedotto anche dai vari tipi di manuali presenti sul mercato) è che bisogna passare prima dalle basi (e quindi sorbirsi il procedurale) e poi passare alla programmazione ad oggetti.

Vista in quest'ottica, la programmazione procedurale non è una perdita di tempo ma è propedeutica all'uso della programmazione ad oggetti e ai framework.

Insomma la mia domanda era volta ad avere una conferma indiretta su quanto dedotto dall'esame dei manuali php. Se la manualistica avanzata salta la parte pratica, è perchè presuppone che il lettore sappia già programmare (e ovviamente ha imparato sui manuali di base)

Re: Manuali sul php

Inviato: martedì 22 aprile 2014, 0:13
da Zoff
Dipende anche dal background del programmatore.
Uno che conosce già la programmazione, specie se ad oggetti, ed ha una buona elasticità mentale (cosa che secondo me è indispensabile per un programmatore capace ma che vedo sempre piu' carente), secondo me non ha bisogno di passare dal manuale base. Le "basi" che si deve fare sono solo sintattiche, cioé capire come si esprime in PHP quello che prima scriveva in un altro linguaggio e capire quali sono i dettagli di PHP rispetto ad altri linguaggio, ad esempio tipizzazione debole e dinamica, ereditarietà singola, etc...

Se uno inizia a studiare la programmazione con PHP allora necessita anche dei manuali base.
Questo non significa che non si possa scrivere un manuale base che ti introduca direttamente alla programmazione ad oggetti, il fatto è che a livello di marketing non conviene.
Anche se di livello base, a causa dei concetti della OOP, verrebbe visto comunque come piu' "difficile" dei normali manuali e probabilmente boicottato.
Lo standard attuale per "manuale base di php" ai giorni d'oggi coincide con "manuali a prova di idiota", per cui tutti i manuali avanzati danno per scontato alcuni concetti base e si concentrano quasi unicamente sulla OOP.
Un altro difetto di php è proprio questo, ma non è del linguaggio in se ma della manualistica correlata che è arrivata a queste condizioni sempre per colpa dei "chili" di spaghetti-code che sono stati prodotti negli ultimi anni.
La vera pecca di php è che permette, piu' di altri linguaggi, di scrivere codice orrendo ed inguardabile ai programmatori. Pur piacendomi PHP posso tranquillamente affermare che i peggiori pezzi di spaghetti-code esistenti sono quasi certamente scritti in PHP.

Re: Manuali sul php

Inviato: martedì 22 aprile 2014, 7:48
da Schiavone
Zoff hai centrato il problema in pieno. La manualistica in Php è quella che presenta più "pecche". Uno che inizia da zero si trova di fronte a due tipi di manuali...

-Quelli a "prova di idiota"

-Quelli più avanzati, che in realtà sono molto avanzati. Questi ultimi trattano argomenti come i design pattern, e altri concetti avanzati non adatti ai principianti.

Quindi uno che inizia da zero deve farsi il manuale base e poi passare (il più velocemente possibile) al manuale avanzato o ad un framework.

Quanto al php, a mio avviso se fatto seriamente presenta le stesse difficoltà che presenta un qualsiasi altro linguaggio. Certo sono stati scritti quintali di codice procedurale, ma questa è la natura del Php. Anche se si è un professionista ci si può trovare tranquillamente a scrivere/modificare codice procedurale, e a quel punto non puoi dire "no io sono un professionista, non metto mani al codice procedurale".

La natura "duale" del Php (procedurale/oggettI) andrà avanti ancora per parecchio. Non dimentichiamo che wordpress è fatto proprio con codice procedurale.

Re: Manuali sul php

Inviato: martedì 22 aprile 2014, 12:54
da Zoff
Attenzione, quì hai fatto una assunzione piu' che sbagliata.
Il codice procedurale NON è cattivo codice a prescindere, presenta alcune limitazioni in modularità e mantenibilità ma può essere comunque codice di buona fattura.
Io parlavo di vero e proprio spaghetti-code, cioè codice scritto senza pensare o frutto di continui copia/incolla senza criterio e ce n'è in abbondanza anche con classi e oggetti (spesso perché gli ex programmatori procedurali si sono convinti che scrivere codice ad oggetti significa buttare qua e la un "class" per raggruppare delle funzioni).
Scrivere in stile procedurale non è meno sicuro o meno "efficace", per chi non lo fa professionalmente e si disinteressa dei framework o librerie esistenti risulta un approccio più immediato.
Il motivo che lo rende sconsigliabile è che senza esperienza si finisce per scrivere codice immantenibile, con la programmazione ad oggetti, insieme alle funzionalità ti vengono insegnati anche stili di programmazione e strutturazione del codice che ti permettono di avere codice piu' mantenibile.

Sia chiaro, scrivere codice ad oggetti non è garanzia di sicurezza, mantenibilità e modularità.
Programmatori veramente capaci sono in grado di scrivere buon codice anche procedurale, tramite convenzioni possono renderlo anche modulare e mantenibile, il fatto è che non si è mai standardizzato un approccio di questo genere, anche perché spesso le convenzioni che si utilizzano sono molto stringenti e non si adatterebbero a tutti i tipi di progetto. Anche i primi framework ad oggetti e alcuni di quelli attuali preferiscono le convenzioni alle configurazioni (es. RubyOnRails: "Conventions over configurations").

Re: Manuali sul php

Inviato: martedì 22 aprile 2014, 14:01
da Schiavone
Quindi Zoff in teoria si potrebbe scivere una buona applicazione anche con codice procedurale?

Re: Manuali sul php

Inviato: martedì 22 aprile 2014, 14:05
da Zoff
Schiavone [url=http://forum.ubuntu-it.org/viewtopic.php?p=4568280#p4568280][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Quindi Zoff in teoria si potrebbe scivere una buona applicazione anche con codice procedurale?
Con tantissima esperienza, piu' che ottime capacità di programmazione e una conoscenza praticamente completa del linguaggio non lo escludo.
Con la OOP ci arrivi prima, puoi non essere il miglior programmatore del mondo e puoi usare le stesse conoscenze su linguaggi differenti.

Re: Manuali sul php

Inviato: martedì 22 aprile 2014, 20:51
da Schiavone
Ok grazie Zoff. Inizio con il procedurale e quando avrò acquisito una certa padronanza passo ad un framework Php.