Действительно, насколько я могу судить, для Django нет канонического соглашения, но мне действительно нравится соглашение Rails:
created_at
для полей DateTime created_on
для полей даты
created
отлично работает для дат создания, но как только у вас появятся более неоднозначные поля, такие как activated
, это станет проблемой.Это логическое значение или дата / время?Существуют соглашения об именах, которые помогают разработчикам быстрее понимать код и тратить меньше времени на неважные решения.Такова философия парадигмы Convention over Configuration , которая является большой в сообществе Rails, но, к сожалению, не такой большой в Django.Эта путаница, которую я упоминал, например, типична, и поэтому я предпочитаю всегда быть предельно ясной:
- Если это логическое значение
is_activated
- Если это время и дата
activated_at
- Если это просто дата
activated_on
Я слышал, как люди говорят, что "вы не должны смешивать имена полей с типами данных", но, на мой взгляд, это довольно пустой совети я никогда не слышал никаких конкретных аргументов за это.Если мы хотим оптимизировать читабельность кода и принятие решений, то я считаю, что явные соглашения об именах - это путь.