Microsoft Trainer e Software Architect
Sviluppatore professionista dal 2001 con VB6, SQL 2000 e Access creando applicazioni gestionali di varia natura. Passando rapidamente a .NET, windows e web, ho poi espanso le mie esperienze su Compact Framework, SQL Server Mobile ed infine BizTalk Server.
Negli ultimi anni mi sono focalizzato sempre più sullo sviluppo distribuito ed enterprise conseguendo nel contempo le seguenti certificazioni:
Microsoft Certified Trainer (MCT)Microsoft MCPD .NET 3.5 Enterprise Applications DeveloperMicrosoft MCTS .NET 3.5 WCF Applications DevelopmentMicrosoft MCTS .NET 3.5 ASP.NET Applications DevelopmentMicrosoft MCTS .NET 3.5 ADO.NET Applications DevelopmentMicrosoft MCTS .NET 3.5 Windows Applications DevelopmentMicrosoft MCTS .NET 2.0 Distributed Applications DevelopmentMicrosoft MCP .NET
Ciao a tutti
stavo riflettendo su questa definizione sempre difficile da enunciare di archiettura software e architetto software. In base alle mie letture, mi sono fatto questa idea:
L'architettura software è l'insieme dei componenti che compongono il nostro software, di come interagiscono tra di loro, di come dipendono gli uni dagli altri e di come vengono usati dall'interno e dall'esterno del nostro software. Più un componente è radicato nel nostro software, più è necessario al funzionamento di altri componenti, più è un assunto su cui si basano altre scelte, più questo è architettura.
L'architetto invece è colui che è responsabile per l'architettura.
I pattern sono architettura? No. Un pattern è una soluzione ad un problema frequente. I pattern possono diventare architettura? Si. Scegliere di usarene uno per un compito ricorrente nel nostro software diventa architettura. Sono le scelte che fanno l'architettura, non i componenti, non la tecnica, non la teoria, non i pattern, non il codice in se. Solo le scelte di come usarli.
Un esempio: usare un accesso al DB con Domain Model o con TableDataGateway (due pattern di acceso ai dati) è architettura? Uhm... vediamo: il pattern in se no, ma scegliere se nel nostro programma useremo l'uno o l'altro si, perchè da questa scelta scaturiranno dei comportamenti che influenzeranno altre scelte.
Possiamo decidere di usare da una parte l'uno e da una parte l'altro? Uhm... io direo NO. No perchè una scelta è architettura se la si rispetta, altrimenti il software non è architetturalmente gestito, ma semplicemente incasinato dalle scelte che i programatori di turno hanno preso.
A presto