Правило туриста

(В оригинале - The Boy Scout Rule)

У настоящих туристов есть правило: «Всегда оставляй место стоянки чище, чем оно было до вас». Если стоянка загажена, вы ее очищаете независимо от того, кто ее загадил до вас. Тем самым вы обеспечиваете приятное окружение следующей группе туристов. В оригинале это правило, сформулированное основоположником движения скаутов Робертом Стивенсоном Смитом Баден-Пауэлом, звучало так: «Старайтесь оставить этот мир чуть лучше, чем он был до вашего прихода»

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

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

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

Откровенно говоря, это должно стать правилом приличия, как мытье рук после туалета или выбрасывание мусора в урну, а не куда попало. Написание «мусорного» кода должно быть столь же неприемлемым, чем-то таким, чего никто не делает.

Но есть еще одно «но». Кроме заботы о своем собственном коде, нужно еще заботиться и коде всей команды. Команда должна помогать друг другу, в том числе и убирать мусор друг за другом. Следование правилу настоящего туриста выгодно всем!

Автор оригинала - Uncle Bob

results matching ""

    No results matching ""