Professionalità nel web  Frequentando il forum di joomla.it, ed altri che trattano di joomla, mi è venuto spontaneo fare una riflessione sulle professionalità legate ad internet e sul ruolo che prodotti Open Source come Joomla rivestono nello sviluppo del web. Quindi vorrei cercare di fare un pò di chiarezza su cosa comporta realizzare un sito web e su quali conoscenze è necessario acquisire prima.
Nel panorama delle professionalità che nascono dall'utilizzo della grande rete mondiale due sono quelle che attraggono molto i giovani (e i meno giovani come me): quella del Webmaster, ovvero di colui che gestisce e amministra un sito web, e quella del Web Developer, colui che sviluppa un sito web. Queste due professionalità molto diverse tra loro, a volte, si fondono in una unica entità fisica. In realtà le professionalità che concorrono allo sviluppo di un sito web sono molte di più e non tutte possono essere individuate in un'unica persona, visto che la quantità di conoscenze e competenze necessarie per svolgerle tutte è veramente grande. Esistono anche i Web Writer, che sono responsabili dei contenuti del sito, i Web Designer, che gestiscono l'aspetto grafico del sito, i Security Manager, che si occupano di proteggere il sito dai pericoli del web e molte altre ancora. A tal proposito vorrei citare un interessante articolo pubblicato qualche tempo fa da Punto Informatico. In definitiva dunque, il problema principale da affrontare è l'acquisizione delle conoscenze, competenze e abilità necessarie alla gestione di uno o piú siti web. Insomma non ci si può improvvisare "Web-Tutto" impersonando tutte le professionalità che il mondo del web impone. Questo almeno se si vuole trasformare la propria passione per internet in una vera e propria professione. Il processo di sviluppo Lo sviluppo di un sito web è un processo molto piú complesso di quanto si possa immaginare, ma possiamo sintetizzarlo in quattro fasi: - ideazione
- progettazione
- realizzazione
- marketing
Possiamo rappresentare queste fasi con un'immagine abbastanza esplicativa: Questo schema rappresenta le macro-aree che intervengono nella realizzazione di un sito web e definisce le intersezioni che definiscono attività comuni tra aree diverse che presuppongono l'individuazione di specifiche professionalità che interagiscono tra di loro. Ciò non toglie che alcune di queste professionalità possano essere svolte dalla stessa persona ma l'importante è che questa ne possieda le specifiche conoscenze. Come si vede le quattro fasi principali si suddividono i alcune sotto-fasi che, in alcuni casi, si intersecano tra di loro. Così ad esempio la fase di "definizione dello scopo" del sito web coinvolge le professionalità di chi si occupa dell'ideazione, della progettazione e del marketing oppure la fase di "SEO" (Search Engine Optimization) prevede l'intervento dei progettisti, degli sviluppatori e dei professionisti del marketing. Piccolo glossario dei termini: SEO (Search engine optimization o Search engine optimizator) Pratiche che consentono il cambiamento o la modifica dei codici di pagine web per migliorarne le performance ed il loro ranking nel posizionamento nei risultati di ricerca SERP. Anche l'addetto che pratica tali cambiamenti (Search engine optimizator). SEM (Search engine maketing) Il web marketing rivolto all'utilizzo dei motori di ricerca. Servizi normalmente da parte delle cosiddette SEM agencies o Agenzie SEM nella modifica di contenuti delle pagine web, i loro codici o elementi presenti nei siti e ricerca di termini, parole e frasi chiave utili a coinvolgere nelle ricerche utenti targettizzati. All'interno delle singole aree di intervento le figure professionali di riferimento possono essere diverse: nella fase realizzazione, oltre ai Web Developer che si occupano della realizzazione vera e propria del sito potrebbero esserci dei Web Write che si occupano della redazione dei contenuti e un Web Designer che si occupa della grafica coordinati da un Web Master che gestisce i rapporti interni e fa dialogare gli specialisti con gli utenti. Realizzare un sito web è dunque un procedimento complesso approcciandosi al quale, senza le dovute professionalità, si rischia di ottenere un risultato mediocre se non scarso. Pretendere di conoscere e saper fare tutto da come risultato quello di conoscere bene poche cose. La professione di webmaster, com'era intesa in passato, non esiste più mentre esistono sempre più professionalità specializzate solo in determinati settori dello sviluppo che concorrono tutte al risultato finale. Ecco una breve panoramica delle principali figure professionali più richieste nel web: - Il Product Manager. E' il riferimento per le aziende che ambiscono a fare del web la propria vetrina. Deve saper fare analisi di mercato e progettare soluzioni dedicate in base alle esigenze dei clienti e dare dimostrazione diretta dei prodotti per l'e-business.
- Il Project Manager. Tiene sotto controllo il processo di sviluppo. Il suo obiettivo è far rispettare i tempi e i traguardi fissati. E' lui che tratta con i committenti e gestisce il budget.
- Security Manager: si occupa di proteggere il sito dai pericoli del web: virus e pirati informatici. E' in grado di individuare eventuali intrusioni ed applicare le corrispondenti contromisure, proattive e reattive.
- Web Designer: è l'artista del web. Si occupa dell'aspetto grafico del sito e tiene sotto controllo la semplicità di navigazione. Arricchire le pagine web con animazioni, video e audio, con i piu' aggiornati software.
- Web Developer: si occupa dello sviluppo di applicazioni web, in particolare dello sviluppo del codice di programmazione, dell'ottimizzazione dei database e dei linguaggi di markup.
- Web Master: è la figura di riferimento del lavoro d'équipe. Il suo compito e' gestire i rapporti interni e far dialogare gli specialisti con gli utenti. E' il responsabile dell'architettura e dell'aggiornamento del sito.
- Web Writer: è il responsabile dei contenuti del sito. Deve avere capacità giornalistiche e scrivere i testi che compongono la pagina web. Inoltre, deve monitorare l'impatto della comunicazione scritta, gestendo i contatti e-mail e la rassegna stampa quotidiana, aggiornata con le notizie e i documenti che si trovano online.
- Data Miner o Web surfer: naviga quotidianamente alla ricerca di dati, frugando nei database o curiosando nei newsgroup. Il suo è suo contributo importante per reperire informazioni e tenere aggiornati i contenuti.
- Database Manager: è esperto nella gestione delle banche dati. Assume un ruolo centrale tanto nella progettazione di strutture di dati quanto nella gestione ordinaria dei DB.
- Content packager: cura i contenuti del sito anche attraverso la loro organizzazione grafica. Oltre a un'ottima conoscenza della rete servono: esperienza con il linguaggio Html, i programmi di grafica e altre applicazioni di sviluppo multimediale nel web. ha un ruolo a metà tra un redattore e un grafico multimediale.
Dove si colloca Joomla nel processo di sviluppo di un sito web? Certamente lo possiamo collocare nella fase di realizzazione ed in particolare nelle sotto-fasi di progettazione tecnica, sviluppo e pubblicazione. Essendo Joomla un prodotto efficente e testato con grandi capacità di adattamento all'idea che è alla base dell'intero progetto, grazie anche alle innumerevoli estensioni sviluppate e presenti nella JED (Joomla Extension Directory), le fase di realizzazione tecnica del sito è in gran parte già eseguita. Si tratterà, eventualmente, di individuare le estensioni specifiche che soddisfino particolari esigenze. Ciò non toglie però che l'intero processo di sviluppo di un sito web debba essere rispettato. Il vantaggio è solo nel non dover sviluppare tecnicamente il sito da zero e nel poter implementare le funzionalità del sito attraverso l'installazione di estensioni per Joomla senza dover modificare il codice che è alla base di Joomla. Chiaramente la scelta del template è fondamentale per una buona riuscita del sito. Non sempre i gusti personali sono un buon parametro per scegliere l'aspetto grafico del sito, anzi sono proprio da evitare. Errori in questo aspetto se ne fanno tanti, soprattutto quando non si rispettano i più basilari criteri di Accessibilità ed Usabilità di un sito. Durante la fase progettuale è bene tenere conto di questi due aspetti importantissimi anche perché a posteriori sarebbe molto più complicato. Qualcuno potrebbe obiettare che un sito rispondente ai criteri di usabilità ed accessibilità indicati dal CNIPA (Centro Nazionale per l'Informatica nella Pubblica Amministrazione) e dal Governo Italiano , trasposizione di quelle indicate dal W3C (World Wide Web Consortium), rendano brutto un sito. La risposta è semplice: se il web design sa interpretare bene le indicazioni sull'usabilità e sull'accessibilità ne può uscire un sito gradevole graficamente. Bisogna sempre tenere presente che un sito web non è fatto a nostro uso e consumo ma per il target di utenza a cui è rivolto. Un altro aspetto da tenere in considerazione, e che Joomla non risolve, è quello dei contenuti e dei servizi proposti e che vanno decisi in fase di progettazione. Anche i contenuti devono rispettare delle indicazioni ben precise. Trovo molto interessante il sito di Luisa Carrada quale fonte di ispirazione per la redazione dei contenuti. Scrivere per il web non è cosa facile, bisogna attrarre l'attenzione del navigatore in poche e semplici righe di testo e incuriosirlo al punto da decidere di proseguire nella lettura più attenta dell'articolo. Ma lo sviluppo di un sito web non si ferma alla sola realizzazione. La parte più importante è proprio quella della sua promozione (il marketing) sulla rete mondiale. Questa fase dello sviluppo si occupa sia dell'individuazione del target interessato ai contenuti e servizi che verranno inseriti nel sito sia della sua promozione fuori e dentro internet. A che serve realizzare un sito web se poi nessuno lo visita e, soprattutto, lo utilizza? Chi ad esempio usa gli Strumenti per webmaster di Google o Google Analytics per tenere sotto controllo i propri siti? Analizzare i propri siti con questi due strumenti permette di renderli più appetibili ai motori di ricerca (Google in particolare) e di migliorarne la visibilità sul web. Joomla, come altri CMS, ha sicuramente risolto una serie di problemi a chi, per professione, sviluppa per il web. Ma ha aperto anche la porta verso chi, per diletto o per passione, si avvicina a questo mondo. Il problema è che molte persone, soprattutto i più giovani, dimenticano che prima di affrontare questa professione bisogna necessariamente acquisire un bagaglio di nozioni necessario per lavorare al meglio. Cosa si deve conoscere Visto che parliamo di siti web anzitutto bisognerebbe conoscere come funziona e come è strutturata Internet. Quindi una buona infarinatura sulla teoria delle reti e sui protocolli (in particolare TCP/IP e FTP), su cosa sia un web server, un database server, sui linguaggi utilizzati per lo sviluppo di siti web, può dare un'idea di quale sia. Un buon riferimento per cominciare l'ho trovato su liberliber.it a questo indirizzo. Poi basta usare google. Può sembrare strano iniziare proprio da queste informazioni di base ma molto spesso mi sono capitate persone che non sanno neanche cosa sia il termine URL (Uniform Resource Locator, identifica univocamente l'indirizzo di una risorsa in Internet) e quali processi si attivino dopo la semplice digitazione di una url nella barra degli indirizzi del browser e la pressione del tasto invio della tastiera. Mai sentito parlare di server DNS? Di protocollo HTTP? Reti di computer  Collegare tra loro due o più computer permette di realizzare una rete di computer che possono così inviare e ricevere dati tra di loro. Questo permette quindi a due o più persone di comunicare tra di loro inviandosi documenti, immagini, voce o qualsiasi cosa possa essere trasformata in forma digitale. Le reti di calcolatori hanno una loro classificazione in funzione delle distanze percorse dalle informazioni: si parla di una rete LAN (rete locale di computer) se i computer sono collegati tra loro all'interno di un edificio o di un comprensorio e comunque non oltre alcuni chilometri, si definisce invece una WAN (rete geografica) una rete di computer che non ha alcuna limitazione nella distanza tra due singoli computer. Internet è appunto una WAN, una rete di calcolatori che ricopre l'intero pianeta terra. Questa immagine tratta dal sito TeleGeography Research ci da un'idea di come si presenti la rete internet con le sue dorsali oceaniche in fibra ottica che collegano un continente all'altro, una sorta di geografia di Internet. Ogni computer all'interno di una rete è individuato da un indirizzo numerico univoco: l'indirizzo IP che è rappresentato da una sequenza di quattro numeri (compresi tra 0 e 255) separati da punti, cioè qualcosa come 192.168.1.3, 127.0.0.1, 81.31.152.93. Significa che ad ogni computer viene assegnato un numero di identificazione che lo rende unico (e individuabile) e non ci può essere un altro computer con lo stesso identificativo. Ma gli indirizzi IP sono difficili da ricordare. Chi si ricorderebbe che l'indirizzo 81.31.152.93 corrisponde al sito di joomla.it? In questo ci vendono in aiuto dei server speciali denominati server DNS . Un Domain Name Server conserva al suo interno un database contenente le corrispondenze tra indirizzi IP e i cosiddetti nomi a dominio: una sorta di nomi mnemonici da ricordare più facilmente. Questi nomi sono organizzati in un'apposita gerarchia che prevede diversi livelli di definizione. A livello più alto ci sono i Top Level Domain Name (TLD) o Nomi di Dominio di Primo Livello. Questi vengono assegnati da un organismo internazionale denominato ICANN e possono rappresentare una nazione (.it per l'Italia, .dr per la Germania, .us per gli Stati Uniti, ecc.) od una “classe” di organizzazioni (.com per le organizzazioni di tipo commerciale, .net per le organizzazioni che gestiscono reti di computer, ecc.). Al livello immediatamente successivo ci sono i Second Level Domain Name (SLD), o Nomi di Dominio di Secondo Livello. Questi vengono assegnati dalle Registration Authority (RA), cioè le autorità di registrazione dei nomi a livello nazionale. In Italia, la registration authority è rappresentata da un ufficio dell'istituto di Informatica e Telematica del CNR di Pisa: il NIC . Questi SLD hanno forme come: joomla.it, fiat.net, joomlaitalia.it, forzearmate.org, ecc. Al terzo livello ed ai successivi, ci sono nomi che vengono assegnati in piena libertà dal titolare del SLD, come www.joomla.it o ftp.fiat.it. Questi nomi di terzo livello vengo usati, ad esempio, per identificare singoli computer connessi ad una rete aziendale. Il nome “www”, ad esempio, identifica abitualmente un server web. Il risultato finale è un nome composto da due o tre sezioni, ognuna delle quali gestita da un ente diverso. La sintassi di questo nome ripercorre, all'inverso, la gerarchia degli enti di assegnazione: - terzolivello.secondolivello.primolivello (www.joomla.it)
- secondolivello.primolivello (joomla.it)
Da notare che un singolo computer può rispondere a più nomi, anche completamente indipendenti l'uno dall'altro e gestiti da enti diversi. Ad esempio, ad uno stesso server è possibile assegnare i nomi www.joomla.it e ftp.joomla.it. In questo modo è possibile gestire due diversi servizi (server web e server FTP) sullo stesso server. Inoltre lo stesso server può ospitare i server web di molte aziende e rispondere a molti nomi diversi: in questo caso si parla di hosting (alloggio). Non esiste quindi una corrispondenza biunivoca tra un nome di dominio di terzo livello (www.joomla.it) ed un computer fisico. Per inciso, non esiste nemmeno una corrispondenza biunivoca tra l'indirizzo IP e la macchina. Ogni PC può rispondere a più indirizzi IP ed un solo indirizzo IP può essere associato a più macchine (usando varie tecniche). Nell'immagine quì riportata ho descritto ciò che avviene dal momento in cui digitiamo nel browser l'indirizzo www.joomla.it fino alla visualizzazione della home page del sito. Tutto si gioca sui server DNS che vengono interrogati e che devono risolvere l'url nel corrispondente indirizzo IP. Il fatidico errore 404 che ogni tanto ci capita di vedere al posto della home page di un sito web è dovuto proprio all'impossibilità, da parte dei server DNS interpellati, di trovare questa corrispondenza. E quando invece sono sicuro che un sito esista e invece mi viene riestituita una pagina di errore 404?? Questo capita quando il server DNS che viene interrogato non ha aggiornato le sue tabelle di corrispondenza url-ip. I server DNS sono collegati fra di loro e si aggiornano periodicamente. Il trucco in questo caso è quello di cambiare gli indirizzi (primario e secondario) dei DNS che sono memorizzati nelle impostazioni della scheda di rete. Personalmente uso OpenDNS (IP 208.67.222.222 e 208.67.220.220) che è un servizio di DNS pubblico. Basta fare una ricerca con google per trovare diversi altri server DNS sia in Italia che all'estero.
Strategie per la scelta di un nome a dominio Ma come scegliere un nome a dominio? La scelta del nome di un dominio adeguato per un sito web è un aspetto di grande importanza che non si dovrebbe ignorare se si desidera che il proprio progetto abbia il maggior impatto possibile tra gli internauti. Ecco alcune indicazioni da tenere presente quando si sceglie il nome a dominio: - Conoscere le caratteristiche della propria nicchia. Informarsi sulle preferenze, costumi, gusti, ecc. degli utenti a cui sarà orientato il nostro progetto. Tanto più il nome del dominio si avvicinerà alle necessità e caratteristiche degli utenti target, maggiore sarà l’efficacia nel catturare nuovi lettori;
- Essere originali. La creatività e l’ingegno possono fare la differenza. Bisogna dunque evitare di copiare prendere ispirazione dai nomi dei nostri diretti competitors e fare in modo che il nome sia unico e fiammante. Il tempo perso nel trovare la scelta giusta verrà ricompensato su lunga distanza dall'incremento dei lettori;
- Imparare dagli esperti. Visitare pagine web di differenti autori che abbiano raggiunto un buon successo in rete e porre attenzione sul nome del dominio, sulla sua struttura, sulla composizione, sulla relazione con i contenuti proposti, ecc.
- Brevità. Il nome deve rappresentare qualcosa che richiami l’attenzione e che soprattutto sia facile da ricordare. Può essere formato da una o più parole, ma suggerisco che sia costituito da 3 a 7 caratteri;
- Non dimenticarsi delle parole chiave. Oltre a quanto detto fin'ora, l'ideale sarebbe che il nome del dominio contenesse una o più parole chiave relazionate con il contenuto presentato nel sito al fine di attrarre la maggior quantità di traffico proveniente dai motori di ricerca;
- Sfruttare i generatori di nomi. In molti casi i generatori di nomi di domini non sono soliti offrire un solo titolo per il nostro sito, però possono essere d’ausilio per trovare la giusta ispirazione realizzando la combinazione di migliaia di parole con un solo click. Tra i tanti vi suggerisco: Dot-omator, Nameboy, Makewords, Domain Fellow, Lightsphere Web 2.0. (fonte: Brain Essence )
Servizio di Hosting Come già detto un servizio di Hosting permette di memorizzare le pagine di uno o più siti web su un server per renderle disponibili alla consultazione sulla rete Internet. Allo stato pratico un ISP (Internet Service Provider - Fornitore di servizi Internet) mette a disposizione dei clienti una porzione di spazio sui dischi di un web server ed una serie di servizi accessori (email, database, linguaggi, ecc.) utili allo sviluppo di un sito web. Non mi dilungherò sulle caratteristiche che deve avere un servizio di hosting per Joomla perchè la rete è piena di queste informazioni ma su un concetto è bene fare chiarezza: hosting condiviso e hosting dedicato. In molti casi il primo tipo è gratuito o a basso costo, serve infatti come trampolino di lancio per l'ISP al fine di far saggiare la qualità dei servizi ai propri clienti. Ma ha un grosso difetto: tutti i siti web condividono le stesse risorse dello stesso server quindi il livello di sicurezza del server che li ospita è pari al grado di sicurezza del più insicuro tra i singoli siti web. Ecco perchè se un sito risulta poco sicuro (ad esempio perchè non si è mai aggiornato il core di Joomla) o addirittura compromesso dall'azione di un hacker i gestori del servizio lo chiudono (anche senza preavviso) garantendo così un livello accettabile di sicurezza. Questo comportamento non è da condannare, anzi. Lo ritengo un buon indice di attenzione nei confronti di tutti i clienti che usano le risorse condivise. Nel secondo caso (hosting dedicato) le risorse del server sono garantite al singolo utente e quindi la sicurezza del suo sito non grava su quella degli altri. Chiaramente la differenza tra hosting dedicato e condiviso sta anche nelle prestazioni che i due sistemi presentano; state pur certi che se il vostro sito ha un numero di accessi elevato (e il fornitore di hosting non vi ha dato nessuna limitazione di banda) sarà lo stesso fornitore a "consigliarvi" di cambiare il vostro profilo per passare ad un servizio dedicato. Questo perchè state riducendo una delle risorse fondamentali per i siti web: il canale di comunicazione tra il server e la rete internet. Un aumento del traffico sul vostro sito ridurrà la capacità degli altri siti di essere raggiunti e consultati dagli internauti. Un altro importante indicatore della qualità di un servizio di hosting è l'assistenza agli utenti. Se si incontrano dei problemi, soprattutto durante la fase iniziale di pubblicazione del sito web, è importante avere un servizio di assistenza efficace ed efficiente. Non abbiate timore di cambiare servizio di hosting nel caso questo risulti carente nel risolvere i problemi con chiarezza e velocità: state pagando anche quello ed è loro dovere fornirvi l'assistenza che vi serve. Architettura per lo sviluppo Dal momento che un sito realizzato in Joomla necessita, oltre che di un web server Linux/Apache, di un interprete PHP ver. 5 o superiore e di un DBMS (Database Management System) MySQL è indispensabile conoscere: Ovviamente tutta l'architettura per far funzionare un sito web è già presente sui server che li ospitano. Ma se vogliamo approfondire la gestione di ognuno di questi elementi possiamo costruirci il nostro ambiente di sviluppo sul nostro PC, meglio se con sistema operativo Linux. Il web server L'installazione dell'ambiente di sviluppo sotto Linux è altrettanto semplice ma varia a seconda della distribuzione (distro) di Linux. Se utilizzate Ubuntu potete usufruire delle guide della comunità di ubuntu-it.org per server web Apache e php. O se si desidera installare un unico ambiente di sviluppo consiglio la guida a LAMP (anche se troverete scritto XAMPP) sempre della comunità di ubuntu-it.org. Il consiglio di utilizzare Linux Ubuntu per lo sviluppo di siti web in joomla nasce dalla mia esperienza personale: è stata la prima distribuzione Linux che ho installato e sulla quale ho studiato Linux per parecchio tempo. Ma consiglio Linux anche per due motivi: il primo è che Joomla nasce e da il meglio di se in ambiente Linux e il secondo è che molte problematiche che si dovranno affrotare con i server remoti (che saranno anch'essi Linux) cominceremo ad esaminarle e risolverle durante il lavoro di sviluppo. Per chi avesse delle remore sull'uso di Linux Ubuntu è bene chiarire che l'uso di questa distro è diventato sempre più user-friendly. Esistono naturalmente altre distribuzioni di Linux ed ognuno è libero di usare quella che più gli piace. Su questo sito trovate un elenco di (quasi) tutte le distribuzioni di Linux ma il mio consiglio è quello di utilizzare una distro che venga aggiornata periodicamente e che si appoggi ad una comunità che ne segua lo sviluppo e sia in grado di darvi una mano in caso di difficoltà. Apache HTTP Server è il software modulare sviluppato nell'ambito del Progetto Apache dalla Apache software fundation . E' un software Open Source in grado di funzionare sia su sistemi operativi Linux che Windows. La sua funzione è quella di elaborare pagine web e generare dinamicamente contenuti. Le semplici pagine .htm non necessitano di particolari interventi da parte del Web server, il loro codice viene interpretato direttamente dal browser del computer client e per questo l'html è definito come un linguaggio client side. Le pagine .php o .asp, contengono dei codici destinati a produrre dei comportamenti e a generare dinamicamente html, perchè ciò sia possibile è necessaria la mediazione di un Web server; PHP e ASP vengono quindi definiti linguaggi server side. Alcuni riferimenti utili alla configurazione di un Web Server Apache li trovate su queste guide: I Linguaggi di programmazione Per quanto riguarda la programmazione in PHP questa è necessaria sia se si vuole sviluppare nuove estensioni per Joomla sia che si voglia modificarne di esistenti. Nello sviluppo invece di template per Joomla sono sufficienti le basi di programmazione visto che di codice php nei template ce n'è veramente poco. Per iniziare lo studio del PHP è necessario affrontare principalmente due argomenti: il concetto di programmazione server-side e quello della programmazione web. Per iniziare voglio segnalare, oltre alla guida di html.it, anche la guida a PHP di phpnews.it. Per approfondire invece il concetto di programmazione server-side posso segnalare questa guida. Per preparare il proprio computer allo sviluppo in php (e dunque per Joomla) sono necessarie due cose: - un editor di testo adatto a php. Io consiglio PHP Eclipse per Linux o Eclipse for Lamp sia per Linux che per Windows.
- L'ambiente di sviluppo comprensivo di un web server Apache, l'interprete php e il DBMS MySQL. Una guida per l'installazione dell'ambiente di sviluppo in windows la trovate a questo link .
Il Database Management System Un DBMS (Database Management System) è l'insieme dei software necessari a gestire e manipolare i dati memorizzati in uno o più database (basi di dati). Il termine database indica l'insieme dei dati, organizzati e strutturati, sui quali è possibile effettuare operazioni di inserimento, ricerca, cancellazione e aggiornamento utilizzando i programmi disponibili in un DBMS. Le base di dati, oltre ai dati veri e propri, deve contenere anche le informazioni sulle loro rappresentazioni e sulle relazioni che li legano, in questo caso parliamo di database relazionali ( RDBMS ). In un database due sono gli elementi fondamentali: le informazioni e i dati. I dati da soli non hanno alcun significato e non forniscono informazioni. Al contrario se vengono interpretati in un determinato contesto e collegati tra di loro opportunamente forniscono informazioni. Il singolo dato viene dunque rappresentato da un campo (che ne determina la tipologia e lo contiene) e l'insieme omogeneo dei singoli campi viene raggruppato in una struttura chiamata record. L'insieme omogeneo dei record viene denominato tabella. Per fare un esempio esaminiamo la tabella jos_users del database di Joomla. Nell'immagine potete vedere la struttura del singolo record della tabella con l'elenco dei singoli campi. Ogni campo contiene un singolo dato (il campo name il nome dell'utente, il campo email l'indirizzo di email, ecc.) e ne specifica il tipo. I campi di tipo varchar e text contengono caratteri alfanumerici (numeri e leggere), i campi di tipo datetime contengono date e orari, i campi di tipo int e tinyint contengono numeri. Per un approfondimento sui tipi di campi consiglio di leggere questa guida di html.it I dati contenuti in un database possono essere manipolati utilizzando un linguaggio orientato proprio alla gestione dei database. Questo linguaggio è l' SQL (Stuctured Query Language) e si distingue in due categorie: - linguaggio per la definizione dei dati (DDL - Data Definition Language)
- linguaggio per la manipolazione dei dati (DML - Data Manupulation Language)
- linguaggio per la definizione dei permessi di accesso ai dati (DCL = Data Control Language)
Con le istruzioni del primo tipo possiamo definire e creare le strutture che ospiteranno i dati. Ad esempio la seguente istruzione del linguaggio SQL permette di creare un database: CREATE DATABASE joomla_DB con la seguente invece si elimina un database: DROP DATABASE joomla_DB mentre con la seguente istruzione possiamo creare una tabella: CREATE TABLE jos_users id int(11), name varchar(255), username varchar(150), email varchar(100), ..... ; Con le istruzioni del secondo tipo possiamo interrogare, cancellare, aggiungere e aggiornare i dati all'interno del database. Un esempio è il seguente che permette di selezionare un gruppo di record all'interno della tabella jos_user filtrandoli i base al tipo di utente (Registered): SELECT_name, username FROM jos_users WHERE usertype = 'Registered'; L'istruzione SQL è facilmente leggibile: Seleziona (SELECT) i campi name e username dalla tabella (FROM) jos_users per tutti quei record (WHERE) per i quali il campo usertype è uguale a 'Registered'. Attenzione però che un DBMS ha la caratteristica di poter assegnare particolari diritti agli utenti che vi accedono. Quando acquistate un servizio di hosting nel quale è compreso un database sappiate che potrete eseguire solo alcuni tipi di istruzioni SQL. Molti servizi di hosting, soprattutto se gratuiti, impediscono agli utenti di creare o cancellare un database. Quindi non vi allarmate se, eseguendo l'importazione dei dati di un database, il DBMS vi risponde con un messaggio di errore del tipo: "Impossibile creare il database". Probabilmente nello script che avete chiesto di eseguire è presente un'istruzione CREATE DATABASE di cui non vi è permessa l'esecuzione. La maggior parte degli errori restituiti da MySQL possono essere risolti semplicemente conoscendo MySQL stesso e il linguaggio SQL. E per farlo non è necessario essere un esperto di Database Administration, basta cercare in rete e studiare una delle innumerevoli quide a MySQL, come quella presente sul sito di html.it Conclusione. Quello che mi ha spinto a scrivere questo articolo è una considerazione fatta da una mia e-friend (una volta si chiamavano amici di penna) e che condivido pienamente: ... ormai tutti vogliono fare i siti e soprattutto si vantano di saper fare i siti, ma tra il fare un sito personale per gioco e un sito professionale (per esempio per un negozio, una catena di alberghi, un'associazione) soprattutto dinamico e in continua evoluzione (sia di contenuti sia di codice) c'è di mezzo l'Everest (ghiacciato). Molte delle informazioni contenute in questo articolo sono dovute al frutto delle mie conoscenze professionali, molte altre sono state reperite dalla rete usando semplicemente google.it. Internet è una grande fonte di informazioni e tutto è alla portata di un click. Ma bisogna avere la pazienza di cercarle, analizzarle e scartare quelle non attinenti o interessanti. Questo è un uso intelligente della rete. Se, leggendo questo articolo, non vi è venuta voglia di approfondire uno o più degli argomenti trattati allora forse è il caso che lasciate perdere lo sviluppo di siti web e torniate a usare Internet come semplici internauti. 
|