Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2010 07:12:52

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

поделитесь, пожалуйста, опытом в таком вопросе:
вы пишите методы прямо в классе модели?
я попробовал писать методы там - но мне показалось неудобным, что размер этих классов становится реально слишком большим.
перешел на создание функций в папке lib (ну и как параметр функции передаю экземпляр класса).
а как кто еще?
спасибо



Офлайн

#2 Окт. 22, 2010 10:00:29

appetito
От:
Зарегистрирован: 2010-09-28
Сообщения: 147
Репутация: +  2  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

может в вашем случае имеет смысл не использовать декларативный способ описания моделей. Определять таблицы отдельно от моделей, тогда класс модели будет не таким громоздким.



Офлайн

#3 Ноя. 1, 2010 13:53:21

uhbif19
От:
Зарегистрирован: 2010-05-22
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

Можно разделить классы на несколько файлов.



Офлайн

#4 Ноя. 1, 2010 17:57:45

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

uhbif19
Можно разделить классы на несколько файлов.
как это делается? где почитать?



Офлайн

#5 Ноя. 2, 2010 08:58:01

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

brutka
как это делается? где почитать?
Тут наверное имеется ввиду разделение функционала одного класса на несколько других классов. Например, при наследовании через mixin'ы. Хороший рецепт трудно предложить без понимания всей проблемы.

Например, sqlalchemy поддерживает модификацию классов запросов через session.query_property(SomeQueryClass), для которых Вы можете определить дополнительные методы выполняющие разные выборки для конкретного класса. Также sqlalchemy поддерживает расширения для relation, которые позволяют вводить дополнительные действия при добавлении/удалении объектов из коллекций и т.д.

Проще, на мой взгляд дать пример, который показывает как можно расширить функционал алхимии различными способами - http://github.com/mitsuhiko/solace/blob/master/solace/models.py



Офлайн

#6 Ноя. 2, 2010 12:06:31

uhbif19
От:
Зарегистрирован: 2010-05-22
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

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

brutka Просто вместо хранения классов в __init__.py, пихаете каждый в свой файл, а затем его импортите в __init__.py. Так код будет гораздо более читабелен при больших классах.



Офлайн

#7 Ноя. 12, 2010 13:11:56

brutka
От:
Зарегистрирован: 2010-08-23
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Организация проекта на Pylons

uhbif19
С трудом представляю себе такие огромные классы
вот я как раз и начинаю подозревать, что организовываю классы не верно.
ну например: класс Человек.
у него есть аттрибуты (штук 50), и потом уйма методов, типа получить фото (которое проверяет, есть ли фото или нет), есть аттрибует получить детей и т.д. и т.п.
и получается очень много методов у меня…



Офлайн

#8 Ноя. 12, 2010 16:12:40

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Организация проекта на Pylons

делаете класс “фото”. Наследуете “человека” от него.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version