Слишком чисто?

от автора

Привет, Хабр!

Предлагаю вашему вниманию перевод статьи «Too Clean?» автора Robert C. Martin (Uncle Bob).

image

Я только что посмотрел выступление Сары Мэй: Жизнеспособный код. Это было очень хорошо. Я полностью согласен с основными моментами ее выступления. С другой стороны, темой ее выступления было то, что я раньше должным образом не рассматривал.

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

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

Это не то, что я рассматривал или выражал ранее; хотя это всегда было то, что я застенчиво практиковал.

Может ли система быть слишком чистой? Можно ли настолько сосредоточиться на чистоте, что в системе никто практически не сможет работать?

Вот фотография моего офиса, сделанная сегодня. Что вы видите?

image

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

Но вокруг также имеется немного беспорядка. Рядом с принтером, расположенным в крайнем левом углу, находится BUG-A-SALT, готовый справиться с вторгшейся мухой. Справа, на вершине Тардис, выглядывающей через крайний правый экран, находится рулон туалетной бумаги. На случай, если я пролью свой кофе или захочу чихнуть. Вы сможете найти спиннер? Видите, кучу инструментов для рисования слева? А как насчет всех этих стикеров, фотографий и… А что в мире внутри всех этих дырок в шкафу?

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

Небольшой беспорядок в офисе полезен. Беспорядок существует из-за временных проблем. Мухи, кофе, чихание, каракули, праздные моменты, изменение рабочих приоритетов, и просто общие места, чтобы положить вещи, с которыми я не знаю, что делать. Без этого бардака мне было бы сложнее пользоваться рабочим местом. И очередное использование офиса снова вызвало бы беспорядок!

Так что, очевидно, я позволяю небольшому беспорядку проникать в мой офис. Эта неразбериха позволяет решить временные проблемы. Но, так же ясно, что я борюсь за то, чтобы держать этот бардак под контролем. Я борюсь за чистоту офиса. И это непросто!

Применимо ли это правило к коду? Это абсолютно так! Когда я пишу код, я изо всех сил стараюсь держать его в чистоте. Но есть и небольшие места, где я нарушаю правила именно потому, что эти нарушения дают возможность решить временные проблемы.

Например, я очень стараюсь отделять presenters от views. Код, который помещает данные в презентабельную форму, не должен находиться рядом с кодом, который выводит эти данные на экран. С другой стороны, когда вы пытаетесь заставить экран выглядеть и функционировать должным образом, очень сложно переключаться между двумя различными файлами. Иногда просто имеет смысл снова объединить код, получить все, что работает так, как вам нравится, а затем повторно разделить код. Эта техника известна под названием „Лучше хуже“.

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


ссылка на оригинал статьи https://habr.com/ru/post/476076/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *