Стоит прочитать: обзор книги Бретта Маклафлина «Объектно-ориентированный анализ и проектирование»
Книга, которая расскажет, как организованы анализ, проектирование и написание серьёзных объектно-ориентированных программ.
3К открытий4К показов
Никита Посполита
Java developer финтех-компании RBK.Money
Пожалуй, одной из самых важных книг в моей карьере я могу назвать «Объектно-ориентированный анализ и проектирование» из серии Head First, авторы Бретт Маклафлин, Гэри Поллайс и Дэйв Уэст. Вообще Head First очень полезная серия книг для разработчиков уровня junior/middle, она способна подтолкнуть их по карьерной лестнице в мир бизнеса, архитектурных решений и большой ответственности в рамках всего продукта. Но для начала хочу остановиться на небольшой части этого мира, а именно – на приложении.
С чего начинается приложение?
Авторы рассказывают о том, что приложение начинается с потребностей заказчика, кем бы он ни был представлен. Владелец банковской карты, геймер, врач, официант — у всех них есть боли и потребности. В книге объясняется, почему важно правильно собрать требования, как сильно это влияет на проектирование приложения и что будет, если этого не сделать (спойлер – ничего хорошего:). Изучать этот вопрос вы начнете с приложения для одного заказчика, владельца гитарного магазина, которому нужно сделать систему учета своих гитар, и ваша цель – помочь ему в этом. Когда решите эту задачку, перейдете к более сложным примерам, которые при этом вполне понятные и подробно описаны. Кстати, хочу обратить внимание на подачу материала: он простой, язык близок к разговорному, а еще в книге много иллюстраций и схем, и это здорово помогает восприятию. В некоторых упражнениях книгу предлагают использовать как рабочую тетрадь, что тоже удобно (если только вы не читаете ее в электронном виде).
Про требования и их изменчивость
Авторы «Объектно-ориентированного анализа и проектирования» идут вместе с читателем по всем этапам жизненного цикла – от сбора требований заказчиков до тестирования готового решения.
Чуть подробнее расскажу про первый из этих этапов. «Как собирать требования? Что предусмотреть? А какие части могут меняться?» — эти вопросы программист задает себе не всегда, а стоило бы. Потому что от грамотного и подробного сбора требований зависит качество результата и удовлетворенность заказчика. Книга акцентирует внимание на этих вещах, и показывает, как заложить гибкость и изменчивость в код, чтобы доработки не заставали вас врасплох.
Как известно из практики и другой хорошей книги, «Совершенный код» Стива Макконелла, самые дорогие ошибки случаются из-за некорректных требований или из-за недосмотра потенциальных изменений. В нашем мире, разумеется, нельзя всё предусмотреть, но хотя бы попытаться — точно стоит!
А где же разработка?
Наверное, я вас уже напугал, что в книге не будет ни строчки кода. Но нет, в ней приведено очень много примеров и хорошего, и плохого кода, и советов как отличить один от другого. Плюс в книге много практических заданий на весь изученный материал – в каждой главе есть задачки, на которых можно применить свежие знания. А в последней четверти книги нас ждет большой проект, который предстоит сделать полностью самостоятельно – от сбора требований и до красиво структурированного кода.
Кстати, о структурированном коде. В книге подробно изложены важные моменты:
- основные принципы ООП — даже начинающий программист слышал про инкапсуляцию, наследование и полиморфизм. Тут вы закрепите свои знания, и поймёте, что инкапсуляция — это не только про область видимости;
- принцип DRY — Don’t repeat yourself, он расскажет, как избежать повторения кода и инкапсулировать логику правильно;
- принцип KISS — keep it simple stupid, здесь пойдет речь о том, почему не стоит строить слишком гибкие приложения, пытаясь предвидеть требования;
- принцип YAGNI — You ain’t gonna need it, это история о том, как не писать лишний код, пытаясь играть в экстрасенса;
- паттерны проектирования — важная составляющая, которая поможет вам использовать мудрость других разработчиков (:
Все это показано на примерах из реальной жизни. Замечу, что с этой информацией вы, скорее всего, столкнетесь на собеседовании, что делает ее еще более ценной.
Послесловие
Мир программирования довольно обширен и описать его в одной книге, даже самой подробной, довольно сложно. Тем не менее, авторам удалось уложить в нее много важных моментов, которые однозначно пригодятся на практике программистам разного уровня. Кому-то будут полезны паттерны и принципы чистого программирования, кому-то пригодится анализ требований, кому-то — проектирование в UML.
Но что точно пригодится каждому, — понимание, что программы не бывает без заказчика.
3К открытий4К показов