Python: Файловая структура проекта и Best practice

Модератор: Модераторы разделов

Аватара пользователя
Denisiuk
Сообщения: 114
ОС: Ubuntu

Python: Файловая структура проекта и Best practice

Сообщение Denisiuk »

Здравствуйте, я изучаю python самостоятельно.
Знакомых питонистов у меня нет, по этому, негде подсмотреть Best practice, отсюда масса мелких вопросов.

Прежде всего, хотелось бы попросить помощи в выборе файловой структуры проекта.
Я хотел бы использовать в той или иной мере "ванильный" python 3.x. По этому, сознательно отказываюсь от фреймворков, на данный момент, чтобы прочувствовать все "неровности и гладкости" языка. При этом, разумеется, создается своя среда библиотек для приложения(как то: адаптеры для БД, утилита для чтения конфигов, прочее), но это не фреймворк, а всего лишь утилитарная среда академического уровня(т.е. just for fun уровня).
Проект представляет из себя системное приложение(хоть и сетевое, но к HTTP не имеет отношения). Т.к. я работаю web developer'ом, я себе представляю примерно такую файловую структуру:
/app
<business logic of app>
/lib
<packages of lib's>
main.py

Т.е. есть какое-то подобие фронт контроллера: main.py, который маршрутизирует запрос далее.
В папке /app лежит бизнес логика приложения, которая непосредственно зависит от этого приложения.
В папке /lib лежат пакеты как сторонние, так и текущего "фреймворка", т.е. та самая утилитарная среда.
Конфиги и логи, пока, не беру во внимание.

Прошу оценить такой подход и описать предложения, т.к. системных приложений на скриптах вне фреймворков я не писал лет 5 уж как.


Далее, мне не совсем ясно, как можно подключать отдельные файлы. Допустим, что flow примерно такой:
Вызывается main.py с аргументом --action fire. Значение аргумента --action передается в некий маршрутизатор в папке /lib, а тот(маршрутизатор), передает исполнение в некий контроллер в папке /app, который и занимается "выстрелом", т.е. тем, что задано в аргументе --action. После чего приложение завершается(пока что это не "демонический" режим). Если я достаточно ясно описал задание, не могли бы вы предложить решение? Т.е. какая файловая структура необходима для такого flow и как, например из маршрутизатора можно обратиться к необходимому обработчику в папке /app. Должны ли /app и /lib быть пакетами?
Если некоторые моменты путаны и требуются пояснения, пожалуйста, дайте мне знать.
Спасибо.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Python: Файловая структура проекта и Best practice

Сообщение serzh-z »

Denisiuk писал(а):
12.02.2012 16:07
Прежде всего, хотелось бы попросить помощи в выборе файловой структуры проекта.
Сколько людей - столько и мнений. Некоторые часто ссылаются на этот пост: http://as.ynchrono.us/2007/12/filesystem-s...project_21.html

Denisiuk писал(а):
12.02.2012 16:07
Т.е. есть какое-то подобие фронт контроллера: main.py, который маршрутизирует запрос далее.
Для веб-приложений на Python используют Django или Twisted. Если не следовать правилам фреймворка, то какая разница как разложены файлы - главное, чтобы это было понятно самому разработчику или читающему код.
Спасибо сказали:
Аватара пользователя
landgraf
Сообщения: 2142
Статус: *бунту ненавистник
ОС: linux

Re: Python: Файловая структура проекта и Best practice

Сообщение landgraf »

Denisiuk писал(а):
12.02.2012 16:07
Знакомых питонистов у меня нет, по этому, негде подсмотреть Best practice, отсюда масса мелких вопросов.

ага, и в сети открытых проектов тоже ни одного нет
Спасибо сказали:
Аватара пользователя
Denisiuk
Сообщения: 114
ОС: Ubuntu

Re: Python: Файловая структура проекта и Best practice

Сообщение Denisiuk »

serzh-z, спасибо. действительно, разницы, пожалуй нет, но хорошие примеры всегда найдутся :)
landgraf, ну, вот зачем так? зачем так грубо? я понимаю, что такие вопросы могут раздражать.. но это не повод грубить :( разумеется, что я просмотрел пару проектов открытых, но откуда мне знать, что это хорошая практика? ну, и скажу честно, сходу разобраться в чужом коде не всегда легко, а в данном случае это слишком дорого.
Спасибо сказали:
Аватара пользователя
landgraf
Сообщения: 2142
Статус: *бунту ненавистник
ОС: linux

Re: Python: Файловая структура проекта и Best practice

Сообщение landgraf »

Denisiuk
Нисколько не хотел грубить, открытых проектов в сети очень много. Хотите точно проверенные и хорошие? Google, Red Hat помогут с этим :)
Что там на python писано?
yum, anaconda, gajim ....
Спасибо сказали: