Какой язык и (возможную) структуру веб-приложения я должен использовать для разработки веб-приложения с высоким трафиком? - PullRequest
3 голосов
/ 26 ноября 2009

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

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

  • PHP
  • рубин
  • Java
  • .NET
  • Другие ...

А также фреймворки, такие как:

  • CodeIgniter
  • Symfony
  • Zend Framework
  • Рубин на рельсах
  • ASP .NET
  • Многие другие ...

Насколько я видел, кажется, существует какой-то компромисс между удобством разработки и эффективностью, поэтому я пытаюсь найти баланс между этими двумя вещами (среди множества других соображений).

До сих пор я знаю PHP, Java, C #, Visual Basic на среднем уровне. Тем не менее, я хотел оставьте опцию языка открытой, так как я готов выучить другой язык, если необходимо, например, ruby, так как он кажется довольно интересным.

С другой стороны, хотя это решение, вероятно, не будет достаточно объективным, необходимо учитывать некоторые цифры. Мне кажется, я читал, что java, например, медленнее, чем PHP.

Итак, в конце концов, что я должен использовать в зависимости от потребностей приложения?

Если вы разработали нечто подобное, какой из вариантов сработал для вас?


РЕДАКТИРОВАТЬ: я прочитал ответы и некоторые другие ресурсы, и большинство людей говорят, что любой язык может масштабироваться и быть настолько эффективным, насколько вам нужно, при условии, что вы знаете, как определить масштабируемую архитектуру и методы оптимизации. Хотя это правда и звучит довольно обнадеживающе, верно также и то, что некоторые языки / структуры более ресурсоемки, чем другие, и, конечно, затраты являются ограничением (что почти всегда так, но я забыл добавить в свой вопрос изначально) ,

Кроме того, использование фреймворка сейчас почти дано.

Ответы [ 6 ]

10 голосов
/ 26 ноября 2009

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

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

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

5 голосов
/ 26 ноября 2009

Знаете ли вы, что на этот вопрос нет однозначного ответа?

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

Поскольку вы собираетесь разрабатывать эту вещь самостоятельно, лучшее, что вы можете сделать, - это выбрать язык, на котором вам удобно.

Поэтому я предлагаю следующее:

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

Как только вы выберете, что делать, закодируйте эту страницу со всеми доступными опциями и измерьте, сколько времени вам потребовалось, чтобы выполнить следующее и / или насколько сложно было:

  1. Получить SDK, среду, инструменты и т. Д. Redy.
  2. Создайте страницу самостоятельно, чтобы вы были довольны.
  3. Создать макет теста рабочей нагрузки (отправить несколько запросов)
  4. Измерьте, сколько нужно каждому с точки зрения памяти, процессора, использования диска и т. Д.
  5. Получить документацию и поддержку на форумах и т. Д. По данной технологии.
  6. И, наконец, более важно, какой из них вам понравился больше всего.

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

Я не говорю вам: «1029 *« Делайте это на C # с asp.net, потому что бла-бла-бла », если вы думаете, что это отстой! и вы либо уроните его, либо поменяете на что-нибудь другое.

Этот эксперимент также полезен для будущих ссылок.

3 голосов
/ 29 ноября 2009

Facebook работает на PHP

Google использует Python и Java

M? S [FOU] использует .NET

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

2 голосов
/ 26 ноября 2009

Хотя я, честно говоря, не очень много использовал, когда я читал о том, что делается с Python, у него, похоже, есть те преимущества, которые вы ищете - надежная расширяемость, масштабируемость и чувство сплоченности, которые я нахожу отсутствует в других языках (в частности, в PHP).

Я бы рассмотрел Python / Django, если вы не изучили его.

1 голос
/ 26 июля 2010

Вы можете пойти с Python + Django. Это крутой способ создать приложение.

1 голос
/ 26 ноября 2009

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

Также ознакомьтесь с jQuery, очень мощной и простой в использовании клиентской библиотекой Javascript, которая должна упростить некоторые ваши пользовательские взаимодействия в Вики.

...