Идея создания универсального агрегатора услуг, не ограничивающегося одним или несколькими направлениями, витала в воздухе уже давно.
Наша команда не упустила шанс и запустила в эксплуатацию такой агрегатор.
В результате получился проект, где можно найти исполнителей под любой запрос: от медицины до поставок автозапчастей.
Путь нашей команды был непростым и очевидно, что он далек от завершения.
Сегодня мы хотим поделиться своими рецептами разработки портала, который направлен на решение задач как бизнеса, так и частных клиентов.
Задавайте себе вопросы
Как только идея родилась и вы уже поняли, что будете над ней работать, задайте себе ряд вопросов.Помимо типичных коммерческих нюансов монетизации, продвижения и модели продаж, это должны быть технические вопросы, которые лягут в основу выбора технологий, используемых при разработке.
Есть три важных блока подготовки, на которые следует обратить внимание.
Напишите бизнес-требования — набор пользовательских задач, для решения которых предназначен ваш сайт, приложение, программное обеспечение.
Лучше всего, если это будут четко описанные процессы с указанием сторон и механизмов взаимодействия.
Например, для нас это выглядело упрощенно так: Сторона 1. Заказчиком услуги является человек, оставляющий заявку на сайте через специальную форму с набором полей для заполнения из справочника и открытых полей.
Сторона 2. Исполнитель – лицо (компания), которое отвечает на поступившую заявку и сообщает свои условия выполнения заказа: цену, количество, сроки и другие параметры.
Процесс: выбор заказчиком лучшего предложения из списка исполнителей.
Установив такую схему, легко понять, что необходимо реализовать в системе.
Давайте посмотрим на пример:
персона, компания - карточка компании, индивидуальная карта, аутентификация, авторизация заявка на сайте, варианты подрядчиков, выбор - внутренняя система отслеживания, почтовый клиент услуги, список - заполненные справочники создание запроса - формы запроса с различными полями в зависимости от услуги отслеживание запроса, выбора, ответа - личный кабинет, история запросов и ответов.Это очень упрощенный процесс описания бизнес-требований.
На самом деле важно проработать все до мельчайших деталей, составить схемы, отметить критические и некритические моменты.
В ходе такой работы по описанию бизнес-требований и построению схемы будущей программы, как правило, отсекается много лишнего, что может навредить разработке в будущем.
Соберите требования к пользовательскому интерфейсу.
Зная основной функционал будущей программы, можно предположить, какие блоки должен включать в себя интерфейс, как они будут взаимодействовать с пользователем и друг с другом.
Иногда на этом этапе компании уделяют слишком много внимания цветам, стилю и шрифту.
Это, безусловно, важные элементы, и над ними должен работать профессиональный дизайнер и планировщик, но сейчас важнее другое — удобство использования.
Воспроизводите действия пользователя, проектируйте их последовательность, моделируйте логику взаимодействия компонентов программы.
В принципе, для этого разработчику доступно множество сервисов; можно (и часто необходимо) использовать даже UML-диаграммы.
Но помните, что если рядом с вами в дизайне принимают участие люди, не занимающиеся программированием, но знающие аудиторию и рынок, то лучше всего вам поможет маркерная доска и флип-чат. На первом этапе вам действительно нужно собрать все детали, UML вас подождет. Определитесь с архитектурой программы.
На этом этапе проектируются бэкэнд, фронтенд и слой.
Исходя из планируемой загруженности проекта подбирается фреймворк и СУБД, планируются трудовые ресурсы.
Выбор своего набора инструментов для начала разработки Бонджойн , мы исходили из нескольких соображений.
Наша команда разработчиков владеет многими языками программирования, но для гибкого и постоянно обновляемого приложения мы отдаем предпочтение PHP. В программе планировалось ввести множество форм заявлений.
Все оказалось серьезнее, чем мы думали: без шуток, здесь уже 22 совершенно разных раздела услуг, от кастомного WEB-сайта до автозапчастей и туризма.
И это число растет с каждым месяцем.
Нам понадобятся сложные пользовательские фильтры.
Нам нужна безопасность и устойчивость к взлому, поскольку данные пользователей и пароли будут храниться.
Нам нужен почтовый клиент и удобная интеграция с ним.
Кстати, мы выбрали Amazon Simple Email Service (SES) — его инфраструктура показалась наиболее удобной с точки зрения отправки огромного количества писем.
Нам нужна возможность постоянно и глубоко дорабатывать систему — она находится в постоянном развитии и на тот момент у нас не было четкого видения ее конечного состояния.
Никакая CMS нам совершенно не подходит и мы хотим обеспечить максимальную управляемость сайта.
Мы любим jQuery за его простоту, легкий доступ к элементам DOM и API для работы с AJAX. Интерфейс будет простым и понятным.
Для нас важна продуктивность.
Мы долго изучали возможности различных фреймворков, спорили, слушали доводы приверженцев того или иного инструмента.
В итоге выбор пал на.
.
Йии.
Потом еще один первый.
Это было взвешенное и осознанное решение.
У нас было много вопросов по поводу фреймворка и только Yii, соответствующий одной из версий происхождения названия, на большинство из них ответил: «Да, это так».
Итак, что же привлекло нас в этом конкретном инструменте разработки?
Yii обеспечил скорость развертывания, стабильность поддержки и постоянные изменения.Кроме того, он очень хорошо документирован как на русском, так и на английском языке — вся команда разработчиков могла разобраться в нюансах работы с фреймворком.
Наш сервис задумывался как портал, предполагающий авторизацию и хранение пользовательских данных.
И Yii нам в этом очень помог.
Строгие алгоритмы безопасности обеспечивают надежную защиту от кражи файлов cookie и SQL-инъекций (SQL-инъекций).
Пока нам не пришлось добавлять защитное оборудование самостоятельно.
Клиентская часть Yii использует jQuery, простую, популярную и всеми любимую библиотеку JavaScript. Yii имеет отличную реализацию и документацию по работе с формами, включая проверку входных данных.
Yii необходим для командной работы.
Он имеет хороший контроль доступа для разработчиков и позволяет совместно использовать каталог фреймворка.
Компонентная структура и поддержка кэширования показались нам хорошим решением для портала социального сервиса, на котором в будущем может быть реализован форум, комментарии и система отзывов с возможностью обработки отзыва исполнителя.
Кроме того, Yii хорошо совместим с кодом других PHP-фреймворков и сторонних приложений.
Фреймворк значительно расширяет возможности PHP; многие библиотеки с компонентами просто созданы для разработки бизнес-приложений.
Фактически, каждый компонент можно использовать как расширяемый компонент. Наконец, Yii хорош для тестирования: он идеально настраивает тестовую среду, запускает модульные тесты, а ведение журнала ошибок упрощает отладку.
Гибкая, производительная среда с открытым исходным кодом позволила нам создать и развернуть веб-портал в кратчайшие сроки.
Бонджойн .
Сегодня мы уделяем больше внимания фронтенду, поскольку пользовательский интерфейс требует постоянных улучшений.
Что дальше?
Сейчас мы активно изучаем Yii2, который намного мощнее своего предшественника.Перед нами стоят новые задачи и мы хотим использовать существующий проект еще в нескольких направлениях.
В наших планах сделать Бонджойн многофункциональный портал, где будет реализовано множество возможностей, включая учет налогов и платежей, управление кадровым резервом для небольших компаний, аутсорсинг персонала, выделение площадей для партнерской и дилерской сети.
Очевидно, что эти задачи и бизнес-процессы требуют совершенно другого фреймворка, который сохраняет все лучшее от Yii1, но отличается от него как машина от телеги.
В результате мы сформулировали правила, которые могут помочь тем, кто находится на пороге реализации идеи своей программы.
Заранее предугадать конечное состояние программы невозможно – это связано с технологиями, потребностями пользователя и ограничениями.
Ограничения обязательно будут – по знаниям, времени, ресурсам.
И вы должны научиться вписываться в них, чтобы выйти на рынок и по ходу дела вносить изменения.
Все инструменты разработки должны соответствовать целям вашего бизнеса.
Если вы выбираете язык программирования, фреймворк, базу данных, почтовый клиент, CMS исходя из дешевизны, ясности и простоты, вы можете столкнуться с серьезными ограничениями.
Проектирование на начальном этапе существенно ускоряет разработку и значительно упрощает взаимодействие дизайнеров и разработчиков.
Важно уделять внимание не только передней части, но также задней части и дизайну.
Мы допустили несколько ошибок, и теперь их исправление стоит нам времени и денег.
Рассмотрим спиральную модель разработки, которая не только позволяет быстро создать работающий прототип, но и преодолевает риски, с которыми сталкиваются многие мелкие разработчики на ранних этапах: время выхода на рынок, ограниченный бюджет и ограниченность человеческих ресурсов.
Более того, спиральная разработка дает еще одно важное преимущество: ваш продукт не разрабатывается в лаборатории на основе гипотез, а получает разнонаправленную обратную связь от сотен и тысяч пользователей.
Их вызовы дают понять, где необходимо внести изменения в следующей итерации.
Однако при использовании спиральной модели разработки важно не забывать, что инструменты программистов должны позволять вносить изменения максимально быстро и с наименьшим риском для стабильности системы в целом.
Кстати, это одна из причин выбора фреймворка Yii — компонентная логика, ООП в ядре и парадигма MVC (Модель-Представление-Контроллер) позволяют менять систему максимально гибко и быстро.
При этом проблем с работой решения у пользователей не возникает. Но надо помнить, что на любом этапе разработки в первую очередь должны быть решены вопросы логики работы, хранения данных и безопасности.
Путь работы над ошибками и постоянного улучшения проекта даже интереснее, чем путь развития.
Особенно интересно, если при исправлениях обратиться к более совершенным инструментам и технологиям.
В любом случае, главное – не останавливаться, ведь весьма вероятно, что ваша идея уже созревает в чьей-то голове.
Теги: #Yii #разработка #дизайн #бизнес-требования #спецификация #разработка сайтов #Yii
-
Уход За Детской Ванной
19 Oct, 24 -
Рамблер Хакфест `08 Завершился
19 Oct, 24 -
Права Доступа. Спасибо Операторам Связи!
19 Oct, 24 -
Подкаст Unclesoky - Эпизод №23
19 Oct, 24