Какой язык и (возможную) структуру веб-приложения я должен использовать для разработки веб-приложения с высоким трафиком?
В настоящее время я нахожусь на этапах предварительного планирования сольного проекта разработки веб-приложения для университета, который ограничен во времени примерно на год. Приложение будет иметь определенные вики-подобные функции и может в конечном итоге получить большой объем трафика в будущем, поэтому любой язык и структура, которые я выберу, должны иметь в качестве приоритета способность справляться с большим количеством стресса достаточно эффективным образом. (это означает, что это не должно быть боров сервера, так как это будет означать более высокое оборудование, обслуживание и другие связанные с этим расходы). Вторым приоритетом является сокращение времени и сложности разработки.
На данный момент я сталкиваюсь с параличом анализа, так как кажется, что есть из чего выбирать. Например:
- PHP
- Рубин
- Джава
- .СЕТЬ
- Другие...
А также фреймворки, такие как:
- CodeIgniter
- Symfony
- Zend Framework
- Рубин на рельсах
- ASP .NET
- Многие другие...
Насколько я видел, кажется, что между удобством разработки и эффективностью существует какой-то компромисс, поэтому я пытаюсь найти баланс между этими двумя вещами (среди множества других соображений).
До сих пор я знаю PHP, Java, C#, Visual Basic на среднем уровне. Тем не менее, я хотел оставить опцию языка открытой, так как я готов выучить другой язык, если необходимо, например, ruby, так как он кажется довольно интересным.
С другой стороны, хотя это решение, вероятно, будет недостаточно объективным, необходимо учитывать некоторые цифры. Я считаю, что я читал, что Java, например, медленнее, чем PHP.
Итак, в конце концов, что я должен использовать в зависимости от потребностей приложения?
Если вы разработали нечто подобное, какой из вариантов сработал для вас?
РЕДАКТИРОВАТЬ: я прочитал ответы и некоторые другие ресурсы, и большинство людей говорят, что любой язык может масштабироваться и быть настолько эффективным, насколько вам нужно, при условии, что вы знаете, как определить масштабируемую архитектуру и методы оптимизации. Хотя это действительно так и звучит довольно обнадеживающе, верно также и то, что некоторые языки / структуры более ресурсоемки, чем другие, и, конечно, затраты являются ограничением (что почти всегда так, но я забыл добавить в свой вопрос изначально),
Кроме того, использование фреймворка сейчас почти дано.
6 ответов
Так как это сольное занятие, и вы явно работаете с временными ограничениями, используйте тот, который лучше всего подходит для вас.
Существует множество примеров крупных сайтов, которые используют все технологии, которые вы упомянули. Честно говоря, пока вы не получите пробок, это не будет иметь большого значения. И даже тогда есть вещи, которые у вас будут (надеюсь) иметь деньги, чтобы использовать их для смягчения проблемы.
Попытка убедить вас в том, что какой-то конкретный язык / стек действительно будет сводиться к предпочтениям и / или предубеждениям человека, делающего рекомендацию.
Вы знаете, что на этот вопрос нет однозначного ответа?
У каждого из них есть свои плюсы и минусы, а возможность создавать что-либо с помощью одного из них зависит от разработчика и дизайна приложения.
Поскольку вы собираетесь разрабатывать эту вещь самостоятельно, лучшее, что вы можете сделать, - это выбрать язык, на котором вам удобно.
Поэтому я предлагаю следующее:
Из вашего приложения выберите простейшую вещь, которую вы хотите построить (например, страницу входа и о странице, или почти все, что угодно. Суть в том, что она должна быть чрезвычайно простой)
После того, как вы выберете, что делать, закодируйте эту страницу со всеми доступными опциями и оцените, сколько времени вам потребовалось, чтобы выполнить следующее и / или насколько сложно было:
- Получить SDK, среду, инструменты и т. Д. Redy.
- Создайте страницу самостоятельно, чтобы вы были довольны.
- Создать макет теста рабочей нагрузки (отправить несколько запросов)
- Измерьте, сколько занимает каждый с точки зрения памяти, процессора, использования диска и т. Д.
- Получить документацию и поддержку на форумах и т. Д. По данной технологии.
- Напоследок и еще важнее, какой из них тебе понравился больше всего.
Жизненно важно, чтобы страница была предельно простой. Посвятите неделю или две этому упражнению и сделайте нам одолжение, опубликуйте результаты;)
Я не говорю вам: "Делайте это в C# с asp.net, потому что бла-бла-бла", если вы думаете, что это отстой! и вы либо бросите это на пути и поменяете на что-то другое.
Этот эксперимент также полезен для будущих ссылок.
Facebook работает на PHP
Google использует Python и Java
M? S [FOU] использует.NET
Итак, как говорили другие - это то, что вы знаете, и что вы можете использовать. Если вы ничего не знаете, выберите один и бегите с ним.
Хотя я, честно говоря, мало этим пользовался, когда я читал о том, что делается с Python, у него, похоже, есть те преимущества, которые вы ищете - надежная расширяемость, масштабируемость и чувство сплоченности, которые я считаю отсутствующими из других языков (в частности, PHP).
Я бы рассмотрел Python/Django, если вы не изучали его.
Вы можете пойти с Python + Django . Это крутой способ создать приложение.
Поскольку это университетский проект, я серьезно задумался над изучением Ruby и Ruby on Rails. Это очень продуктивная среда с большим количеством действительно хороших книг и ресурсов, а также сообществом, к которому можно обратиться. И если вы пойдете в коммерцию, у вас будет достаточно ног, чтобы увести вас довольно далеко.
Также ознакомьтесь с jQuery, очень мощной и простой в использовании клиентской библиотекой Javascript, которая должна упростить некоторые ваши пользовательские взаимодействия в Вики.