Кэш владеет экземплярами Executor и CompletableFuture, поэтому он уже таким образом контролирует жизненный цикл задач загрузки.
blockquote>Это не так, в документации по
Caffeine
указано, что он использует предоставленные пользователемExecutor
илиForkJoinPool.commonPool()
, если ничего не указано. Это означает, что жизненный цикл по умолчанию отсутствует.Несмотря на то, что прямой вызов
GlobalScope
кажется неправильным решением, потому что нет причин жестко кодировать выбор. Просто предоставьтеCoroutineScope
через конструктор и используйтеGlobalScope
в качестве аргумента, пока у вас нет явного жизненного цикла для привязки кеша.
Проверьте этот превосходный ресурс:
Правила SSW к лучшим базам данных SQL Server
Это также хорошо, хотя часть совета, возможно, изменилась начиная с дат статьи с 2001):
SQL Server TSQL кодирование конвенций, лучших практик и программирования инструкций
Я был разработчиком для приложения ASP.NET, и мой менеджер потребовал, чтобы я отправил свои SQL-операторы DBA для обзора. То, что я сделал, должно было консолидировать весь SQLs, привыкший в приложении к одному файлу модуля. (VB модуль.NET со строками только для чтения)
Только назвать несколько мандатов, от руки.
Например, используйте "ИЗБРАННОЕ имя пользователя ОТ пользователя, ГДЕ идентификатор пользователя = @userid" вместо Тусклого sql как Строка = "ВЫБИРАЕТ имя пользователя ОТ пользователя ГДЕ идентификатор пользователя = {0}" sql = Строка. Формат (sql, идентификатор пользователя)
"ВЫБЕРИТЕ *", не должен использоваться. Столбцы нужно явно назвать.
СОЕДИНЕНИЯ должны использоваться вместо ВЛОЖЕННЫХ ЗАПРОСОВ, когда это возможно.
Уменьшите использование ПРЕДСТАВЛЕНИЙ, поскольку это повлияет на производительность. (Это спорно), Мой менеджер пошел на крайние меры для запрещения использования представлений. Мы будем, разрабатывая что-то, что производительность и масштабируемость имеют больше значения, чем удобочитаемость кодов.
Я или способствовал или реализовал методы кодирования для SQL-сервера в нескольких организациях. Можно провести дни, исследуя то, что сделали другие, но и можно, вероятно, использовать части, но я нахожу, что каждая среда абсолютно уникальна.
На высоком уровне... Я предложил бы разделить функцию от формы как можно больше. Что я имею в виду? Существуют некоторые лучшие практики, которые могут быть протестированы и зарегистрированы к Вашей определенной среде и приложению такой как тогда, когда использовать временные таблицы по выполнению больших запросов, никакой блокировке, динамическому sql использованию, подсказкам запроса, конфигурации. Они могут полностью варьироваться в зависимости от аппаратных средств и использования. Затем существуют другие стандарты, которые являются большим базирующимся мнением: соглашения о присвоении имен, использование схем, procs, представления, функции, управление версиями, и т.д. Последняя группа может стать довольно политической - действительно политический. Это - также хорошая идея начать с малого - реализуют немного за один раз.
На внешних поставщиках я нашел невозможным влиять, пока нет влияние производительности (исключая: явный запрос подсказывает, что вызывают огромные сканирования таблицы). Затем является самым эффективным обеспечить данные и заставить их исправлять его. Если существует своего рода контракт на обслуживание, я не вижу, как можно осуществить методы. Обратите внимание, что они могут писать для нескольких версий и/или платформ и хотеть код, максимально гибкий.
Я рекомендую загрузить и установить базу данных-образец AdventureWorks из codeplex.com
http://www.codeplex.com/MSFTDBProdSamples
Это было создано штатом Microsoft и имеет очень хороший дизайн, который может служить Вам в качестве примера (а-ля Лучшие практики).
И также я рекомендую прочитать эту книгу:
Профессиональная администрация Microsoft SQL Server 2008 года
Для стандартов кодирования SQL Ваш лучший выбор состоит в том, чтобы искать то, что записали другие. Существует несколько ресурсов, содержащих стандарты, которые опубликовали различные люди. Вы вряд ли найдете тот, который будет абсолютно пригодный Ваша организация. Плюс, у некоторых есть стандарты, которые, по моему скромному мнению, являются просто неправильными. Ваш лучший выбор состоит в том, чтобы прочитать документы, Вы находите и извлекаете понятия и правила, которые имеют смысл и соответствуют Вашей организации. Некоторые стандарты могут быть излишеством, как то, как форматировать код. Это зависит от того, как строгий Вы хотите, чтобы стандарты были. Вот несколько примеров:
http://www.nyx.net/~bwunder/dbChangeControl/standard.htm
http://www.SQLserverPortal.com
Необходимо будет озираться в ссылках два и три, поскольку у меня нет точных URL удобными. Также контроль ссылка, отправленная Mitch Wheat выше. Это просто некоторые примеры, но Вы найдете больше путем поиска.