2009-03-24 3 views
5

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

Мой менеджер пожаловался (по уважительной причине), что наши API-интерфейсы находятся в беспорядке - нам нужно наложить на них какой-то порядок. Поскольку мы будем перефакторировать, имеет смысл воспользоваться тем, что считается лучшей практикой, поэтому мы хотели бы рассмотреть Spring.

Может ли кто-нибудь указать мне лучшие учебные ресурсы для начала работы с весны? Некоторое время я искал Google и не нашел ничего, что, кажется, начинается с первых принципов. Я ищу что-то, что предполагает хорошее знание Python, но ноль знания Spring на других платформах или его принципах.

Благодаря

+0

«Spring Python, похоже, является золотым стандартом для определения API хорошего качества в Python» - как вы пришли к такому выводу? – Vasil

+0

У вас есть источник? http://sourceforge.net/projects/springpython/ Что случилось с чтением источника? У вас есть статья в Википедии? http://en.wikipedia.org/wiki/Spring_Python Что еще вам нужно? У вас есть конкретный вопрос? –

+0

@Vasil: В статье в википедии говорится об этом. Поэтому (очевидно) это правда. –

ответ

10

Как вы пришли принять решение о Spring Python в качестве API выбора? Spring хорошо работает на Java, где есть традиция декларативного программирования; определение вашего приложения, в первую очередь с использованием XML для управления основным движком, является стандартным шаблоном на Java.

В Python, в то время как базовые шаблоны, такие как Inversion of Control, по-прежнему актуальны (в зависимости от вашего варианта использования), реализация, выбранная Spring, похожа на классический случай чего-то, созданного программистом Java, который не хочет учиться Python. См. Статью Python is Not Java.

Я приветствую ваше решение ввести порядок и продуманность вашей кодовой базы, но вы можете оценить несколько вариантов, прежде чем принимать решение. В частности, вы можете обнаружить, что использование Spring Python затруднит написание хороших программистов на Python, многие из которых будут работать по-другому, столкнувшись с 1000-строчными XML-файлами, описывающими взаимодействие объектов.

Возможно, начните с повторного изучения того, чего вы действительно хотите достичь. Проблема не может состоять в том, что «вам нужна инфраструктура». Существует множество фреймворков, и оценить их сложно: а) если вы действительно нуждаетесь в одном и b) какой из них будет работать, если вы не определили, какие основные проблемы программного обеспечения вам нужно решить.

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

Удачи вам в исследовании.

+0

Наш код в основном неплохой, однако API несовместимы. Мы хотели бы сделать наши API намного проще в использовании и воспользоваться возможностями, которые достигли лидеры в разработке API. –

+0

Пожалуйста, знайте, что Spring Python - это не просто простой порт [1], и он не ограничен XML. Не убегайте от XML, просто используйте декораторы! [2] Я всегда приветствую способы сделать вещи питонами. - 1. http://tinyurl.com/dz3dk6, 2. http://tinyurl.com/dzupa9, 3. http://tinyurl.com/d53d8v – gregturn

+0

Давайте рассмотрим эту проблему - вы хотите иметь последовательную API. Я советую вам прочитать PEP-0008 http://www.python.org/dev/peps/pep-0008/, который является официальным руководством по стилю для python. – gregturn

1

Я не пойду так далеко, чтобы предположить, что Spring Python плох (потому что я не знаю об этом достаточно). Но, чтобы назвать Spring Python, «золотой стандарт для API Python» является растяжкой. Мне кажется, что Spring Python - это больше, чтобы позволить приложениям Python взаимодействовать с приложениями Java с помощью Spring.

Во всяком случае, сделав предварительный взгляд на official documentation, кажется довольно легко понять, что я обладаю приличным знанием Python, но не знаю весны. Помимо того факта, что он почти похож на Java-код, где автор забыл названия, точки с запятой и фигурные скобки. :-)

+0

Я должен был упомянуть: Мы магазин Python + Java. Вся наша бизнес-логика находится в ptython. Большая часть нашего графического интерфейса - Java, поэтому использование Python с Java очень важно для нас. Java-разработчики любят Весну, и я не могу придумать вескую причину, чтобы разочаровать их. –

+0

Это звучит как совершенно хорошая причина использовать его для меня. Но вы должны быть готовы к тому, чтобы получить ответы, подобные тому, что вы видели в этом вопросе, на использование очень Java-ориентированной среды в Python. :-) –

+0

Spring Python не был построен, чтобы просто интегрироваться с Java. На самом деле, этот раздел сейчас немного слаб. Однако добавление безопасности для вашего приложения, предоставление простых способов сделать простой SQL (за исключением ORM) и динамический перехват кода в сторонних библиотеках с помощью АОП, похоже, являются ценными инструментами. – gregturn

Смежные вопросы