Переход от php к python / pylons / SQLAlchemy. Являются ли ORM стандартом сейчас? - PullRequest
1 голос
/ 01 июня 2010

Должен ли я потратить много времени, пытаясь выяснить реализацию стиля ORM, или все еще распространено просто придерживаться стандартных запросов SQL в python / pylons / sqlalchemy?

Ответы [ 2 ]

8 голосов
/ 01 июня 2010

ORM очень популярны по нескольким причинам - например: некоторые люди предпочитают не изучать SQL, ORM могут облегчить портирование между различными диалектами SQL, они могут более плавно вписываться в приложения, в основном в стиле ООП, и даже могут упрощение переноса на реализации не -SQL (например, перемещение приложения Django в Google App Engine было бы гораздо более трудоемким, если бы уровень доступа к хранилищу опирался на операторы SQL - так как он опирается на ORM, что уменьшает Немного необходим портирование работы).

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

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

Когда я получаю возможность использовать хороший реляционный движок, такой как PostgreSQL, я считаю, что в целом я более продуктивен, чем любой другой ORM (включая SQLAlchemy, несмотря на его замечательные возможности) качество). Однако я должен признать, что дело обстоит иначе, когда реляционный движок не так уж хорош (например, мне никогда не нравился MySQL), или когда перенос в нереляционные развертывания является важным фактором.

Итак, возвращаясь к вашему актуальному вопросу, я думаю, что, в целом, потратить время на освоение SQLAlchemy - это хорошая идея и время, потраченное впустую.

1 голос
/ 01 июня 2010

Если вы никогда раньше не использовали ORM, такой как SqlAlchemy, я бы посоветовал вам изучить его - пока вы изучаете способ Python. Если ничего другого, вы сможете лучше решить, где и когда его использовать, чем простой SQL. Я не думаю, что вам нужно уделять этому много времени. Документация по SQLAlchemy приличная, и вы всегда можете обратиться за помощью, если застряли.

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