Newsgroup: it.comp.www.php
Titolo: .....voi programmate tutti in OOP?

Ciao
io saranno 2 anni che programmo in php
ma non ho mai abbracciato la OOP
non lo so' ma quando inizio a leggere qualche articolo di OOP per php
dopo 30 secondi mi viene il sonno....
E cosi' continuo a programmare in stile classico
.....perche' cambiare.....
W LA PIGRIZIA ;)

 W LA PIGRIZIA ;)
La pigrizia, IMO, e` una delle due doti fondamentali del sistemista e del
programmatore. L'altra e` il senso di responsabilita`.
Ma certe volte ti accorgi che fare una classe e lavorare 10 ore adesso,
puo` voler dire risparmiarne 5 per ogni volta che la ricicli, e pensi a
quanto puoi oziare per i prossimi 10-20 progetti... ;)
Bye.

 quanto puoi oziare per i prossimi 10-20 progetti... ;)
parole sante, se permetti !!
;-)))
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

Alessandro Pellizzari ha scritto:

Non vorrei scatenare un flame inutile...
ma mi spieghi che differenza passa tra una classe ed una funzione (dal 
punto di vista pratico)
lavoro 5 minuti e creo una "funzione" che riciclo n volte.. quindi che 
vantaggio ho a scriverre una "classe" (in simil aramaico) che mi 
richiede 10 ore?
Sarà mica un problema di religione??

Una classe è una modellizzazione della realtà, una funzione la puoi
vedere come una caratteristica di quella realtà (detto molto malamente).
La classe "preparo un risotto" sa fare alcune (e solo quelle) cose ma le
fa bene. Sa riempire la pentola, sa accendere il fuoco del fornello, sa
attendere che l'acqua bolla, sa come e quanto riso versare, sa calcolare
il tempo di cottura.
Tutto quello che sa fare potresti ricondurlo a una funzione mentre gli
stati li riconduci a una variabile (o costante). Costante = 100°
(temperatura di ebollizione dell'acqua) variabile = quantità di riso da
cuocere.
Ora...se tu volessi fare tutto senza classi dovresti mettere tutte le
funzioni da qualche parte e soprattutto ricordarti a cosa servono quando
le riclichi, ricordando anche il tipo di risultato che danno per non
fare casino.
Usando le classi invece ogni volta che ci sarà da preparare un risotto
dovrai solo preoccuparti di chiamare la classe e fargli fare le
operazioni. Se devi preparare una pastaasciutta dovrai solo cambiare
l'input che anzichè riso è spaghetti ma la classe SA come fare
praticamente tutto e tu non dovrai preoccuparti di questo.
Se fai tutto con funzioni ti devi ricordare che la funzione "accendi"
l'hai fatta per la pasta, la funzione scola per il riso e quando per
errore modifichi "scola" per adattarla alla nuova oeprazione (pasta
anzichè riso) ti ritrovi che non sai più scolare il riso.
Con le classi invece usi il cosiddetto "sottoclassamento", cioè crei una
sottoclasse che "eredita" conoscenza, metodi e tutto il resto dal
"padre" ed eventualmente specializzi le funzioni (rifai una funzione
sola e sei certo che se usi la classe per il riso ti scola il riso,
altrimenti se usi la classe per la pasta ti scola la pasta :)
OnMac , in data 24/11/2006 00:32 :


 Sarà mica un problema di religione??
No, è che hai un effettivo vantaggio in termini di pulizia e
praticità: una volta che hai scritto una classe abbastanza generica,
le varie istanze e le classi derivate potranno usarne i metodi senza
doverli riscrivere ogni volta. Oltre al fatto che noi esseri umani
percepiamo le cose catalogandole come oggetti, quindi la scrittura del
codice diventa più naturale :). Ti consiglio di documentarti e
iniziare con qualche classicina (ad esempio per gestione di dati). Ti
puo aiutare iniziare ad usare cakephp ( 
http://www.cakephp.org
 ) per
vedere immediatamente il vantaggio della programmazione OOP.

 altrimenti se usi la classe per la pasta ti scola la pasta :)
La tua spiegazione è davvero FENOMENALEEE! :-))
rob4you

Non so se mi prendi in giro o cosa *-)
Ehehehe
Comunque...il tutto è dovuto a 6 anni di programmazione PURA OO
Se invece mi prendi in giro ti dico...prrrrrrrrrrrrrrrrrr
LOL
rob4you , in data 24/11/2006 10:19 :


 Comunque...il tutto è dovuto a 6 anni di programmazione PURA OO
Dal momento che, pur conoscendo la programmazione object-oriented (la 
ho utilizzata in C++), non la uso molto non essendo mai entrato molto 
nei dettagli, e tu invece la usi sempre, volevo chiederti: ma se decidi 
di programmare come fai tu, puramente in OOP, puoi giungere agli 
stessissimi risultati della programmazione tradizionale? Nel senso, se 
usi le classi, non usi MAI (e dico MAI) funzioni fuori da classi?
rob4you

 classi?
Io mischio tranquillamente le due cose, ma in casi abbastanza specifici,
come per esempio la funzione che mi istanzia le classi.
Una volta che sto lavorando sulla classe Pasta (per tornare ad un
bell'esempio :-)) faccio prima a fare una class myPasta extends Pasta
e ci aggiungo assaggia() (il cliente vuole visualizzare anche gli stati
intermedi) piuttosto che fare una funzione esterna che deve istanziare
la classe e mi costringe a ricordarmi in che namespace sto.
C'è anche un altro vantaggio: una volta che sono convinto che
la funzione sia valida faccio cut&paste direttamente nella classe e la
posso applicare quando voglio :-)
-- 
ValeRyo 

 posso applicare quando voglio :-)
Tks! :-)
rob4you

Esatto, non usi mai funzioni fuori classe. Al massimo crei una classe
con una sola funzione (anche se effettivamente ha poco senso).
Usando la programmazione OO giungi agli stessi risultati della
programmazione tradizionale con il vantaggio della più semplice
manutenibilità. Esistono varie altre tecniche oltre la semplice classe
ovviamente (tipo le classi astratte eccetera) ma il risultato è il
medesimo della programmazione tradizionale.
rob4you , in data 24/11/2006 22:25 :


 medesimo della programmazione tradizionale.
Mi sa che prima o poi la programmazione tradizionale sarà sempre meno 
diffusa..... ;-)
rob4you

a me tutta sta pasta e risotto hanno fatto venir fame
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG