Bookmark and Share
 Programmare nel 2008

Programmazione Tuesday 26 February 2008 alle 08:00

Amo programmare, amo scoprire le nuove tecniche di programmazione, ma ho perso un po’ l’abitudine a causa di uno standard troppo radicato e costituzionale e il poco tempo a disposizione per applicarmi come dovrei a quello che era il mio passatempo preferito: la programmazione.

Ed oggi si parla a sigle, come negli SMS dei ragazzini, perchè di tempo, ce n’è sempre meno: OOP, ORM, RAD, DRY, KISS, TDD, MVC, YAML, PEAR.

Ho cominciato a programmare a scuola, per gioco, con Pascal della Borland, ottimo banale linguaggio per insegnare i principi della programmazione a tutti e in poco tempo: ero al liceo scientifico. Li mi divertii anche a programmare la calcolatrice di Marco, potente calcolatrice della Sharp con area per i grafici, in Basic, per risolvere i compiti in maniera più rapida (anche se con un metodo un po’ falso!).

Mi dilettai poi con Microsoft Visual Basic per gestire l’interfacciamento con un lettore di schede magnetiche (di cui andai a scoprirne il protocollo di comunicazione per la tesina di diploma), mentre cominciava a piacermi PHP (alla versione 4), il linguaggio di programmazione web che tutt’ora amo e adoro.

Ma dall’ormai lontano 2005, dal momento in cui è stato rilasciato PHP 5, non ho mai avuto il tempo e la pazienza di affrontarlo come si deve, ed ora, eccomi qui alle prese con questa bellezza.  E con lui tante sigle, alcune delle quali troppo arcane per non essere ricercate: e qui mi sento veramente indietro nei tempi…

OOP (Object-Oriented Programming)

Il paradigma della programmazione ad oggetti, una delle poche sigle di questo elenco che conosco abbastanza bene, soprattutto perchè anche argomento di alcune delle mie lezioni universitarie. Niente più quindi programmazione lineare: oggetti e metodi che tra di loro si ereditano e tra di loro interagiscono. Class, oggetti, metodi, eredità, polimorfismo…e i metodi magici (Magic Methods). I metodi magici, proprietari di PHP5, sono metodi che, a piacimento si possono “sovrascrivere”, ridefinire grazie alla tecnica dell’overriding. E come PHP, un po’ tutti i linguaggi che adottano il paradigma della programmazione ad oggetti ne fanno uso per la loro comodità. E solo per l’argomento programmazione ad oggetti, dovrei andare avanti a narrare per l’intero blog.

ORM (Object-Relational Mapping)

I database si possono dire relazionali, ovvero delle basi che mettono in relazione entità differenti, ma connesse. E la programmazione di cui ho parlato nella sigla precedente, è quella della programmazione ad oggetti. E quindi?! E quindi ecco che si crea la mappatura ad oggetti di database relazionali, ovvero un metodo comodo e bello come l’OO per la gestione degli stored data.

RAD (Rapid Application Development)

E qui torno a parlare di ingegneria del software e del ciclo di vita dei suoi prodotti, visto che il mondo in cui viviamo non permette più di lavorare attraverso le lenti tempistiche dello sviluppo “di una volta”. Il business si muove rapidamente e i clienti cambiano continuamente idea durante lo svolgimento della fase di programmazione. Ecco il modello di programmazione agile, in cui il cliente vede evolvere il suo prodotto e lo delinea, chiarendosi le idee di come potrebbe essere il risultato e di come preferisce vederlo crescere…

DRY (Don’t Repeat Yourself)

Non ripeterti, non ripetere il codice che hai già scritto cento volte nel tuo programma, non ha senso: e allora scrivilo in modo da avere una versione “adattiva” dello stesso. Avrai risolto una volta per tutte i problemi di controlli e gestione delle eccezioni. E quando entra un altro progetto con caratteristiche simili? Beh, copia e incolla, su un computer è semplice e se funzionava prima, DEVE funzionare anche ora.

KISS (Keep It Simple, Stupid)

Non sto scherzando, si parla così al giorno d’oggi, soprattutto nel mondo dell’Extreme Programming (XP). Una programmazione ad oggetti pensata per ottenere qualcosa di chiaro, semplice da manipolare, semplice da ritoccare, semplice da capire è il punto di partenza per un software di lunga durata. E allora, tienilo semplice, stupido!

TDD (Test Driven Development)

Le nuove tecniche di programmazione, soprattutto quelle agili, quelle che devono stare al passo con il cliente, prevedono continue modifiche al codice, modifiche che potrebbero creare disagi e problemi in qualche altro punto nascosto del codice. Ecco allora che servono dei tester, delle unità di test automatiche, in grado di verificare che il codice continui a produrre il risultato richiesto, sempre e comunque. Sono d’obbligo ormai in tutti i framework MVC presenti nel mercato di internet.

MVC (Model – View – Controller)

Lo stavo addirittura dimenticando!!! Fortuna che ci sono i Test Driven Development. Con la programmazione ad oggetti (OOP) e lo sviluppo dei framework, è andato crescendo il sentore di dover mantenere separati i dati dalla presentazione, come nel basic web, nel web semantico, per XHTML.

Si separano così:

  • model: contiene i dati e fornisce i metodi per potervi accedere
  • view: visualizza i dati contenuti nel model
  • controller: riceve i comandi dell’utente e li esegue, tendezialmente modificando lo stato degli altri due componenti

YAML (Yet Another Markup Language)

Si pronuncia “yamel” (/ˈjæməl/ per chi conosce la fonetica) e significa “Un altro linguaggio per il markup“. Ancora un altro linguaggio di markup (formattazione)?! Si, ma semplice e preciso, in grado di descrivere i dati in modo molto simile a XML, ma con sintassi ancora più facile. Specialmente utile per descrivere dati e informazioni che verranno tradotti in array e hash table.

PEAR (PHP Extension and Application Repository)

Torno nel mondo PHP, in quel mondo dove la comunità di sviluppatori produce tanto codice, pronto da utilizzare, proprio secondo l’idea DRY di non ripetere se stessi. Scarica, installa e usa, in tutte le tue applicazioni. E se oggi i progetti finiti (package) sono solo 472, non nego che domani saranno un numero ben maggiore…

E come queste, di sigle ce ne sono tante tante altre: me ne suggerisci qualcuna anche tu?! 

Bookmark and Share

Lascia un commento

Ti ricordo che è sempre necessario trascrivere le due parole che leggi nel box rosso. È una misura antispam.