MongoDB фактически хранит миллины даты как int (64), как предписано http://bsonspec.org/#/specification
Однако, это может становится довольно запутанным, когда вы извлекаете даты, поскольку клиентский драйвер будет создавать экземпляр объекта даты с его собственным местным часовым поясом. Драйвер JavaScript в консоли mongo, безусловно, сделает это.
Итак, если вы заботитесь о своих часовых поясах, убедитесь, что знаете, что это должно быть, когда вы вернетесь. Это не должно иметь большого значения для запросов, поскольку оно все равно будет соответствовать одному и тому же int (64), независимо от того, в какой временной зоне находится объект даты (надеюсь). Но я бы определенно делал запросы с объектами фактической даты (не строки), и пусть драйвер делает свое дело.
, Для чего пространства имен:
Пространства имен предназначены для установления контекста только, таким образом, у Вас нет конфликтов именования.
Общие правила:
Определение слишком большого количества контекста не нужно и вызовет больше неудобства, чем это стоит.
, Таким образом, Вы хотите использовать свое лучшее суждение, но все еще следовать этим 2 правилам:
, я не был бы так строг о том, как использовать имена пространства имен, и просто использовать пространства имен на основе связанной группы кода.
, Почему пространства имен, которые являются слишком общими, не полезны:
проблема с делением пространства имен, запускающегося с названия продукта, то, что у Вас часто будет компонент кода или некоторая основная библиотека, которая характерна для нескольких продуктов.
Вы также не будете использовать пространства имен Product2 в Product1, так явно определение, что это бессмысленно. При включении файлов Product2 в Product1 то это называет преобразование все еще полезным?
, Почему пространства имен, которые слишком конкретны, не полезны:
, Когда у Вас есть пространства имен, которые слишком конкретны, строка между этими отличными пространствами имен начинает размываться. Вы начинаете использовать пространства имен друг в друге назад и вперед. В это время лучше обобщить общий код вместе под тем же пространством имен.
Классы со всеми помехами по сравнению с шаблонами:
, "Почему мы должны создать внутренний не частные классы и не пространства имен? Почему должен мы создавать классы, где все методы являются статическими"
Некоторые различия:
using
, Пространства имен ключевого слова Точно, как разделиться:
"Проект состоит из 1 ГБ исходного кода. Так, что лучшая практика должна разделить модули на пространствах имен в C++?"
Это слишком субъективно для высказывания точно, как разделить код без точного исходного кода. Деление на основе модулей, хотя логичные звуки, просто не целый продукт.
Это все субъективно, но я смущался бы идти больше чем 3 уровня глубоко. Это просто становится слишком громоздким в какой-то момент. Таким образом, если Ваша кодовая база не очень, очень большая, я сохранил бы ее довольно мелкой.
Мы делим наш код на подсистемы и имеем пространство имен для каждой подсистемы. Служебные вещи вошли бы в свое собственное пространство имен, если действительно они являются допускающими повторное использование через подсистемы.
Мне кажется, что Вы пытаетесь использовать пространства имен в качестве средства проектирования. Они не предназначаются для этого, они предназначаются для предотвращения столкновений имени. Если у Вас нет столкновений, Вам не нужны пространства имен.