Стартап. Этап 2 - Проектирование.

Напомню, что у Вас должно быть на данном этапе:

  • техническая база
  • бумага с Вашими измышлениями о сервисе

Негусто? Густо! Главное - сформулировать задачу, а уж решить её - дело второе. =)

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

Этап 2 - Проектирование

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

База данных

На базу данных времени не жалейте - это основная и самая ценная часть Вашего сервиса (кто знает, сколько стоит база пользователей среднего сервиса? =))! Продумайте набор таблиц (если есть схема данных, то дело уже наполовину сделано!), уровень нормализации и её обоснованность, внешние ключи, триггеры. Для всех этих процедур я советую использовать MySQL Workbench 5.0 OSS, но, как и писал ранее, Вы вольны выбирать инструмент сами. Если проект задумывается на использование большой аудиторией, то продумываем и возможности будущего масштабирования.

Ядро сервиса

Как Ваш сервис будет работать? Думаю, стоит обратить свой ясный взор на ООП и применить его для решения Вашей задачи. Если у Вас есть таблица классов, то ещё полдела сделано (не удивляйтесь: половин у нас много)! Чётко определите схему размещения файлов скриптов, заготовьте конфиги. Для манипуляции с БД советую использовать паттерн проектирования Active Record, инкарнацию технологии ORM. И вообще, паттерны проектирования применять следует, но аккуратно.

Админка

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

Резервное копирование и восстановление БД

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

Обратная связь

Обязательно стоит предусмотреть возможность обратной связи для пользователей. Отзывы, отчёты об ошибках, предложения…

Журналирование и Статистика

Это сразу и эффективный метод обнаружения ошибок, и мощный маркетинговый инструмент. Добавить нечего. =)

Шаблоны

Советую не заморачиваться с изобретением велосипеда и взять бесплатный, довольно эффективный движок шаблонов Smarty. Все динамические (да и статические для удобства управления!) страницы лучше пропускать через шаблонизатор.

К этому моменту у Вас должно сформироваться представление о техническом исполнении проекта. Всё, можно перестать думать и на следующем этапе начать реализацию. =)

P.S.: Какие-то примеры архитектур я не привожу, потому что каждый случай уникален. Если Вам интересно моё мнение по поводу того или иного случая, можете обратиться ко мне по контактам, перечисленным в правой колонке или вот в этих скобках → (huze@mail.ru, huzemail@gmail.com, ICQ 4528255). С удовольствием помогу советом.


Ссылки:

Комментариев: 3

  1. Породы программистов (часть один)… « Блог Серёжи Борзова пишет:

    […] делом): Паша написал “энциклопедическую” серию постов про стартапы. Так что старпёры вперед!!! А я решил […]

  2. Стартап. Этап 1 - Подготовка. пишет:

    […] Стартап. Этап 2 - Проектирование. […]

  3. Итерационная модель разработки пишет:

    […] статье Стартап. Этап 2 - Проектирование я привёл список того, что обычно следует продумать на […]