()
означает «Сверление». Это означает скучный тип, который содержит одно, а также скучное. Нет ничего интересного в сравнении одного элемента бурильного типа с другим, потому что нет ничего, чтобы узнать о элементе скучного типа, обратив его на ваше внимание.
Это совсем другое из пустого типа, называемого (по желанию людей, я выбрал лучшее имя, подобное тому, которое я предложил) в Haskell Void
. Пустой тип очень интересен, потому что, если кто-то когда-либо дает вам ценность, принадлежащую ему, вы знаете, что вы уже мертвы и на небесах, и что все, что вы хотите, принадлежит вам.
Но если кто-то даст вам значение в ()
, не возбуждаются. Просто выбросьте его.
Иногда бывает интересно использовать конструкторы типов, параметризованные «типом элемента» и заполнить параметр с помощью ()
. Вы можете видеть, какая информация присуща конструктору типа, а не исходя из элементов. Например, Maybe ()
является версией Bool
, с Just ()
или Nothing
. Кроме того, [()]
составляет (возможно, бесконечное) натуральное число: единственная информация, которую вы имеете, - это длина.
Итак, ()
означает «Скучно», но часто бывает, что что-то интересное где-то в другом месте.
Так как Вы оставляете вопрос открытым для платформы, я добавлю, что учетные данные базы данных для приложений.NET хранятся в web.config файле. От версии 2.0 и выше, существует определенный раздел ConnectionStrings, который допускает более легкий программный доступ к строке подключения.
В дополнение к наличию IIS автоматически блок прямые запросы в web.config файл по умолчанию, можно также использовать команду IIS для шифрования раздела ConnectionString web.config файла. Это шифрование является конкретной машиной, добавляя к ее преимуществам, и время выполнения.NET также дешифрует строку подключения на лету при доступе к нему таким образом, нет никакой потребности в дополнительном кодировании в рвении с ним.
С Java пулы соединения с базой данных должны быть переданы в веб-приложения контейнером. Это находится в стандарте, заявляемом в WEB-INF/web.xml как ресурсы. То же относится к почтовым сессиям и другим внешним ресурсам, которые могут варьироваться от установки до установки. Ищите JNDI для получения дополнительной информации об этом)
, хорошая часть с этим - то, что приложение не заботится о том, как на самом деле соединиться с чем-либо снаружи. Это не будет видеть паролей, потому что сам контейнер будет использовать их.
У кота это настроено любой из файлов контекста (например). в conf/Catalina/localhost/, conf/server.xml или - предпочтительно только для dev сред, от веб-приложений META-INF/context.xml. Другие среды имеют свое собственное расположение конфигурации или приложение.
шифрование паролей на самом деле зависит от контейнера. Tomcat хранит их в простом тексте, но само приложение не будет видеть его. Я не знаю о механике в других средах.
На стеке Microsoft вещи могут быть очень хорошими.
Вы создаете учетную запись пользователя сети в Active Directory почти ни с какими полномочиями. Вы настраиваете IIS для выполнения веб-приложения как тот пользователь. Вы допускаете что пользовательский доступ для чтения к веб-папкам и файлам на диске. Вы настраиваете SQL Server, чтобы допустить, что пользовательские полномочия чтения-записи на таблицах Вы хотите. И в строке подключения, Вы даете клиенту дб команду соединяться как учетная запись пользователя, которая веб-приложение в настоящее время выполняется как.
существует только одна фактическая учетная запись пользователя, хотя это видимо в нескольких местах. Эта учетная запись пользователя чрезвычайно ограничила полномочия. Нет никаких паролей хранения нигде, даже если зашифрованы. Нет никакой конфигурации, которая должна быть реализована в коде для этого для работы (это - все в установке полномочий).
В Django учетные данные находятся в Вашем settings.py
конфигурационный файл. Так как это обычно не сохраняется в Вашем /var/www/
дерево каталогов, это очень безопасно.
кроме того, единственное приложение Django может использоваться (и снова использоваться) для многих веб-сайтов или веб-серверов на том же хосте, каждом со своими собственными отличными настройками. Так settings.py
конфигурация не связывается приложением, но является частью единственного развертывания приложения.
Для asp.net:
я храню глобальные параметры, такие как строка подключения и пути к репозиторию в Реестре и затем ссылке на ключ реестра в web.config.
главная причина, являющаяся этим, я часто нахожу, что должен записать одинокий исполняемый файл для выполнения фоновых задач и других автоматизированных функций, которые требуют доступа к тем же параметрам. Поэтому хранение всего, что действительно глобально в одном легкодоступном месте, делает для более легкой жизни.
Зависит от сервера приложений.
я обычно использую поиски JNDI для источника данных, таким образом, учетные данные хранятся на сервере приложений, который обрабатывает пул соединения. Никакая потребность поместить что-либо кроме имени JNDI в конфигурации тот путь.
Да, пароль шифруется на WebLogic.
На вещах Tomcat может быть рискованным. Информация о соединении находится в META-INF/context.xml, что означает простой текст для пароля. Я только делаю это для разработки, никогда в производстве.