Обновляемый подход для разработки системы веб-приложения

Много poeple имеют стартапы онлайн в голове, которая может потенциально притягивать миллионы, но большую часть времени у Вас только будет минимальный бюджет (время и ресурс) для запуска с того, таким образом, Вы захотите поставить его в течение года. Короткий после запуска, Вы обязаны выполнить один или ряд обновлений, которые могут включать: код осуществляет рефакторинг к более новой основе, добавляя иерархию (иерархии) в программной архитектуре или реструктурирует базу (базы) данных. Этот цикл обновляет/осуществляет рефакторинг, продолжается как:

  • Новые возможности, avaiable в последней версии языка (языков) / платформа (платформы), Вы используете.
  • Доступность новых компонентов/платформ/плагинов, которые могут потенциально улучшить продукт.
  • Требование имеет изменения, это - направление, существующий продукт не был разработан для преодоления новых потребностей.

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

  • Выбор языка (языков) для веб-приложения.
  • Решение для использования платформы или нет? (Рассмотрите издержки),
  • Выбор DBMS и его дизайн
  • Выбор аппаратных средств (средств) и установки?
  • Стратегия к постоянным изменениям в требованиях (который может быть естественным из веб-приложения),
  • Стратегия/решение к общей модернизации
7
задан Trav L 27 December 2009 в 12:53
поделиться

3 ответа

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

Самое ценное, что вы можете сделать, это использовать Agile-подход к построению программного обеспечения. В частности, вы должны поддерживать среду, в которой новая сборка может быть (и есть) создана ежедневно. Хотя ежедневные сборки являются только одним из аспектов Agile, это практика, которая является наиболее важным в решении вашего вопроса. Хотя это не то же самое, что модернизируемость, как таковая, тем не менее, вводит дисциплину в процесс, который помогает уменьшить вероятность того, что ваша кодовая база станет громоздкой (или что вы станете Архитектор Astronaut ).

Что касается рамки и языки идти, есть два основных требования: чтобы структура быть долговечным и стабильным, и что окружающая среда поддерживает Разделение опасений . ASP.NET хорошо зарекомендовала себя в этом отношении: она развивалась рационально и без разрывов, которые делают старый код недействительным. Я использую отдельный уровень бизнес-логики для управления SoC, но ASP.NET теперь поддерживает и разработку MVC. Напротив, после нескольких месяцев работы с PHP мне стало не нравиться, потому что это просто поощряет неаккуратные практики, которые ставят под угрозу будущие обновления.

Что касается выбора СУБД, то любая современная СУБД (SQL Server, MySQL, Oracle) будет хорошо вам подходить. Однако, вот ключ: вам придется обслуживать DDL-скрипты для управления обновлениями. Это просто факт из жизни. Итак, как же сделать этот процесс трассируемым? Единственным наиболее ценным инструментом от любого стороннего разработчика является моя копия SQL Compare от Red Gate. Раньше этот процесс был полным кошмаром и значительным перетаскиванием моей способности развивать свой код, пока я не нашел этот инструмент. Итак, общая рекомендация заключается в том, чтобы использовать базу данных, для которой существует инструмент для сравнения структур баз данных. SQL Server просто очень повезло в этом отношении.

Оборудование почти не волнует. Вы всегда можете перейти на новое оборудование, пока ваш процесс разработки включает в себя с разумным процессом сборки релиз.

Стратегия для постоянного изменения требований. Опять же, см. Agile. Я бы посоветовал вам больше не думать о них как о "требованиях" - в традиционном смысле большого документа, наполненного спецификациями. Agile меняет это в важных аспектах. Я также не храню документ с требованиями, за исключением случаев, когда работаю по контракту с внешним, платящим клиентом, так что я могу быть уверен в правильности выставления счетов и предотвратить ползучесть функции. На данный момент наш внутренний процесс является настолько быстрым и текучим, что отчеты из нашего запроса функции / программное обеспечение для управления ошибками (FogBugz, если вы хотите знать) служит в качестве нашей документации при документировании нового релиза для маркетинга.

стратегия / решение для полного редизайна является: не надо. Если вы вложите разумную долю мысли в процесс , который вы будете использовать, выберете основные инструменты и введете Разделение опасений, то ничто иное, как полный отказ от HTTP и СУБД, не должно вызвать тотального редизайна.

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

5
ответ дан 7 December 2019 в 10:03
поделиться

Для того, чтобы сделать шариковую прокатку, я бы подумал, что язык/фреймворк, поддерживающий концепцию инъекции зависимости (или Инверсии Контроля, как это, кажется, называется в наши дни), будет на первом месте в списке.

.
1
ответ дан 7 December 2019 в 10:03
поделиться

Вы обнаружите, что технологию СУБД нелегко масштабировать. Все производители скажут Вам иначе, но при попытке использования нескольких серверов и балансировке нагрузки проявятся присущие им ограничения. Все остальное может быть дополнено "большим железом" и может быть более эффективным кодом, но СУБД не могут быть легко разделены и распределены.

Веб-приложения, как мы надеемся, будут стимулировать инновации в технологиях СУБД и помогут нам вырваться из архаичного мышления Модели Реляций. Это уже давно назрело.

Я рекомендую с самого начала обратить большое внимание на это слабое звено

.
0
ответ дан 7 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: