Metodologia e architettura CGN
// Framework, piattaforme, strumenti

Sviluppiamo software
sempre con tecnologie
all'avanguardia

.Net e C#

Per lo sviluppo cross platform, con prossimo target puntato a .Net 6

Docker e Openshift

Per creare e orchestrare container scalabili supportati dalla piattaforma offerta da Red Hat

React
e Redux

Per sviluppare Single-Page application modulari puntando sulle prestazioni

NServiceBus, Azure ServiceBus e RabbitMQ

Per implementare un'architettura Event Driven e la comunicazione asincrona tra applicazioni

RavenDB
e MS SQL Server

Costituiscono il 99% delle nostre base dati

Node.js
e npm

Il principale supporto per lo sviluppo frontend in locale

NHibernate e Entity Framework

I framework ORM utilizzati per gestire la persistenza

// La qualità si costruisce dalle fondamenta

Le nostre scelte
architetturali e tecnologiche

  • EVENT-DRIVEN
    ARCHITECTURE
  • CQRS E
    DDD
  • SPA E
    MICRO-FRONTENDS

È uno dei pilastri su cui si basa la piattaforma tecnologica CGN, attraverso il quale viene costruita la comunicazione tra applicazioni e servizi dell’ecosistema, in modo disaccoppiato. Attraverso gli eventi, le applicazioni interagiscono tra loro all'interno di flussi di lavoro automatizzati. NServiceBus, Azure Service Bus e RabbitMQ sono alcune delle tecnologie che utilizziamo, unitamente ad appositi sistemi di monitoraggio dei workflow in esecuzione.

Il pattern architetturale CQRS ci consente di massimizzare le prestazioni, mantenendo distinti ed espressivi i due modelli di dominio su cui poggiano le applicazioni. L’adozione del paradigma DDD ci porta ad identificare e modellare correttamente i bounded context, creando e condividendo con analisti ed esperti di dominio un ubiquitous language che si rivela particolarmente utile data la complessità e la specificità del dominio fiscale e contabile.

Tutte le nostre applicazioni offrono un frontend agli utenti realizzato come Single Page Application e basato su ReactJs. La progettazione della UI è coerente con il UX Design System aziendale, che offre ai team di sviluppo una suite di componenti e pattern riusabili. Sfruttiamo l’architettura a micro-frontends per scomporre un’applicazione complessa, anche dal punto di vista dell’interazione utente, in componenti più semplici riutilizzabili e distribuibili indipendentemente uno dall’altro.

Architettura software CGN
Team AI CGN

Come usiamo l'Intelligenza artificiale

  • IA per lo sviluppo
  • IA per le applicazioni

L’intelligenza artificiale è parte integrante del nostro approccio allo sviluppo software e contribuisce a migliorare produttività, qualità e velocità di delivery. Utilizziamo GitHub Copilot a supporto delle attività di implementazione, refactoring e code review, affiancandolo a strumenti AI dedicati alla sicurezza applicativa e all’individuazione di vulnerabilità. Sviluppiamo inoltre internamente server MCP, con l’obiettivo di estendere e personalizzare le capacità dell’AI, integrandole in modo efficace nei nostri processi e nel nostro ecosistema tecnologico.

Lo stack tecnologico AI di CGN è progettato per mettere a disposizione degli altri team servizi di AI "as a service", con l’obiettivo di ridurre la complessità di accesso a queste tecnologie e renderne più semplice l’adozione all’interno dei prodotti sviluppati. L’approccio combina sia lo sviluppo di modelli custom, realizzati con librerie open source come PyTorch e scikit-learn, sia l’utilizzo di modelli e servizi gestiti dai principali cloud provider, in particolare Microsoft Azure, ma anche GCP e AWS quando il contesto lo richiede. In questo modo riusciamo a mantenere un buon equilibrio tra flessibilità progettuale e solidità operativa.