На будущее

Срубы от 30 000 рублей: аренда коттеджа на выходные. Аренда дома, Новая Рига,38 км.

Из всех книг по программированию меня очень зацепила книжка Бэка "Экстремальное программирование". Сама концепция так называемого test driven development-а, да впрочем и как и само парное программирование, да и идея что заказчик сидит рядом и всегда доступен и отвечает на вопросы, т.е. он часть команды - все эти идеи на данной ступени развития кажутся мне чем-то из области фантазий, которые практически не реализуемы, по крайней мере в той части мира программирования, в которой все мы варимся. Но что действительно было интересно, так эта их идея о том, что все задачи должны быть реализованы самым простым способом из возможных, в случае чего - всегда можно отрефакторить. Однако, как назло, в программировании считается очень крутым писать расширяемые, настраиваемые вещи - и это частенько порождает проблемы.

Все дело в том, что возможности для расширения оказываются очень часто лишними. Пример: программист, проектируя одноязычный сайт - заложил в него возможность сделать мультиязычность (в самой системе), ожидая что вдруг вот заказчику захочется это сделать - а он так Хуяк! (с) - и сайт теперь еще и китайский - и все это одной настройкой. Звучит просто замечательно - и многие прогеры скажут что это круто, и они стремяться делать также. Но, почему-то никто не учитывает, что чтобы заложить мультиязычность - нужно повозиться, а это время. И не факт, что заказчику она вообще понадобится. Т.е. за это потерянное время может никто еще и не заплатить.

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

Поэтому, если вы пишите что-то подобное:

function format_date_output($date) {

    // на будущее

    return $date;

}

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

  • Сергей

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

  • Razor

    Везде нужна золотая середина, т.к. есть интеллектуалы, которые копипастят один и тот же код, кода его можно было бы как-то сгруппировать и упростить.
    В тему про будущее – пример вывода списка годов, для какой-нибудь статистики.
    Как было:

    2005
    2006
    2007
    2008
    2009
    2010

    Как стало:

    <?php for( $y=2005; $y
    <option value=»">

    Таким образом убили двух зайцев: 1. Уменьшили код, 2. Добавили «взгляд в будущее», теперь не надо каждый новый год помнить, что надо заходить в код и добавлять еще одну строчку.

  • Razor

    Везде нужна золотая середина, т.к. есть интеллектуалы, которые копипастят один и тот же код, кода его можно было бы как-то сгруппировать и упростить.
    В тему про будущее – пример вывода списка годов, для какой-нибудь статистики.
    Как было:
    <select name="year">
    <option value="2005">2005</option>

    <option value="2006">2006</option>
    <option value="2007">2007</option>
    <option value="2008">2008</option>

    <option value="2009">2009</option>
    <option value="2010">2010</option>
    </select>
    Как стало:
    <select name="year">
    <?php for( $y=2005; $y<=date(‘Y’); $y++ ) : ?>

    <option value="<?php echo $y; ?>"><?php echo $y; ?></option>
    <?php endfor; ?>
    </select>
    Таким образом убили двух зайцев: 1. Уменьшили код, 2. Добавили «взгляд в будущее», теперь не надо каждый новый год помнить, что надо заходить в код и добавлять еще одну строчку.

  • http://a2x.ru a2x

    На будущее + документация (хотя бы скудная, которая кочует из проекта в проект) все же лучше, пишет человек у которого все же не было опыта разработки больших проектов, но есть опыт поддержки :)


Информеры с тИЦ и PR: получить код для сайта