Вот ситуация: компания, в которой я сейчас работаю, дала мне свободу работать с java или python для разработки моих приложений. Компания в основном имеет опыт работы с java.

Я решил использовать python, поэтому они были очень счастливы попросить меня оказать поддержку всем проектам / скриптам python, связанным с обслуживанием базы данных, которые у них есть.

Не так уж плохо справляться со всем этим, и это своего рода развлечение, чтобы увидеть, сколько свободного времени у меня есть по сравнению с программистами Java. Есть только одно но, макет проекта - беспорядок.

Есть много скриптов, которые просто лежат в виртуальных машинах по всей компании. Некоторые из них имеют сложную функциональность, которая распределена по нескольким модулям (максимум 4).

Размышляя над этим, я понял, что не знаю, как с этим справиться, поэтому вот 3 вопроса.

  • Куда мне поместить автономные скрипты? Мы используем git в качестве нашей системы управления версиями.
  • Как структурировать макет проекта таким образом, чтобы пользователю не приходилось копаться глубоко в папках для запуска программ (в java я создал банку или банку и сценарий оболочки для обработки некоторых операций начальной загрузки).
  • Каков стандартный способ создания модулей, допускающих повторное использование (mycompany.myapp.mymodule?)
1
Diones 12 Авг 2010 в 23:44

2 ответа

Лучший ответ

Куда мне поместить автономные скрипты?

Вы организуете их «функционально» - исходя из того, что они делают и почему люди их используют.

Язык (Python против Java) значения не имеет.

Вы должны думать о сценариях как о небольших приложениях, ориентированных на некоторые потребности, и создавать соответствующие структуры каталогов для этого приложения.

Мы используем /opt/thisapp и /opt/thatapp. Если вам нужна общая точка монтирования, вы можете использовать другой путь.

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

Вы организуете их «функционально» - исходя из того, что они делают и почему люди их используют. На верхнем уровне каталога /opt/thisapp у вас может быть __init__.py (потому что это пакет) и, возможно, сценарий main.py, который запускает настоящую работу.

В Python 2.7 и Python 3 у вас есть модуль runpy. Этим вы бы назвали свой главный скрипт верхнего уровня __main__.py

http://docs.python.org/library/runpy.html#module-runpy

Каков стандартный способ создания модулей, допускающих повторное использование (mycompany.myapp.mymodule?)

Прочтите о packages. http://docs.python.org/tutorial/modules.html#packages

2
S.Lott 12 Авг 2010 в 20:07

пакет - это способ создания модуля. иерархия: если вы создадите файл с именем __init__.py в каталоге, Python будет рассматривать этот каталог как пакет и позволит вам импортировать его содержимое, используя точечный импорт:

spam \
       __init__.py
       ham.py
       eggs.py

import spam.ham

Модули внутри пакета могут ссылаться друг на друга - см. Документацию.

Если это все сценарии обслуживания БД, я бы сделал пакет под названием DB или что-то в этом роде и поместил бы их все в него. У вас могут быть подпакеты для более сложных. Итак, если у вас есть сценарий, я не знаю, для очистки журналов транзакций, вы можете поместить его в ourDB.clean и выполнить

import ourDB.clean
ourDB.clean.transaction_logs( )
2
Katriel 12 Авг 2010 в 19:59