Architecture des applications: écrire comme un développeur, penser comme un architecte - cours 80 000 roubles. de Slurm, formation 3 mois, Date 22 janvier 2024.
Miscellanea / / November 29, 2023
Apprenez à écrire des projets propres et gérables, à créer des systèmes maintenables et à organiser le code.
Nous ferons gratuitement toutes les erreurs possibles lors des tâches pratiques, afin que vous puissiez plus tard les éviter dans votre travail et économiser des millions.
Dans le passé, de nombreuses applications étaient créées sans conception. Cela semblait pratique: pas de frais de planification, prototypage rapide.
Mais au fil du temps, les applications complexes se sont transformées en un croiseur incontrôlable, se précipitant à toute vitesse vers l'iceberg.
C’est alors que l’architecture devient un véritable gilet de sauvetage. Une application dotée d’une architecture bien conçue est plus facile à étendre, modifier, tester, déboguer et comprendre.
L'architecture des applications est un art. L’art de concevoir et de créer des systèmes à grande échelle.
Vous apprendrez à créer des diagrammes UML, à refactoriser du code, à tracer des limites architecturales et à analyser des systèmes. Chaque participant réalisera un projet de cours: concevoir et décrire entièrement un système d'information tel qu'il se produit dans des activités de production réelles.
Séance d'introduction avec des intervenants
22 janvier à 19h00
Module 1: Introduction à l'architecture des applications
22 janvier
Faisons connaissance avec les approches et les paradigmes de l'architecture des applications
- Thème I. Le problème est pourquoi il est important de concevoir correctement un logiciel. Pourquoi l’architecture est-elle nécessaire, que se passe-t-il lorsque les gens n’y pensent pas ?
- Thème II. L'isolement comme moyen de contrôler la complexité. Code spaghetti. Modularité. Couplage. Liaison statique, liaison dynamique. Composants et leurs interactions. Un composant en tant qu’entité indépendante. Conception de composants faiblement couplés. Tests de composants. MVC comme exemple de modèle modulaire. Raisons des changements, isolement basé sur les raisons des changements.
Deuxième module: Langage de modélisation unifié
29 janvier
Maîtrisons le langage d'affichage graphique: vous saurez lire et concevoir en utilisant ce langage. Apprenons à utiliser des diagrammes pour visualiser l'architecture et les connexions.
- Thème I. Les principaux composants, ce qui peut être exprimé avec eux, à quoi ils servent.
- Thème II. Diagrammes de classes, d'activités, de séquences et de cas d'utilisation.
- Thème III. Inconvénients d'UML. Modèle C4. Outils
Troisième module: principes de la POO
12 février
Nous apprendrons à analyser à un niveau élevé: vous saurez comment résoudre un problème et en utilisant quel paradigme.
- Thème I. Revue des paradigmes de programmation.
- Thème II. Principes de la POO. La POO comme moyen d'architecture. Cours et méthodes. Approche objet comme méthode d’isolement. Interfaces et classes abstraites. Problèmes d'héritage.
- Thème III. Principes POO: (SOLIDE, SEC).
Séance AMA avec intervenants
Module quatre: modèles de conception
26 février
Nous apprendrons à concevoir des systèmes à l'aide de modèles: vous comprendrez les avantages et les limites des modèles, vous serez capable de reconnaître les modèles appliqués dans les systèmes.
- Thème I. Que sont les modèles et pourquoi sont-ils nécessaires? Leurs types.
- Thème II. Modèles génératifs et structurels.
- Thème III. Modèles comportementaux.
- Thème IV. Anti-modèles.
Module cinq: Architecture propre
11 mars
Nous apprendrons à concevoir selon les critères de l'architecture pure, à trouver les écarts par rapport à l'architecture pure et à proposer des options pour une solution système. Nous apprendrons comment appliquer la disposition du code, concevoir et tracer des limites architecturales pour simplifier les modifications ultérieures et la maintenance du code.
- Thème I. Couplage et cohésion.
- Thème II. Limites architecturales.
- Thème III. Architecture épurée.
Module six: Diverses approches architecturales
25 mars
Nous apprendrons à choisir une approche pour résoudre les problèmes de production assignés, à expliquer les avantages ou les solutions d’autres personnes/nos propres. Nous pourrons trouver des solutions adaptées aux tâches assignées, en tenant compte de la situation actuelle
- Thème I. Exigences, domaine. Analyse. Exigences fonctionnelles/non fonctionnelles.
- Thème II. Styles architecturaux. Onion, multi-niveaux, orienté services, microservice, piloté par les événements.
- Thème III. Architecture applicative. MVC, MVP, MVVM, MV*.
Séance AMA avec intervenants
Septième module: l'architecture partout
le premier avril
Nous apprendrons à appliquer les connaissances sur l'architecture à différents niveaux d'échelle (non seulement la disposition des classes et des modules, mais également des systèmes entiers).
- Thème I. Types d'architectes et leurs tâches.
- Thème II. Architectures à différents niveaux (embarqué, application, système distribué, service cloud natif).
Huitième module: synthèse
8 avril
Apprenons à choisir facilement un outil pour une tâche spécifique
- Thème I. Revue des principaux outils et technologies, leur place dans l'architecture et les principes de sélection.
- Stockage des données: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Files d'attente: AMQP, Rabbit, Kafka, MQTT.
- Langages: Python, Java, GO, C++, Javascript/Typescript.
- Interface: Console, applications natives, WEB: React, Vue, Angular, Jquery, hybride, chatbots.
- Outils d'infrastructure: docker, k8s, terraform, ansible.