Il PHP 7 diventa severo

,

Come tutti sappiamo PHP è stato concepito come linguaggio a tipizzazione dinamica: visto da una parte dello scenario come pro, dall’altra come contro.

Nonostante l’esistenza di diversi linguaggi con tale caratteristica quest’ultima è stata per diverso tempo motivo di critica. E’ chiaro che lo sviluppo con certi linguaggi aiuta a scrivere codice più pulito, ma di certo è difficile affermare che la tipizzazione dinamica sfoci in codice spazzatura.

Così come le critiche a PHP spesso sono incomplete o riferite a codice deprecato, così accade per la tipizzazione; per esempio PHP ha e ha avuto per diverso tempo diverse modalità per trattare con i tipi ed è possibile garantire che uno specifico tipo venga utilizzato in uno specifico punto del codice.

Anche il type hinting è stato utilizzato per molto tempo, anche se in modo incompleto.

Con PHP7 sarà possibile far sì che le funzioni e i metodi accettino parametri di determinati tipi.

Andiamo più nello specifico: i principali RFC del nuovo PHP7 sono fondamentalmente tre:

  1. Type hinting scalare;
  2. Dichiarazione di tipi di ritorno;
  3. Gestione delle eccezioni.

Continua a leggere

Introduzione al Domain Driven Design

,

Molte cose possono mettere un grande progetto fuori rotta: la burocrazia, obiettivi poco chiari, mancanza di risorse, solo per citarne alcuni, ma è l’approccio alla progettazione che determina in gran parte come il software complesso può diventare.

Quando la complessità sfugge di mano il software non può più essere compreso abbastanza bene per essere facilmente modificato o esteso; al contrario, un buon design può dare opportunità su quelle caratteristiche complesse.

Alcuni di questi fattori di complessità nella progettazione sono di carattere tecnico, ma per molte applicazioni non lo sono, la complessità è nel dominio stesso o l’attività commerciale dell’utente.

Quando questa complessità di dominio non viene affrontata nella progettazione, non importa se la tecnologia infrastrutturale sia ben concepita. Un design di successo deve affrontare sistematicamente questo aspetto centrale del software.

In questi casi un ottimo approccio da valutare è proprio il Domain Driven Design.

Continua a leggere

Costruire software SOLID(O)

,

Una delle sfide più importanti nello sviluppo di applicazioni software critiche per le aziende è la progettazione di valide architetture che siano in grado di assicurare requisiti non funzionali quali l’estensibilità, la manutenibilità, la testabilità e la leggibilità del codice nel tempo.

Quando i clienti ci chiedono infatti di modificare o riscrivere le loro applicazioni, ciò avviene spesso perchè si ritrovano con una base di codice sviluppata male che ha costi e tempi di manutenzione troppo elevati per via delle (mancate) scelte progettuali; in questi casi riscrivere o effettuare il refactoring dell’applicazione con adeguati principi architetturali diventa una scelta da valutare molto seriamente dopo un accurato audit.

Continua a leggere

Git Flow – Un modello di branching per git che funziona

,

Continua a leggere

Qualche consiglio di progettazione per la vostra prima app – Parte 2/2

, ,

“Splash screen? No, grazie”
Le animazioni che vengono caricate all’apertura delle apps non sono quasi mai utili. Anzi, ritengo siano fastidiose per l’utente, anche inconsciamente.
Dopotutto sono secondi preziosi di attesa ai quali si obbliga a sottostare passivamente, senza che l’utente ne ricavi alcuna utilità immediata. Ricordatevi che il suo tempo è prezioso. E se proprio non potete evitarle, riducetene durata e pesantezza all’osso, curandone con estrema cura i dettagli grafici e di animazione: se proprio volete stupire l’utente con effetti speciali, almeno siate sicuri che siano all’altezza delle sue aspettative.

Continua a leggere