Architettura dell'applicazione: scrivi come uno sviluppatore, pensa come un architetto - corso 80.000 rubli. da Slurm, formazione 3 mesi, data 22 gennaio 2024.
Miscellanea / / November 29, 2023
Impara a scrivere progetti puliti e gestibili, creare sistemi manutenibili e organizzare il codice.
Faremo tutti gli errori possibili durante le attività pratiche gratuitamente, in modo che tu possa poi evitarli nel tuo lavoro e risparmiare milioni.
In passato molte applicazioni venivano create senza progettazione. Sembrava conveniente: nessun costo di progettazione, prototipazione rapida.
Ma nel tempo, applicazioni complesse si sono trasformate in un incrociatore incontrollabile, correndo a tutta velocità verso l'iceberg.
Fu allora che l’architettura diventò un vero e proprio salvagente. Un'applicazione con un'architettura ben progettata è più facile da estendere, modificare, testare, eseguire il debug e comprendere.
L'architettura delle applicazioni è un'arte. L'arte di progettare e realizzare impianti su larga scala.
Imparerai a costruire diagrammi UML, eseguire il refactoring del codice, tracciare i confini dell'architettura e analizzare i sistemi. Ogni partecipante completerà un progetto del corso: progettare e descrivere completamente un sistema informativo così come avviene nelle attività produttive reali.
Sessione introduttiva con i relatori
22 gennaio alle 19:00
Modulo Uno: Introduzione all'architettura applicativa
22 gennaio
Facciamo conoscenza con gli approcci e i paradigmi dell'architettura applicativa
- Argomento I. Il problema è perché è importante progettare correttamente il software. Perché è necessaria l’architettura, cosa succede quando le persone non ci pensano.
- Argomento II. L’isolamento come mezzo per controllare la complessità. Codice degli spaghetti. Modularità. Accoppiamento. Rilegatura statica, rilegatura dinamica. Componenti e loro interazioni. Un componente come entità indipendente. Progettazione di componenti liberamente accoppiati. Test dei componenti. MVC come esempio di modello modulare. Ragioni dei cambiamenti, isolamento in base alle ragioni dei cambiamenti.
Secondo modulo: Linguaggio di modellazione unificato
29 gennaio
Padroneggiamo il linguaggio di visualizzazione grafica: sarai in grado di leggere e progettare utilizzando questo linguaggio. Impariamo a utilizzare i diagrammi per visualizzare l'architettura e le connessioni.
- Argomento I. I componenti principali, cosa si può esprimere con essi, a cosa servono.
- Argomento II. Diagrammi di classi, attività, sequenze e casi d'uso.
- Argomento III. Svantaggi dell'UML. Modello C4. Utensili
Terzo modulo: principi dell'OOP
12 febbraio
Impareremo ad analizzare ad alto livello: saprai come risolvere un problema e utilizzando quale paradigma.
- Argomento I. Richiami sui paradigmi di programmazione.
- Argomento II. Principi OOP. OOP come mezzo di architettura. Classi e metodi. Approccio agli oggetti come metodo di isolamento. Interfacce e classi astratte. Problemi di eredità.
- Argomento III. Principi OOP: (SOLIDO, SECCO).
Sessione AMA con i relatori
Modulo quattro: modelli di progettazione
26 febbraio
Impareremo a progettare sistemi utilizzando pattern: capirai vantaggi e limiti dei pattern, sarai in grado di riconoscere i pattern applicati nei sistemi
- Argomento I. Cosa sono i modelli e perché sono necessari? I loro tipi.
- Argomento II. Modelli generativi e strutturali.
- Argomento III. Modelli comportamentali.
- Argomento IV. Antipattern.
Modulo cinque: Architettura pulita
11 marzo
Impareremo a progettare secondo i criteri dell'architettura pura, a trovare deviazioni dall'architettura pura e proporre opzioni per una soluzione sistemica. Impareremo come applicare il layout del codice, progettare e tracciare i confini dell'architettura per semplificare ulteriori modifiche e manutenzione del codice.
- Argomento I. Accoppiamento e coesione.
- Argomento II. Confini architettonici.
- Argomento III. Architettura pulita.
Modulo Sesto: Vari approcci architettonici
25 marzo
Impareremo a scegliere un approccio per risolvere i problemi di produzione assegnati, spiegare i vantaggi o le nostre soluzioni/di altre persone. Sapremo trovare soluzioni adeguate ai compiti assegnati, tenendo conto della situazione attuale
- Argomento I. Requisiti, area tematica. Analisi. Requisiti funzionali/non funzionali.
- Argomento II. Stili architettonici. Onion, multilivello, orientato ai servizi, microservizi, guidato dagli eventi.
- Argomento III. Architettura dell'applicazione. MVC, MVP, MVVM, MV*.
Sessione AMA con i relatori
Settimo modulo: l'architettura ovunque
1 aprile
Impareremo ad applicare le conoscenze sull'architettura a vari livelli di scala (non solo il layout di classi e moduli, ma anche interi sistemi)
- Argomento I. Tipologie di architetti e loro compiti.
- Argomento II. Architetture a diversi livelli (embedded, applicativo, sistema distribuito, servizio cloud-native).
Ottavo modulo: riassumere
8 aprile
Impariamo come scegliere facilmente uno strumento per un'attività specifica
- Argomento I. Revisione dei principali strumenti e tecnologie, loro collocazione nell'architettura e principi di selezione.
- Archiviazione dati: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Code: AMQP, Rabbit, Kafka, MQTT.
- Linguaggi: Python, Java, GO, C++, Javascript/Typescript.
- Interfaccia: Console, applicazioni native, WEB: React, Vue, Angular, Jquery, ibrido, chatbot.
- Strumenti infrastrutturali: docker, k8s, terraform, ansible.