среда, 23 июля 2014 г.

О порядке хранения и аналоге в программировании

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

Давайте посмотрим мою процедуру инициализации
До уборки:
1. Я беру шуруповёрт в левую руку (как правило бита в нем подходящая, так что ее пока исключим)
2. Поскольку я знаю что буду делать и где что лежит, правой рукой беру из нужного угла или коробки (в которой шурупы одного вида) сразу горсть и иду работать.
Вся процедура занимает максимум 30 секунд.

После уборки
1. Шуруповёрт можно сразу не брать так как сначала надо найти банку в которой есть подходящие шурупы (делаем относительно легкий пресерч).
2. Далее, нужно произвести поиск и выборку каждого подходящего шурупа (о горсти можно забыть, пальчиками, пальчиками).
3. Теперь уже можно брать шуруповёрт и идти работать с тяжелой мыслью что шурупов насобирал мало и процедуру отбора придется повторить.
Операция занимает не менее минуты, это самый минимум, обычно больше.

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

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