Когда я начал понимать «Чистый код» и «Чистую архитектуру» Дядюшки Боба
Кто такой Дядюшка Боб?
Для тех, кто еще не знаком с творчеством Роберта Мартина, или как его часто называют, Дядюшки Боба: он — выдающийся автор и программист с огромным опытом в разработке ПО. За свою карьеру он участвовал в множестве проектов и решил поделиться своим обширным опытом с другими программистами через цикл книг. Сегодня я хотел бы поговорить о том, как книги "Чистый код" и "Чистая архитектура" повлияли на мой подход к программированию.
Моя история
Многие программисты в начале своего пути сосредотачиваются на практике, не задумываясь о том, как правильно структурировать функции и классы. Я тоже прошел через это. Вначале я испытывал радость и гордость от написания компонентов в 1000+ строк, считая это достижением. Но вскоре я понял, что это была самообман.
Со временем я стал замечать, что ориентироваться в собственном коде становится все сложнее, особенно если я не добавлял пояснений. Знакомо ли вам чувство, когда возвращаешься к своему коду через неделю и не можешь понять, что там происходит? Это чувство растерянности и неудовольствия стало для меня сигналом, что пора что-то менять.
Момент осознания: "Чистый код"
Начав читать «Чистый код», я старался глубже понять изложенные концепции и применять их на практике. Например, я научился правильно разбивать функции и осознал, почему классы с множественными зонами ответственности — это плохо. Постепенно я начал замечать, как эти принципы внедряются в мой код, даже не осознавая этого сразу.
Я действительно начал понимать важность «Чистого кода», когда читал код других разработчиков. Например, сталкиваясь с функцией под названием saveResult
, которая не только сохраняла результат, но и делала запрос за новыми данными, я осознал, насколько важно, чтобы функции были прозрачными и выполняли только одно действие. Такие моменты научили меня писать код так, чтобы он был понятным и не вводил в заблуждение.
Момент осознания: "Чистая архитектура"
После «Чистого кода» я взялся за «Чистую архитектуру». В данный момент я продолжаю читать эту книгу, и она открывает для меня новые горизонты. Сначала мне понравилось, что я, наконец, начал понимать принципы SOLID и их значение. Но применять эти принципы на практике оказалось сложнее.
Когда автор книги перешел к обсуждению архитектурных паттернов, мне, как начинающему разработчику, было сложно понять, как использовать эти принципы на уровне всей системы. Все изменилось, когда в одном из проектов мне потребовалось изменить архитектуру, объединяя логику нескольких сущностей. Тогда я осознал, насколько глубоко связана логика разных частей кода и как сложно внести изменения, не нарушив работу всей системы. Отсутствие тестов только усиливало мой страх перед изменениями.
И вот в этот момент я осознал важность Dependency Inversion и использования интерфейсов для взаимодействия компонентов. В моей голове всплыли все те диаграммы и примеры из книги, и я понял, насколько важно следовать принципам, описанным Дядюшкой Бобом.
Со временем до меня дошел смысл всех примеров плохого кода и архитектуры, о которых говорил Дядюшка Боб. И тут я понял: мой проект находится в состоянии явного "красного флага" 🚩.