Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 12, 2012 13:07:15

Дмитрий*
От:
Зарегистрирован: 2012-02-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Здравствуйте, я изучаю 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 быть пакетами?
Если некоторые моменты путаны и требуются пояснения, пожалуйста, дайте мне знать.
Спасибо.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version