Софтуерно инженерство: Java
Курсът е един за четирите езика, а кодът тук е на Java. Всеки модул казва кои уроци от езика трябва да знаеш преди него.
Продължи оттам, докъдето стигна:
Модул 0
Добре дошъл
1 урок · какво учи курсът и какво трябва да знаеш
Модул 1
Шаблони за дизайн
14 урока · Strategy, Observer, Builder, State…
Модул 2
Чист код и refactoring
8 урока · имена, функции, миризми, малки стъпки
- Имена в кода
- Функции: една работа, малко параметри, без скрити странични ефекти
- Коментари, които лъжат, и такива, които помагат
- Миризмите: дълъг метод, голям клас, дублиране, примитиви вместо типове, дълга верига if
- Тестовете като предпазна мрежа
- Refactoring на малки стъпки
- SOLID без догма
- Упражнение: разхвърлян клас, изчистен стъпка по стъпка
Алгоритми и сложност
Модул 3
Сложност
5 урока · Big-O, време и памет, измерване
Модул 4
Търсене
3 урока · линейно и двоично търсене
Модул 5
Сортиране
6 урока · insertion, merge, quick, heap, counting
Модул 6
Рекурсия
4 урока · стекът от извиквания, разделяй и владей
Модул 7
Структури от данни
8 урока · масив, списък, hash таблица, дървета, heap
Модул 8
Графи
6 урока · BFS, DFS, Dijkstra, зависимости
Модул 9
Динамично програмиране
5 урока · запомняне, таблица, раница
Модул 10
Алчни алгоритми
2 урока · кога работят и кога лъжат
Модул 11
Техники за задачи
4 урока · два указателя, плъзгащ прозорец, префиксни суми
Модул 12
Проект: навигация в града
1 урок · картата като граф, BFS, Dijkstra
Модул 13
Нишки и race conditions
9 урока · заключване, deadlock, async
Модул 14
Сигурност за програмисти
9 урока · недоверен вход, пароли, сесии, токени, тайни
Модул 15
Софтуерни архитектури
9 урока · слоеве, модули, събития, API, кеш, мащабиране
Модул 16
Архитектът в работа
9 урока · NFR, компромиси, интеграция, миграции, преглед
- Нефункционални изисквания, които се мерят
- Компромиси
- Когато съседът е бавен: timeout, retry, circuit breaker
- Транзакция през няколко услуги (saga)
- Интеграция със стари и чужди системи
- Смяна на жива система (strangler fig, expand–contract)
- Архитектурен преглед
- Enterprise ландшафт и капабилитита
- Твоята първа архитектурна задача