Как ограничение является веб-платформами

Это - общий вопрос о том, как ограничение является платформами веб-разработки, такими как Django и рубин на направляющих.

Я - планирование создания УСПОКОИТЕЛЬНОГО веб-сервиса, который будет иметь просто интерфейс JSON/XML, никакой GUI. Сервис будет полагаться на базу данных однако для нескольких более важных операций нет никакого ясного способа сохранить "образцовый" объект непосредственно в таблицу базы данных. Кроме того, я требую полного контроля, когда и как данные пишутся в базу данных. Я должен буду поддержать несколько соединений с базой данных для использования некоторых соединений только для чтений и других только для записей.

Я посмотрел на "полные" платформы MVC, такие как Django и более основные такой web.py и опоры. Впечатление, которое я в настоящее время имею, - то, что, если я иду с полной платформой первоначально, дела будут идти быстрее, но в конечном счете я застряну, потому что я буду ограничен платформой в том, что я могу сделать. Если я пойду с более основной платформой, то она возьмет намного дольше для получения всего выполнение, но я буду свободен сделать то, в чем я нуждаюсь.

Это - то, на что это походит, но я подозреваю, что это могло бы быть неправильное впечатление, произведенное, сколько сайтов записано в Django и направляющих. Вы могли обеспечить свое мнение. Я полностью неправильно и существует способ легко сделать что-нибудь с платформой как Django или Rails, или, учитывая мои требования я должен пойти с чем-то как web.py?

Спасибо!

7
задан Alex 24 January 2010 в 03:53
поделиться

11 ответов

VIM позволяет точно указывать, как вы хотите, чтобы он был отступом к работе. Ознакомьтесь с:

http://vimdoc.sourceforge.net/htmldoc/indent.html#cinoptions-values

После того, как он указан, перезапустите весь документ с помощью:

1G=G

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

-121--3202470-

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

Трудно обобрать здесь (тем более, что я действительно работал только с Джанго), поэтому я предложу несколько советов, основанных на моем собственном опыте, разрабатывающую JSON API с использованием Django:

просто Не рекомендуйте использовать Django, чтобы написать API отдыха. По моему собственному опыту я действительно не нашел ничего, сколько стоит писать домой. Мне не нужна система шаблонов Django, поэтому все, что я действительно использовал, была диспетчеризация URL и ORM. Даже тогда мне пришлось делать некоторые хаки, чтобы получить диспетчер URL-диспетчера делать то, что я хотел, если бы я не использовал другие функции, это было бы быстрее использовать другую систему URL, на самом деле. В вашем случае ORM Django даже не подойдет, поскольку оно не поддерживает несколько баз данных (если вы не используете 1,2 альфа ...). Соединение, которое с отсутствием Django является хорошим сигналом запуска, а Django начинает выглядеть довольно плохо для работы.

Если бы я был на вашей обуви, я бы выкопал для конкретных библиотек, которые мне нужно было (ORM, WSGI и т. Д.) и просто использовать их, а не пытаться согнуть и забивать Джанго в то, что подходит для моих нужд.

На совершенно другой ноте вы можете взглянуть на Tornado как возможный http foreend. Это как просто и быстро.

8
ответ дан 6 December 2019 в 06:50
поделиться

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

5
ответ дан 6 December 2019 в 06:50
поделиться

Большинство веб-сайтов будут хорошо подходить для богатых каркасов, таких как Rails или Django - но вы строите сервис , и это имеет Очень разные компромиссы.

Лично я предпочитаю использовать Очень Световые рамки для веб-сервисов: в Python, это означает, что полагается в основном на WSGI (что является стандартом, а не рамкой), с Минимум высокомодульных компонентов, чтобы обеспечить некоторые маленькие дополнения, которые мне могут понадобиться в зависимости от деталей услуг (WSGI очень хорошо при разрешении модульного состава «промежуточных» битов и кусков).

Моя личная любимая коллекция модульных компонентов WSGI составляет Werkzeug , с помощью wekob для объектов запроса и ответа; Если мне нужны шаблоны, в эти дни, я склонен идти с шаблонами Django , и если мне нужна реляционная БД, я предпочитаю писать SQL напрямую (хотя SQLALCHEMY имеет свои сильные точки! ).

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

6
ответ дан 6 December 2019 в 06:50
поделиться

В среднем, чем более полным и полезным является веб-фреймворк, тем больше он ограничивает его возможности, когда вы пытаетесь сделать что-то другое, чем то, что веб-фреймворк думает The Right Way. Некоторые веб-фреймворки стараются быть очень полезными и при этом не имеют ограничений, а некоторые делают это лучше, чем другие.

И общая рекомендация есть: Не борись с фреймворком. Вы проиграете. Поэтому важно выбрать фреймворк, который поможет вам с тем, что вы хотите делать, но не будет навязывать ничего другого. Для вашего случая с веб-сервисом, это не должно быть проблемой. Есть тонны минималистичных веб фреймворков, по крайней мере, в мире Python (это все, что меня волнует). Bobo, BFG, Pylons, Werkzeug и т.д. и т.п. Ни один из них не встанет у вас на пути.

Также не забывайте, что вы часто можете использовать несколько фреймворков вместе, запуская их бок о бок. Особенно используя такие техники как Dexterity/XDV. Plone.org, например, в основном Plon (duh) - отличная система управления контентом, но крайне ограничительная, если вы хотите сделать что-то другое. Поэтому частью сайта является Trac, отличный баг-трекер Python. Все это интегрировано, чтобы выглядеть одинаково.

2
ответ дан 6 December 2019 в 06:50
поделиться

Rails так же полезно или не так, как вам нужно, в целом. Если вам нужно загрузить коллекцию с прямым SQL, это просто. Если в той же строке вы хотите использовать все встроенный ActiveRecord Fu, вы можете. RESTFLAY RUTINGS чрезвычайно прост, но, опять же, если конкретные рельсы вкус отдыха не соответствуют вашим потребностям, маршрутизация полностью настраивается. В приложении Rails вы можете использовать столько же или мало по умолчанию, как вам нужно, и реконфигурация доступна на всех уровнях.

1
ответ дан 6 December 2019 в 06:50
поделиться

Если вы не используете презентационный слой Rails, вы пропускаете огромную его часть. Функциональность, необходимая для сброса объектов в json/xml, настолько мала, что единственными реальными остаточными преимуществами, которые вы могли бы получить от этого, были бы ActiveRecord и маршрутизация, а если вы не можете себе представить, что ваши данные чисто подогнаны под модель, то это не оставляет желать лучшего.

Я думаю, что вам действительно нужен минималистский каркас, чтобы позаботиться о некоторых основах. Что-нибудь, что обеспечит вам некоторые приятные моменты при обработке и маршрутизации запросов/ответов и уберётся к чёрту с дороги. Эквивалент Python чего-то вроде Sinatra может быть в вашем распоряжении. Я использую подобный фреймворк в Scala под названием Step для веб-сервисов на основе xml/json, где меня волнует производительность (и презентация не происходит).

Я оглядываюсь на web.py, похоже, что он охватывает уровень функциональности, похожий на Sinatra/Step. Я считаю, что это более подходящее направление, чем некоторые из более полных фреймворков функций. Я не пожалел о своем выборе Step, кодовая база настолько комично мала, что ее невозможно не понять, и это позволяет легко расширить ее немного, если в этом есть необходимость.

1
ответ дан 6 December 2019 в 06:50
поделиться

Я уже в течение многих лет использовал Ruby / Rails, и в отличие от того, что практически относится к каждому другому языку / рамки, которые я использовал (через почти 15 лет Java, PHP, Coldfusion, ASP и т. Д.) Убирается с дороги, когда вам это нужно.

Это звучит так, как вы могли бы воспользоваться «легче-весом», таких как Sinatra, но с предстоящими рельсами 3 выпускают преимущества, которые становятся менее выраженными. Rails 3 делает все настраиваемым ... Фактически, рельсы теперь будут просто определенным набором плагинов и расширений, сидящих на бесконечно гибкое ядро.

Я заинтересован в этом заявлении:

«Сервис полагается на базу данных, однако для нескольких более важных операций Нет четкая способа сохранения объекта «модель» непосредственно в таблицу базы данных. "

Не уверены, что вы подразумеваете под этим утверждением ... в какой-то момент у вас есть что-то в базе данных, верно?

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

Если вы работаете с JSON, я бы определенно Предложите взглянуть на базу данных, такую ​​как Mongodb. MongoDB полностью основана на хранении данных JSON, и поэтому может, поэтому может быть очень аккуратно с вашим приложением.

1
ответ дан 6 December 2019 в 06:50
поделиться

Вы не записали никаких требований , вы записали технологических решений . Это что-то совершенно другое. Что Вы хотите достичь? Тогда мы могли бы помочь вам с . Как для их достижения.

1
ответ дан 6 December 2019 в 06:50
поделиться

Если вы знаете, что не собираетесь использовать ORM или создавать пользовательский интерфейс, то вы только что избавились от примерно 90% того, для чего вы бы вообще использовали фреймворк веб-приложений. Если вы посмотрите, например, на набор возможностей Django: какие его части вы бы использовали для реализации веб-сервиса, который вы бы не смогли получить от использования чего-то гораздо более простого, например, Werkzeug или CherryPy?

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

1
ответ дан 6 December 2019 в 06:50
поделиться

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

0
ответ дан 6 December 2019 в 06:50
поделиться

Попробуйте весну 3.0: См. этот пост

0
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

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