Pull to refresh

Библия проектирования. Часть первая. Создание мира

Designing and refactoring
image

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



День первый. Отделяем свет от тьмы


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

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

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

Напиши, что действительно важно.

Важней скорость разработки или производительность?
Будет ли это набор use-case'ов или несколько экранов для настройки всего и вся?

Удели внимание описанию идеологии проекта.
То, что ты создашь сегодня, станет аксиомами твоего нового мира.

День второй. Небесная твердь. Что будет снаружи, а что внутри.


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

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

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

День третий. Суша и растительность.


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

День четвертый. Светила.


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

Не используй средства, не подходящие тебе по идеологии. Чем меньше энтропия — тем лучше.

Мысли категориями и абстракциями. А прототип интерфейса поможет увидеть тебе, как все будет работать.

Подумай о том, как ты будешь питать данными свои алгоритмы, и как тебе помогут созданные упрощения.

Как компоненты системы будут взаимодействовать между собой и внешним миром?
Как ты будешь обрабатывать ошибки, какие сбои возможны в системе, каков их приоритет?

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

День пятый. Живые существа.


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

Научи его взаимодействовать с системой. Ему не нужно знать о мире все, достаточно только жить в нем — со временем он познает твою мудрость и станет идеальным.

А сейчас… Сейчас можно включить контер-страйк, и устроить массовую заварушку с соседями.

Предстоят великие свершения и падения, но об этом не сегодня — нужно как следует отдохнуть.

Ведь не каждый же день во вселенной создается еще один мир.
Tags:проектированиесистемамир
Hubs: Designing and refactoring
Total votes 201: ↑156 and ↓45 +111
Views4.4K

Popular right now