Программирование
Программа — точное описание преобразования входного состояния в результат. Разработка включает не только написание инструкций, но и выбор модели данных, обработку ошибок, проверку результата, доставку и наблюдение за работающей системой.
Основные модели
- объектно-ориентированная — состояние и поведение объединены в объектах;
- функциональная — вычисление строится из функций и преобразований значений;
- императивная — явно описывается последовательность изменения состояния;
- декларативная — задаётся желаемый результат, например SQL-запрос или manifest Kubernetes;
- реактивная — поток данных и сигналы учитывают асинхронность и backpressure.
В одном приложении эти модели обычно соседствуют. SQL остаётся декларативным, сервисный метод — императивным, stream pipeline — функциональным.
От кода к системе
тип и алгоритм
→ модуль
→ API
→ данные
→ процесс
→ развертывание
→ наблюдаемое поведениеОшибка на верхнем уровне может происходить из нижнего: неправильная структура данных создаёт медленный API, неверная транзакция — частичный результат, конфигурация — невозможность запустить корректный код.
Карта базы
- язык и среда исполнения — Java Core, Структура JDK;
- данные — Коллекции, SQL, JPA Hibernate ORM;
- конкурентность — Многопоточность в Java;
- приложение — Spring, REST;
- интеграции — Kafka, Camunda 7 и BPMN;
- эксплуатация — Инженерные инструменты эксплуатации;
- способы проектирования — Паттерны, Системный анализ;
- практика — Инженерные кейсы.
Мой критерий понимания
Я считаю тему усвоенной, если могу:
- дать короткое определение;
- объяснить механизм;
- написать минимальный пример;
- назвать границы применимости;
- распознать типичную ошибку;
- связать знание с поведением системы.