Практикуем принцип "Convention over Configuration (CoC)" (соглашения по конфигурации) для Java-функционала Мастер-классы

Доклад принят в программу конференции
Вячеслав Лапин
xCritical Software

Опыт работы в ведущих компаниях IT — Kaspersky Lab, 1C, Крок, AT-Consulting, Luxoft, «Ланит». Внедренец инноваций и лучших практик в «Кровавый Энтерпрайз» — исследует новые технологии и «продаёт» их на крупные IT-проекты, делая их более гибкими, надёжными, быстрыми и современными, не потеряв при этом в функциональности.

Более 12 лет в IT, более 3 лет опыта управления командами разработчиков.

Тезисы

Краткое описание:
Принцип "Convention over Configuration (CoC)" лежит в основе многих API-решений. Вы наверняка уже много раз видели некоторые его проявления, просто не отдавали себе в этом отчёта и воспринимали, как некоторые стихийные то тут то там присутствующие интересные удобства в обращении с библиотеками, фреймворками и инструментами, которыми пользовались. Но этот принцип, если применять его не стихийно, как это часто делается, а действительно последовательно и стараться от него не отходить, способен до неузнаваемости изменить привычные нам API, сделав их радикально доступнее.

Мы вначале обсудим, посмотрим на примерах, а затем введём шкалу зрелости и попробуем сами реализовать продвижение простой функциональности по CoC'овской шкале, сделав решение действительно простым и удобным для любого программиста, а также обсудим некоторые краеугольные камни этого подхода и что с ними делать.

Что получат слушатели:
- Научатся видеть элементы CoC в Java-функционале, с которым работают и поймут, как и насколько это облегчает их ежедневную работу.
- Научатся оценивать уровень зрелости решений по моей авторской шкале глубины соответствия CoC'у.
- Приобретут навыки в продвижении по этой шкале вверх своего функционала на примере Java-микросервиса на технологии Spring Boot'е.

План:
1. Структура сложности в IT-проектах.
2. Классификация решений на "Простые" и "Лёгкие", понятие морфологии.
3. Понимание принципа "Convention over Configuration" — "клиповое мышление" и декларативный подход на службе разработки.
4. Элементы CoC'а в Maven'е и Spring Boot'е, примеры-иллюстрации в других областях.
5. 10 уровней модели зрелости решений по CoC'у.
6. Практикум.
7. Резюме — недостатки CoC-подхода и что можно с ними сделать.

Другие доклады секции Мастер-классы

CLI в Node.js
Александр Коржиков
Dev IT Engineer ING Group (Нидерланды)