О чём это

Программировать — сложно.

Хороший код адекватно отражает систему, которую описывает, он устойчив к изменениям в этой системе. Плохой код запутанный, хрупкий и непонятный — он замедляет разработку.

Код становится плохим, когда он перестаёт соответствовать реальности — бизнес-требованиям, правилам поведения частей системы, их отношениям друг с другом.

Бизнес-правила — это территория. Код — карта этой территории. Чем точнее карта, тем проще справляться с изменениями в требованиях и даже предвидеть их.

В этой книге мы хотим рассказать и показать на примерах, как принципы объектно-ориентированного программирования могут помочь спроектировать устойчивую систему.

Почему ООП?

ООП вызывает споры.

Война парадигм может создать впечатление, что подход ООП устарел и плох. Но как минимум в одном он хорош — с ним проще выделять сущности и проводить параллели с частями системы из реальности, которую мы собираемся моделировать.

Понятия из ООП помогают проектировать систему на языке, более близком к языку бизнес-правил. Это снижает вероятность ошибки при переводе с «языка бизнеса» на «язык разработки» и наоборот.

О каких принципах пойдёт речь?

Мы рассмотрим 5 принципов, а именно:

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

Зная пользу и ограничения, можно оценить, насколько конкретный принцип помогает решить задачу, стоящую перед вами.

Какой план?

Каждый раздел будет описывать один из принципов и показывать, как им пользоваться в повседневной работе.

Мы будем рассматривать примеры на TypeScript, так как в нём есть понятия, которые нам пригодятся по ходу повествования. Если вы чувствуете себя неуверенно с TypeScript, попробуйте прочесть книгу TS Deep Dive — она содержит все концепции, которые мы будем использовать.

В конце разделов вы найдёте проверочные вопросы. Каждый правильно отвеченный вопрос увеличивает количество очков на вашем счету. Максимально-возможный счёт — 100 очков. Отвечайте аккуратно — вопросы с подвохом. Обратите внимание, вариантов ответа может быть больше одного.

Материалы к разделу