// codeart.ru / Обзоры / Про абстрагирование потока управления Форум

Про абстрагирование потока управления rss подписка

Автор: Evgeniy Sergeev

Саша Щепановский написал интересную статью — абстрагирование потока управления в которой наглядно показал, как можно из кода, который содержит несколько аспектов, сделать код, в котором каждый из аспектов может существовать сам по себе.

После прочтения статьи у меня появилось две мысли, далее о них подробнее.

Во-первых, статья правильная. То есть, с позиции программиста-идеалиста, она описывает вполне себе правомочные и, можете быть, даже обязательные преобразования, которые нужно сделать над кодом с целью его улучшения. Такие статьи интересны тем, что в них отражен ход мыслей разработчика, понятным языком объяснены причины, по которым принимались те или иные решения (правда мне так и непонятны первоначальные мотивы — зачем было улучшать код?). В общем, с позиции образования и саморазвития статья очень полезная.

Во-вторых, я подумал о практической применимости данной статьи к моим проектам. Точнее я подумал следует ли мне взять и создать кучу мелких абстракций. В принципе, кода где несколько аспектов завязаны между собой в неразрывную связку у меня хватает. И было бы неплохо эти связи немного ослабить. Правда есть одно «но» — код от этого становится сложнее воспринимать, так как у нас дополнительно появляются новые имена для выделенной функциональности. И здесь действует правило, что человек быстро забывает то, что редко использует.

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

Да и вообще, я все больше прихожу к мысли, что сопровождать свой, пусть даже очень страшный код, все равно проще чем чужой, пусть даже самый идеальный код. Да и размер проекта сильно играет. В моей действительности нет задач, которые требовали бы сотней программистов и миллионов человека-часов. Так что давайте будем честны перед собой, во многих ситуациях, когда мы говорим о необходимости улучшать код, мы просто занимаемся самолюбованием и самокопанием. Реальных причин-то особо и нет.

В случаях, когда у нас есть удобный и продуманный интерфейс, развитая инфраструктура, то нам даже не видно какой код находится за этим «фасадом». В принципе, он может быть любым. Это как в автомобиле — не имеет значение насколько сложно поменять лампочку ближнего света, до тех пор пока это делает механик в автосервисе.

Leave a Reply

« »