January 18th, 2010

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

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

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

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

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

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

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

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

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

Перевод мой, при использовании ссылка на мой живой журнал обязательна!

Спасибо коллеге!

Обнаружил сегодня ссылку на свои переводы, что не могло не порадовать :)

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

И несмотря на это, все равно очень много общего :) Так что рекомендую!