Application architecture: write like a developer, think like an architect - course 80,000 rub. from Slurm, training 3 months, Date January 22, 2024.
Miscellaneous / / November 29, 2023
Learn to write clean and manageable projects, create maintainable systems, and organize code.
We will make all possible mistakes during practical tasks for free, so that later you can avoid them in your work and save millions.
In the past, many applications were created without design. It seemed convenient: no planning costs, rapid prototyping.
But over time, complex applications turned into an uncontrollable cruiser, rushing at full speed towards the iceberg.
It was then that architecture became a real life jacket. An application with a well-designed architecture is easier to extend, change, test, debug, and understand.
Application architecture is an art. The art of designing and creating large-scale systems.
You will learn to build UML diagrams, refactor code, draw architectural boundaries, and analyze systems. Each participant will complete a course project: design and fully describe an information system as it happens in real production activities.
Introductory session with speakers
January 22 at 19:00
Module One: Introduction to Application Architecture
January 22
Let's get acquainted with the approaches and paradigms of application architecture
- Topic I. The problem is why it is important to design software correctly. Why is architecture needed, what happens when people don’t think about it.
- Topic II. Isolation as a means of controlling complexity. Spaghetti code. Modularity. Coupling. Static binding, dynamic binding. Components and their interactions. A component as an independent entity. Design of loosely coupled components. Component testing. MVC as an example of a modular pattern. Reasons for changes, isolation based on the reasons for changes.
Second module: Unified Modeling Language
January 29
Let's master the graphic display language: you will be able to read and design using this language. Let's learn to use diagrams to visualize architecture and connections.
- Topic I. The main components, what can be expressed with them, what they are needed for.
- Topic II. Class, activity, sequence and use case diagrams.
- Topic III. Disadvantages of UML. Model C4. Tools
Third module: OOP principles
12th of February
We will learn to analyze at a high level: you will know how to solve a problem and using what paradigm.
- Topic I. Review of programming paradigms.
- Topic II. OOP principles. OOP as a means of architecture. Classes and methods. Object approach as an isolation method. Interfaces and abstract classes. Inheritance problems.
- Topic III. OOP principles: (SOLID, DRY).
AMA session with speakers
Module Four: Design Patterns
February 26
We will learn to design systems using patterns: you will understand the advantages and limitations of patterns, you will be able to recognize the applied patterns in systems
- Topic I. What are patterns and why are they needed? Their types.
- Topic II. Generative and structural patterns.
- Topic III. Behavioral patterns.
- Topic IV. Antipatterns.
Module Five: Clean Architecture
11th of March
We will learn to design according to the criteria of pure architecture, find deviations from pure architecture and propose options for a system solution. We will learn how to apply code layout, design and draw architectural boundaries to simplify further changes and maintenance of the code.
- Topic I. Coupling & Cohesion.
- Topic II. Architectural boundaries.
- Topic III. Clean architecture.
Module Six: Various Architectural Approaches
March 25
We will learn to choose an approach to solving assigned production problems, explain the advantages or other people’s/our own solutions. We will be able to find suitable solutions for the assigned tasks, taking into account the current situation
- Topic I. Requirements, subject area. Analysis. Functional/non-functional requirements.
- Topic II. Architectural styles. Onion, multi-level, service-oriented, microservice, event-driven.
- Topic III. Application architecture. MVC, MVP, MVVM, MV*.
AMA session with speakers
Seventh module: architecture everywhere
April 1
We will learn to apply knowledge about architecture to various levels of scale (not only the layout of classes and modules, but also entire systems)
- Topic I. Types of architects and their tasks.
- Topic II. Architectures at different levels (embedded, application, distributed system, cloud-native service).
Eighth module: summing up
April 8
Let's learn how to easily choose a tool for a specific task
- Topic I. Review of the main tools and technologies, their place in architecture and principles of selection.
- Data storage: S3, Ceph, Posgres, MongoDB, Clickhouse, Neo4J, Cassandra, KeyValue.
- Queues: AMQP, Rabbit, Kafka, MQTT.
- Languages: Python, Java, GO, C++, Javascript/Typescript.
- Interface: Console, native applications, WEB: React, Vue, Angular, Jquery, hybrid, chatbots.
- Infrastructure tools: docker, k8s, terraform, ansible.