Мы стремимся найти здоровое равновесие между субъективным совершенством и практическими соображениями, но мы решительно против того, чтобы делать работу быстро и незаконченной, которая потребует больше последующей работы.
handle
, а не h
.final
, сделайте это.Текст был полностью переведён, сохранив исходное форматирование и структуру.* Лучше использовать беспоточные, неизменяемые объекты вместо всего остального.
Jdbi
, всё, связанное с конфигурацией) должны быть многопоточными. Другие (например, Handle
и классы запросов) нет. Ясно указывайте, если класс должен быть однопоточным (может использоваться только одним потоком), многопоточным (может использоваться несколькими потоками одновременно) или между этими двумя вариантами (например, может использоваться несколькими потоками, но только одним потоком за раз). Если класс не безопасен для использования несколькими потоками, явно укажите это.Пожалуйста, выполните make clean install
локально перед открытием PR. Мы выполняем множество проверок кода и стилистики на полной сборке, и неудачи этих проверок на PR означают, что мы не будем рассматривать PR до тех пор, пока эти проблемы не будут исправлены. Ваш локальный запуск сборки из командной строки должен пройти успешно.
Jdbi уделяет серьёзное внимание тому, чтобы не нарушать обратную совместимость. Вспомните эти простые правила и подумайте дважды перед тем, как сделать какие-либо классы или члены классов public
!
@Deprecated
и оставьте её функционально целой;Если вам необходимо сделать некоторые внутренние классы public
, чтобы получить доступ к ним из других пакетов, поместите класс в пакет с названием internal
. Пакеты с таким названием не считаются API.
Совершенно новые API должны быть помечены с помощью @Alpha или @Beta. Это позволяет пользователям знать, что они ещё не могут сильно полагаться на ваши изменения, поскольку публичный выпуск может показать, что требуется больше работы.
Jdbi должен быть полезен для максимального количества проектов с минимальными усилиями, где это возможно. Он должен быть полезен прямо из коробки с разумными значениями по умолчанию, но всегда настраиваемым до степени, необходимой пользователям.
Jdbi
, изменения которого необходимо обсуждать, и мы отклоним ненужные изменения тестов.H2DatabaseExtension
и PgDatabaseExtension
) если вы вносите свой вклад в основной репозиторий или расширений тестирования (JdbiExtension
) для всех остальных модулей.mvnd
на MacBook Pro 2021 года. И мы выполняем тесты на CI.)Использование моков и фреймворков мока обычно не рекомендуется. Есть несколько существующих тестов, которые используют Mockito, и они являются проблемой и трудно поддерживаются.
Большинство современных IDE настраиваются правильно путём импорта репозитория Jdbi как проекта Apache Maven. Если необходимо, установите поддержку для Apache Maven.
Проект использует набор правил стиля кода и форматирования. Эти правила применяются через Checkstyle и PMD как часть процесса сборки.
Мы не рассматриваем или объединяем PR, которые не проходят наши предварительные проверки перед слиянием. Выполните сборку локально с помощью make install
.
На уровне корня проекта находится файл Makefile для управления различными сборками. Выполните make
или make help
, чтобы просмотреть все доступные цели. Некоторые цели имеют привилегии (вы должны быть участником команды разработки Jdbi). Общедоступные цели включают:
* clean - очистить локальное дерево сборки
* install - выполнить сборку, статический анализ и юнит-тесты, затем установить в локальном репозитории
* install-notests - то же самое, что и 'install', но пропустить юнит-тесты
* install-nodocker - то же самое, что и 'install', но пропустить юнит-тесты, требующие локальной установки Docker
* install-fast - то же самое, что и 'install', но пропустить юнит-тесты и статический анализ
* tests - выполнить сборку кода и запустить юнит-тесты и интеграционные тесты, кроме действительно медленных тестов
* docs - выполнить сборку актуальной документации в docs/target/generated-docs/
* run-tests - запустить все юнит-тесты и интеграционные тесты, кроме действительно медленных тестов
* run-tests-nodocker - то же самое, что и 'run-tests', но пропустить все тесты, требующие локальной установки Docker
* run-tests-container - запустить полный много-базовый контейнерный тестовый набор
make tests
перед открытием PR.make docs
перед открытием PR.Если у вас нет локальной установки Docker (необходимо для некоторых тестов), используйте эквивалентные цели -nodocker
.Команда сборки | Функция | Эквивалентная команда Apache Maven |
---|---|---|
clean |
Очистка локальной системы сборки | mvn clean |
install |
Обычная команда сборки | mvn clean install |
install-notests |
Сборка без юнит-тестов | mvn -Dbasepom.test.skip=true clean install |
install-nodocker |
Сборка без Docker | mvn -Dno-docker=true clean install |
install-fast |
Сборка без тестов и проверок | mvn -Pfast clean install |
tests |
Установка и запуск тестов | комбинация команд mvn -Dbasepom.test.skip=true clean install и mvn surefire:test invoker:install invoker:integration-test invoker:verify
|
docs |
Сборка документации JDBI | mvn -Ppublish-docs -Pfast -Dbasepom.javadoc.skip=false clean install |
run-tests |
Запуск юнит-тестов и интеграционных тестов | mvn surefire:test invoker:install invoker:integration-test invoker:verify |
run-tests-nodocker |
Запуск юнит-тестов и интеграционных тестов без Docker | mvn -Dno-docker=true surefire:test invoker:install invoker:integration-test invoker:verify |
run-tests-container |
Запуск тестов на основе TestContainer | mvn -Dbasepom.test.skip=false surefire:test -pl :jdbi3-testcontainers |
Импортируйте эти настройки через Preferences → Java → Code Style → Formatter → Import... и активируйте их для всех модулей Jdbi.
#Организация порядка импортов
0=java.*
1=javax.*
2=
3=\#java.*
4=\#javax.*
5=\#
Мы требуем следующий порядок импортов:
java.*
javax.*
*
static java.*
static javax.*
static *
Между каждой группой обязательна пустая строка. Импорты внутри группы должны быть расположены в алфавитном порядке.
Звёздочные (или "wildcard") импорты, включая статические, не допускаются.
Документация Javadoc не должна вызывать импорт, то есть следует использовать полностью квалифицированные названия классов (Fully Qualified Class Names, FQCN) в Javadoc, если класс уже был импортирован кодом.
-parameters
Большинство наших тестов объектов SQL зависят от названий параметров методов SQL. Однако по умолчанию javac
не компилирует эти названия параметров в файлы .class. Поэтому для прохождения юнит-тестов компилятор должен быть настроен на вывод названий параметров.
-parameters
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )