Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18

    [Jsp] Database e programmazione OO: come? quando?

    Non so sinceramente se sia la sezione più adatta per porre questa domanda e in caso contrario mi scuso sin d'ora.

    Premetto che non ho grande esperienza di programmazione OO e sopratutto non l'ho mai applicata ad un contesto web. Ho programmato a livello amatoriale in Php fino ad ora ma anche li mai applicata la programmazione ad oggetti.
    Fermatemi se dico castronerie ^^
    Non vorrei per ora entrare in discorsi tecnici ma fare solo un paio di domande teoriche. Vorrei sfruttare uno scenario di esempio per farmi capire e comprendere meglio eventuali risposte.

    Faccio una piccola premessa basa sulla mia poca esperienza. Per come ho programmato fino ad ora un normale flusso di una pagina web da me costruita è cosi:
    Pagina web costruita dinamicamente e contenente un form -> submit/controllo dati/gestione errori -> registrazione di informazioni in un DB(mysql).
    E viceversa per il recupero dati: Select vari dal Db -> costruzione della pagina con le informazioni richieste

    Utilizzando una programmazione ad oggetti cosa cambierebbe? Mi risulta complicato il trovare il punto in cui si utilizzerebbero gli oggetti all'interno dei flussi sopra citati(ammesso che si possa applicare il discorso a quei flussi).

    Venendo all'esempio pratico e semplificando al massimo lo scenario:
    Portale web aziendale interno(quindi non e-commerce) per monitorare gli ordini con una struttura contenente al 95% form e di fatto svolgendo per lo più interrogazioni con un database.

    La domanda è la seguente:
    Non avendo grosse problematiche di spreco risorse(non deve fare niente di mirabolante seppur poi ovviamente va oltre la semplice gestione di ordini) ha senso programmarlo ad oggetti? So che in generale uno non deve pensare a quello che è ora ma anche agli sviluppi futuri ma teoricamente parlando ipotizziamo che rimanga cosi una volta realizzato.

    Grazie in anticipo per chi volesse darmi delucidazioni e/o rimandarmi a guide che mi son perso(giuro ho cercato prima di postare ^^).

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    E' un discorso complesso e fatto nel posto sbagliato..
    le jsp non centrano nulla con javascript, ma con java!

    Non avendo grosse problematiche di spreco risorse
    La programmazione ha poco a che fare con lo spreco di risorse, anzi, di solito programmare ad oggetti significa sprecare più risorse..

    I vantaggi sono altri, ma ci sono miliardi di guide che ne parlano meglio di quando potrei fare io.
    Riusabilità, pulizia del codice,... Tenta ancora, magari nella sezione dedicata a java. Le pillole dovrebbero fare al caso tuo.

    Le jsp rispetto a php "impongono" un certo rispetto del modello MVC (model vista control). In verità si possono fare porcate anche con le jsp e si possono fare cose carine anche con php, visto che dalla versione 5 anche lui è a oggetti.

    Java è indicato per progetti complessi, con richieste di elevata sicurezza, di solito viene usato in ambito bancario. Difficilmente troverai una applicazione di home-banking in php.

    Io ti consiglierei di continuare a usare il php.. ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    In effetti, hai sbagliato la sezione, dovevi postare nel forum di Programmazione.

    In attesa che ti spostino, vedo di darti un paio di dritte:

    La Programmazione Orientata ad Oggetti è nata come uno specifico bisogno dei programmatori, i quali, in un universo di codice, non sto scherzando, se vedi alcuni programmi di una certa entità, non riuscivano più a districarsi senza uno strumento che si occupasse di gestire le strutture dei dati a basso livello, con allocazione di memoria, gestione puntatori e cose simili.

    Per questo motivo, sono nati dei linguaggi come Java, Objective-C, C#. Anche Python, PHP ad Oggetti, JSP ed ASP.NET.

    Ora, quali sono i principali vantaggi?

    In generale, un linguaggio ad oggetti permette di creare un costrutto di nome classe la quale è una specie di scatola con dentro delle variabili, che possono essere sia oggetti, sia tipi di dati (interi, booleani e così via), e offre all'ESTERNO, una serie di funzioni, chiamati metodi. Questi metodi, se sono pubblici, vengono visti e possono essere chiamati dall'esterno della classe, la metafora più utilizzata è quella di una serie di pulsanti, attorno alla scatola, infatti possono essere premuti, ma l'utilizzatore non saprà mai cosa c'è dentro la scatola. Questo concetto si chiama incapsulazione, ovvero racchiudere il codice che viene eseguito all'interno della scatola, lasciando che l'utilizzatore veda soltanto il metodo (l'interruttore) che devi chiamare.

    Un oggetto è un istanza, ovvero è come prendere un progetto (la nostra classe) e metterlo in produzione, creando l'oggetto, appunto, che il progetto descrive. In quanto software, l'istanza occupa una certa porzione di memoria alla quale possiamo accedere tramite il reference, che punta alla porzione di memoria che contiene i dati dell'oggetto.
    Il reference è, a tutti gli effetti, quello che andiamo a manipolare di un oggetto, infatti, quando facciamo:

    Codice PHP:
    Object obj = new Object(); 
    in "obj" on c'è l'oggetto, ma il reference alla nuova porzione di memoria dove l'oggetto appena istanziato è stato creato.
    Quento introduce un nuovo aspetto: la manipolazione degli oggetti nel metodi.
    Immagina di passare ad una funzione, o metodo, un tipo:

    Codice PHP:
    int a 0;
    myFunction(a); 
    ora, se all'interno della funzione capita:

    Codice PHP:
    function myFunction(a)
    {
     
    1;

    all'esterno della stessa, il valore non verrà modificato, infatti:

    Codice PHP:
    int a 0;
    myFunction(a);
    print (
    a); //Verrà stampato 0 
    I reference, al contrario, funzionano, in questo senso, come i puntatori del buon vecchio C ansi.

    Infatti:

    Codice PHP:
    //Metti di avere un variabile int a =0; ed un metodo add(int i) che esegue  a = a + 1; nella classe Classe1
    Classe1 classe = new Classe1();

    classe.add(11); 
    se ora stampo classe.a, otterrò 11.
    Allo stesso tempo, se passo il reference ad un metodo, lavorerò sempre sullo stesso oggetto, proprio perché facendo

    Codice PHP:
    Object obj = new Object(); //Creo un nuovo oggetto in una nuova locazione di memoria.
    Object obj1 obj//NON creo un nuovo oggetto, solo copio il reference dell'oggetto precedente 
    i due reference punteranno al medesimo oggetto. Lo stesso discorso, se passo il reference ad un metodo, le modifiche applicate all'oggetto verranno viste anche dall'esterno.

    L'ultimo, anche se non d'importanza, aspetto del linguaggio ad oggetti di cui parlerò è l'ereditarietà:
    L'idea di base è quella di creare delle categorie, per fare un esempio, creo la classe Veicolo, che rappresenta un generale veicolo.

    Codice PHP:
    public class Veicolo{
       private 
    String targa;
       private 
    double altezzalunghezzalarghezzapeso;
       public 
    Veicolo(targa){
          
    this.targa targa;
       }
       public 
    void setMisure(double altdouble lngdouble lrgdouble ps)
       {
          
    this.altezza alt;
          
    this.lunghezza lng;
          
    this.larghezza lrg;
          
    this.peso ps;
       }
       public 
    String getTarga(){
          return 
    this.targa;
       }

    Questa classe definisce una serie di attributi (targa, altezza, larghezza, lunghezza, peso), e due metodi, più il costruttore, un metodo per settare i dati ed un metodo per richiamare la targa.

    Questa classe può essere usata da un altra, tipo la classe Automobile, o Camion, o Moto, in questo modo:

    Codice PHP:
    public class Automobile extends Veicolo{
       private 
    String modello;
       public 
    Automobile(String targaString modello)
       {
          
    super(targa);
          
    this.modello modello;
       }

    Ora un oggetto di tipo Automobile avrà tutti i metodi e gli attributi di Veicolo, in più quelli definiti in Automobile, in questo modo è possibile definire delle macro classi con le funzionalità base, più delle altre classi che possono estendere la macro e specializzarla in quello che gli serve.

    Spero di averti dato una minima idea di quello che la programmazione ad oggetti permette di fare.
    Concludo dicendo che il massimo di un programma ad oggetti sarebbe quello di creare una specie di struttura composta da una serie di oggetti che interagiscono tra di loro, senza preoccuparsi di quello che ciascuno fa, questa è l'idea dalla quale è nato il linguaggio ad oggetti.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18
    Ringrazio per le risposte innanzitutto. Se è vero che non ho grande esperienza è vero anche che almeno la teoria in piccola parte l'ho affrontata, quindi se non altro ho capito senza problemi le vostre risposte.

    Avevo postato nella sezione jsp per il semplice motivo che l'applicazione di questo discorso mi interessava per il web.
    Rinnovo la mia domanda: qualcosa sa spiegarmi, ammesso che si possa fare, come interagire tra oggetti e DB?
    A logica mi verrebbe da dire: creo un oggetto, ci faccio le mie cose e poi se mi serve registro i suoi attributi in un DB. E viceversa prendo le cose dal DB, creo un oggetto e gli inizializzo gli attributi con le info del Db.
    Ma a che pro? E' effettivamente un discorso che applicato ad un contesto cosi semplificato è superfluo o mi perso qualcosa io?

  5. #5
    JDBC non ti dice niente?

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Avevo postato nella sezione jsp
    javascript (che è la sezione in cui avevi postato la prima volta) non ha nulla a che fare con jsp...


    Ancora una volta... non ho le competenze per darti una risposta precisa, però c'è un prodotto opensource che sfrutta la programmazione ad oggetti per facilitare l'accesso a un database: hibernate.
    Se hai voglia di perdere qualche settimana puoi andare sul suo sito e vedere di persona cosa può esser fatto con gli oggetti.

    Altrimenti puoi legerti questo che di certo è più breve: http://it.wikipedia.org/wiki/Hibernate

    In sostanza, tutto quello che fai con gli oggetti lo puoi fare anche senza oggetti, solo che dal punto di vista del programmatore può essere più complicato.

    Ti faccio un esempio, supponi di avere una tabella 'auto'. Crei un oggetto auto (inteso come tipo di dato) con tutti i campi necessari e un metodo 'inserisci'.
    se devi inserire una riga nella tabella puoi instanziare un oggetto 'auto' e poi chiamare il metodo 'inserisci'. Se non usassi un linguaggio ad oggetti dovresti ripetere ogni volta la query oppure chiamare una funzione messa chissà dove.
    Così invece hai il tuo bel oggetto auto, e la funzione che inserisce l'auto è definita all'interno dell'oggetto auto.
    Spero solo che questo non sia l'esempio più stupido che potevo fare..
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18
    Originariamente inviato da artorius
    JDBC non ti dice niente?
    Eh è proprio quello il problema. Rifacendomi all'esperienza(minima) di programmazione in php mi verrebbe da utilizzare jdbc semplicemente come tramite per connettere la pagina java con il database che poi è quello che la parola Java database Connectivity dovrebbe voler dire.
    La mia richiesta era mirata a sapere se per un contesto semplice possa utilizzare codice java come facevo prima col il php senza dover programmare ad oggetti.
    Certo a questo punto mi verrebbe da dire: perchè mi devo impelagare con jsp se non intendo programmare ad oggetti(fermo restando che potrei programmare ad oggetti pure col php)?
    Volevo semplicemente una conferma su cosa mi convenisse scegliere per le mie esigenze, ma allo stesso tempo visto che ormai c'ero mi sarebbe piaciuto metter mano su qualche esempio di programmazione ad oggetti e utilizzo di questi ultimi con un db.

    Eh si scusate ho fatto un po di confusione tra jsp e javascript da li l'erronea sezione del post ^^

    Ringrazio cmq tutti

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    18
    Originariamente inviato da Pastore12
    Ti faccio un esempio, supponi di avere una tabella 'auto'. Crei un oggetto auto (inteso come tipo di dato) con tutti i campi necessari e un metodo 'inserisci'.
    se devi inserire una riga nella tabella puoi instanziare un oggetto 'auto' e poi chiamare il metodo 'inserisci'. Se non usassi un linguaggio ad oggetti dovresti ripetere ogni volta la query oppure chiamare una funzione messa chissà dove.
    Così invece hai il tuo bel oggetto auto, e la funzione che inserisce l'auto è definita all'interno dell'oggetto auto.
    Spero solo che questo non sia l'esempio più stupido che potevo fare..
    Ecco già questo mi da un'idea

  9. #9
    Originariamente inviato da Salazar
    Eh è proprio quello il problema. Rifacendomi all'esperienza(minima) di programmazione in php mi verrebbe da utilizzare jdbc semplicemente come tramite per connettere la pagina java con il database che poi è quello che la parola Java database Connectivity dovrebbe voler dire.
    La mia richiesta era mirata a sapere se per un contesto semplice possa utilizzare codice java come facevo prima col il php senza dover programmare ad oggetti.
    No, Java è un linguaggio ad Oggetti e deve essere usato ad Oggetto

    Certo a questo punto mi verrebbe da dire: perchè mi devo impelagare con jsp se non intendo programmare ad oggetti(fermo restando che potrei programmare ad oggetti pure col php)?
    Volevo semplicemente una conferma su cosa mi convenisse scegliere per le mie esigenze, ma allo stesso tempo visto che ormai c'ero mi sarebbe piaciuto metter mano su qualche esempio di programmazione ad oggetti e utilizzo di questi ultimi con un db.
    Mmm, francamente non so se JSP può essere estrapolato dal linguaggio ad oggetti, dato che non lo conosco, ma, secondo me, è una buona occasione di studiare quello che è, a tutti gli effetti, il metodo di programmazione professionale più usato la Programmazione ad Oggetti.
    I DON'T Double Click!

  10. #10
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Io con le jsp ci lavoro.. in condizioni precarie ed è uno schifo..
    In linea teorica una jsp non dovrebbe discostarsi molto da una una pagina html, come stile. Dovrebbe essere una pagina html con dei tag "strani" come le jstl, ma non ci si dovrebbe vedere dentro un classico ciclo di for con tanto di parentesi.. La jsp sarebbe la "vista" del modello mvc e non ci dovrebbero essere calcoli troppo complicati. Quelli si dovrebbero fare nelle servlet o a livello ancora più "basso".
    In realtà chi scrive le jsp è spesso vincolato, nel senso che l'architettura in cui deve operare non gli permette di accedere neppure alle servlet e ti guardano male se provi a fare un tuo bean... Quindi tutto quello che puoi fare lo devi fare nelle jsp, che diventano molto simili alle pagine php di un principiante: incasinate e assurdamente incomprensibili.
    Di sicuro le jsp non sono la cosa meglio riuscita di java...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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.