Чи існує угода про іменування програм Django


115

Чи є краща угода про іменування для створення програми Django, що складається з декількох слів? Наприклад, що з переліченого є кращим?

  1. my_django_app
  2. my-django-app Оновлення: не дозволено синтаксично
  3. mydjangoapp Рекомендоване рішення

Хоча всі вони можуть бути варіантами 1 і 3 синтаксично дозволені, чи є перевага? Дивлячись на те, як Django створює назви таблиць, поєднуючи назву програми та ім'я моделі з підкресленням, я схиляюся до варіанту №1.

Думки?

Відповіді:


108

Вони повинні бути дійсними назвами пакетів. Це виключає 2 ("імпортувати мій-django-додаток" було б синтаксичною помилкою). PEP 8 говорить:

Модулі повинні мати короткі, малі імена. Підкреслення можна використовувати у назві модуля, якщо це покращує читабельність. Пакети Python також повинні мати короткі, малі імена, хоча використання підкреслення не рекомендується.

Отже, 1 і 3 є обома дійсними, але рекомендується 3.


1
Корисна публікація в блозі про цю проблему, просто розширити: streamhacker.com/2011/01/03/django-application-conventions
Akhorus

7
Привіт @ surfer190. Дві совки Джанго містять багато передового досвіду. Вони вибирають однину: блог. Це той самий вибір, коли ви створюєте модель: блог надається перевагу над блогами.
Вім Фейєн

2
Загалом, я б рекомендував використовувати підкреслення, оскільки вони покращують читабельність, і вони часто використовуються, наприклад, я дуже багато використовую django_extensions та django_debug_toolbar.
Вім Фейєн

14
@WimFeijen, схоже, що дві совки Django, принаймні тут , рекомендують використовувати "множину версії основної моделі додатка" для назв додатків, за винятком, як додаток, названий блог, "хорошим винятком".
Како

Я стою виправлений. Дякую @Caco за те, що вивчив це та навчав мене.
Вім Фейєн

11

кілька хороших прикладів

  • graphene_django
  • користувачів
  • накази
  • oauth2_provider
  • rest_framework
  • опитування

простіше кажучи, app_nameповинні мати короткі, малі імена. Підкреслення можна використовувати у назві модуля, якщо це покращує читабельність. також має бути короткою назвою, і це може бути ім'я множини та однини


7

Імена каталогів додатків повинні бути дійсним іменем пакету Python. Це означає, що варіант 2 абсолютно неприйнятний як назва пакету, хоча він все ще може бути використаний для інших цілей, наприклад, документації. Зрештою, це зводиться до особистого стилю. Якщо ви віддаєте перевагу варіант 3, тоді використовуйте його.


0

Мої голоси за 1 і 3, але ви можете перевірити кілька популярних додатків: http://www.django-cms.org/ http://geodjango.org/


2
Ще більше додатків тут: djangopackages.org . Зверніть увагу, що пакунки часто називають за допомогою мінусів: django-debug-toolbar, тоді як у налаштуваннях INSTALLED_APPS вам доведеться використовувати "django_debug_toolbar".
Вім Фейєн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.