Какой язык (Java или Python) + фреймворк для веб-проекта среднего размера? - PullRequest
2 голосов
/ 07 августа 2010

Я планирую начать веб-проект среднего размера, какой язык + фреймворк вы бы порекомендовали? Я знаю Java и Python. Я ищу что-то простое.

Является ли App Engine хорошим вариантом? Мне нравится общая простота и бесплатный хостинг, но я беспокоюсь о хранилище данных (насколько сложно сделать его так же быстро, как стандартное решение SQL? + Мне нужен полнотекстовый поиск + Мне нужно фильтровать объекты по нескольким параметрам).

А как насчет Java с полосами? Должен ли я использовать другой фреймворк в дополнение к Stripes (например, для базы данных).

UPDATE: Спасибо за совет, я наконец решил использовать Django с Eclipse / PyDev в качестве IDE. Python / Django прост и элегантен, он широко используется и имеет отличную документацию. Небольшим недостатком является то, что, возможно, мне придется купить VPS, но не должно быть очень сложно перенести проект на App Engine, который в некоторой степени бесплатен.

Ответы [ 9 ]

4 голосов
/ 07 августа 2010

Поскольку вы упомянули Python, я бы посоветовал изучить Django . Возможно, вам придется поискать варианты хостинга более усердно, но ...

3 голосов
/ 07 августа 2010

Является ли App Engine хорошим вариантом?Мне нравится общая простота и бесплатный хостинг, но я беспокоюсь о хранилище данных (насколько сложно сделать его так же быстро, как стандартное решение SQL? + Мне нужен полнотекстовый поиск + Мне нужно фильтровать объекты по нескольким параметрам).

App Engine это хорошо.Он поддерживает Pyhton или Java (с некоторыми ограничениями ), он предоставляет бесплатный хостинг для небольших нужд (редко, по крайней мере для Java).Но я бы не ожидал, что производительность будет точно такой же, как у выделенных серверов, облако - это масштабируемость, а не производительность (вы не всегда получите самое быстрое время отклика для одного попадания; однако GAE будет обрабатывать миллиарды одновременных обращений без какого-либопроблема, пока ваши серверы будут в огне).Но эта масштабируемость не обходится без затрат, и если она вам не нужна, компромиссы при разработке могут быть слишком большими проблемами.Также обратите внимание, что не поддерживает полнотекстовый поиск из коробки (что за ирония), вам придется использовать дополнительные инструменты.

А как насчет Java с Stripes?Стоит ли использовать другой фреймворк, кроме Stripes (например, для базы данных).

Мне очень нравятся Stripes.Мне нравятся его соглашения о подходе к настройке, это очень элегантная и простая структура (но все же мощная).Определенно не плохой выбор.Для настойчивости, если вы идете на GAE, вам придется использовать JPA или JDO.Если вы этого не сделаете, это на ваше усмотрение (хотя я бы пошел на JPA).

См. Также

2 голосов
/ 07 августа 2010

Как много вещей в жизни, это зависит от ваших целей. Если вы собираетесь изучать веб-инфраструктуру, которая используется в корпоративных средах, выберите решение на Java. Если нет, не надо. Python, безусловно, более элегантный и в целом веселее почти во всех отношениях.

Относительно того, какую платформу использовать, у django больше всего ума, о чем свидетельствует количество вопросов, задаваемых по этому поводу здесь. Насколько я понимаю, это тоже довольно хорошо. Тем не менее, он лучше всего подходит для веб-сайтов, похожих на CMS - по крайней мере, для этого он предназначен и для чего оптимизирован. Вы также можете взглянуть на один из более простых и ловких, например, относительно новый flask. Все это приятно, хотя не все они могут иметь все функции в AppEngine.

1 голос
/ 09 августа 2010

Kay и Tipfy - отличный выбор фреймворка Python, когда вы нацелены именно на GAE. Кей смоделирован после и похож на Джанго, но лучше подходит для GAE.

0 голосов
/ 07 августа 2010

За последний год я создал несколько приложений для GAE (с Python). Трудно превзойти легкость, с которой вы можете быстро запустить и запустить приложение. Не сбрасывайте со счетов ценность только в этом.

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

0 голосов
/ 07 августа 2010

Google App Engine + GWT, и у вас есть довольно мощная комбинация для разработки веб-приложений.Хранилище данных довольно быстрое, и оно до сих пор прекрасно справлялось со мной.

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

Что касается поиска, я не думаю, что он поддерживается в фреймворке.По параметрам возможна фильтрация.

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

0 голосов
/ 07 августа 2010

Это зависит от вашей личности.Правильного ответа на этот вопрос нет больше, чем правильного ответа на вопрос: «Какой автомобиль мне следует водить?»

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

Если вы настоящий хакерский тип, я думаю, вы найдете неудовлетворительным фреймворк с полным стеком, такой как Rails или Django.Эти фреймворки являются «самоуверенным» программным обеспечением, а это означает, что вы должны действительно принять авторское видение, чтобы быть максимально продуктивным.

Замечательная вещь о веб-разработке в мире Python - это несколько замечательных минимальных фреймворков.Я использовал несколько, в том числе web.py, веб-приложение GAE и cherrypy.Эти фреймворки похожи на «вот запрос, дай мне строку для обслуживания».Это сырье.Не думайте, что вы застрянете в связывающих строках Python, Боже, нет.Также есть несколько отличных шаблонных библиотек для Python.Я могу лично порекомендовать Гепарда, но Мако тоже хорошо выглядит.

0 голосов
/ 07 августа 2010

Я не думаю, что хранилище данных является проблемой.Многие люди отвергнут это из-за контроля, потому что им нужна стандартная реляционная база данных;Если вы готовы рассмотреть хранилище данных в целом, то я сомневаюсь, что у вас возникнут проблемы с хранилищем данных GAE.Лично мне это очень нравится.

То, что может сбить вас с толку, это эксплуатационные ограничения.Например, знаете ли вы, что HTTP-запрос должен быть выполнен в течение 10 секунд?

Что если вы пройдете 50% пути через проект, а затем обнаружите, что веб-службе, которой вы пользуетесь, иногда требуется 15 секунд для ответа?Теперь ты тост.Вы не можете доплатить, чтобы повысить лимит или что-то в этом роде.

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

0 голосов
/ 07 августа 2010

Я немного разбираюсь в App Engine, и пока DataStore работает довольно быстро ... есть некоторая кривая обучения по сравнению с SQL, но у меня не было никаких реальных проблем. Я не уверен в полнотекстовом поиске, однако фильтрация проста, вы просто запускаете каждый фильтр по одному.

class DBModel(db.Model):
    field1 = db.StringProperty()
    field2 = db.StringProperty()
    field3 = db.IntegerProperty()

GQLObj = DBModel.all().filter('field1 =', 'Foo')
GQLObj = GQLObj.filter('field2 =', 'Bar')

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

...