Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Delucidazione sulla OOP

    Ciao a tutti, lo so...sono l' uomo delle delucidazioni
    Ultimamente mi sono un po' avvicinato alla OOP (Programmazione orientata agli oggetti).
    Da autodidatta ho le idee un po' confuse. Volevo chiedere a chi è più esperto di me (non ci vuole tanto eh!) secondo voi, quando si sviluppa un' applicazione web, è sempre bene utilizzarla? A me è capitato spesso di creare delle procedure (già la parola credo esca dal concetto di OOP) dove tramite moduli si permette all' utente di inserire dati nel db o visualizzarli, manipolarli ecc ecc, usando appunto una metodo procedurale e devo dire che per quel poco che conosco la OOP mi da l' idea che non può esistere una senza l' altra. Cosa ne pensate?

  2. #2
    Come ti risponderebbero in molti, "quello che fai in 5 minuti col 'procedurale' lo fai in due ore con l'OOP", questo perchè quando non fai piu uno script ma un insieme di oggetti che cooperano per l'ottenimento di una funzionalità, i concetti si complicano assai. Per questo suggerisco sempre di non partire da 0 con l'oop ma con frameworks o tools fortemente iorientati a questo paradigma. Il resto è tanta teoria e tanta pratica. Considera cmq che in PHP e per il discorso "siti web", problematiche e tematiche sono molto limitate visto la natura con qui PHP stesso gestisce le richieste http e i webserver a supporto, quindi banalmente arrivi ad usare mille e mille volte l'mvc e possibilmente framework per la persistenza come doctrine (che incorpora decine di design patterns specifichi per la persistenza e altre problematiche).

    Comunque la differenza sta tutta qui: il procedurale prevede una sequenza ordinata di passi per la realizzazione di una funzionalità, l'oop prevede una cooperazione tra oggetti per esprimere gli stessi passi. I vantaggi sono: riutilizzo del codice alto e facile manutenzione del medesimo; gli svantaggi sono prettamente uno: in oop è molto piu facile fare casini e non riuscire a mettere toppe a programmazione fatta male, quindi richiede molto piu tempo e piu conoscenza di quello che si sta facendo.

    Suggerimento: non fare come tutti che prendi e parti a fare un "framework" per la gestione della persistenza dei dati, è in assoluto la cosa piu complessa e difficile che ti possa venire in mente ( a meno di non accettare delle limitazioni pesanti )

    ihmo ovviamente
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    quindi come mi consiglieresti di procedere se avessi voglia di programmare in OOP? Cominciare con una classe generica e piano piano sviluppare classi un po' più dedicate? E nel caso sparirebbe proprio la programmazione procedurale?

  4. #4
    Parti dalla teoria altrimenti che vuoi fare? la classica classe:

    Codice PHP:

    class Person{
    public function 
    say(){ return 'hello I am a person'; }
    }

    class 
    Man extends Person{
    public function 
    say(){ return 'hello I am a man'; }
    }

    class 
    Gay extends Man{
    public function 
    say(){ return 'hello I am happy'; }

    studia la teoria e poi vedi di applicare la teoria ad un progetto che magari hai già realizzato "alla vecchia maniera" e che possibilmente sia facile
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Pensa che da qualche tempo ho in mano un gestionale fatto in PHP che usa la OOP e mi è stato detto di continuare ad utilizzarla per creare le funzioni nuove. Il risultato è che continuo a fare classi su classi e mi pare di essere a fare il procedurale nella OOP
    Grazie per i consigli

  6. #6
    questo perchè non hai alle spalle la teoria o ne hai molto poca. Fare una classe è banale, ma se la classe è solo un modo "figo" di scrivere una "function" globale, allora l'oop perde di senso
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.