YAGNI препятствует ориентированному на данные коду, а может это не так?
Принцип YAGNI говорит, что мы не должны писать код, который в текущий момент не востребован. Хотя некоторые части нашей системы могут оказаться в большем выигрыше, будь они построены на данных, а не на коде. Таким образом, если мы будим следовать YAGNI, то можем и не создать такого кода. Но постойте. Как насчёт правил простоты?
Читать всё...
Изучаем методики XP
Первое представление о системе.
Программист имеет право знать, что от него требуется. Так гласит одна из статей "конституции" экстремального программирования о правах участников. Первое, что программист должен знать - это общая информация о системе. Её можно выразить метафорой или тем, на что разрабатываемая система должна быть похожа. Это ещё не конечные требования, а простой способ получения представления о системе. Он полезен не только для пользователей этой метафоры, но и для создателей, как средство осмысления своих потребностей, что немаловажно. Но метафора не обязательно всецело сводится к простому сравнению с аналогами. В большинстве случаев сравнение с общеизвестными вещами - это точка опоры, позволяющая начинать о чём-то говорить. Можно назвать это общей темой для разговора между программистами и заказчиками. Например, заказчики начинают: "Создать систему учёта клиентской задолженности, которая будет похожа на
электронную таблицу". Тут в разговор включаются программисты: "А нельзя ли нарисовать что-то похожее на то, что вы ожидаете увидеть?". "Макет её уже есть в виде документа Excel" - вспоминают заказчики. В таком духе необходимо и продолжать вытягивать информацию из заказчиков. Кажущиеся важными детали стоит записать на бумаге и дать ознакомится заказчикам. Важно понимать, что метафора - не формализованная директива и впоследствии обязательно будет изменена и усовершенствована. Метафора, как и любой другой артефакт экстремального программирования, имеет своё ограниченное время жизни: пока не утратит свой смысл или не будет реализована в программе.
Упражнение.
Придумать и записать метафору для светофора. Стоит начать с того, на что он похож и зачем нужен. Можно организовать это в виде дискуссии. Если светофор покажется слишком сложным, можно воспользоваться чем-то компьютерным, например редактором для языка C# или Java.
Адресуйте свои решения нам, lessons@xprogramming.com.ua.
Будем рады увидеть не только их, но и ваши отзывы и пожелания.