Интерпретация новой версии «Руководства по разработке Java (Taishan Edition)» Али (с адресом загрузки)

Java
Интерпретация новой версии «Руководства по разработке Java (Taishan Edition)» Али (с адресом загрузки)

Прошло 10 месяцев с тех пор, как в последний раз было выпущено «Руководство по разработке Java» Али, и в этом выпуске также было добавлено много сухого контента, такого как:Добавлено 34 новых устава и изменено 90 описаний, среди которых правило кода ошибки впервые предложило полное решение., журнал выпуска показан на следующем рисунке:

image.png

Что нового с первого взгляда

Основное содержание этого обновления:

  1. Добавлено уточнение кода ошибки;
  2. Расширена схема обработки даты (високосный год, високосный месяц и т.д.);
  3. спецификация псевдонима таблицы;
  4. Спецификация тернарного оператора и т. д.

Далее, давайте взглянем на конкретное значение этих новых дополнений.

1. Спецификация кода ошибки

В предыдущей версии отсутствует общее описание «кода ошибки», а в этой версии добавлено большое количество пробелов в часть «код ошибки» в передней и задней части, а также подробные спецификации и инструкции, которые можно описать как очень Аромат, конкретный стандарт выглядит следующим образом:

  • [Обязательно] Принципы формулирования кодов ошибок: быстрая прослеживаемость, простота и легкость запоминания, стандартизированная коммуникация.
  • [Обязательно] Код ошибки не отражает информацию о номере версии и уровне ошибки.
  • [Обязательно] Все нормально, но при заполнении кода ошибки возвращается пять нулей: 00000.
  • [Обязательно] Код ошибки представляет собой строку, состоящую всего из 5 цифр, разделенную на две части: источник ошибки + четырехзначное число.

Описание: Источники ошибок делятся на A/B/C:

  • A: Указывает, что ошибка исходит от пользователя, например, ошибка параметра, установленная пользователем версия слишком низкая, время ожидания платежа пользователя и т. д.;
  • B: указывает на то, что ошибка исходит из текущей системы, часто из-за ошибок бизнес-логики или плохой надежности программы;
  • C: указывает на то, что ошибка исходит от сторонней службы, например ошибка службы CDN, тайм-аут доставки сообщения и т. д. Четырехзначное число от 0001 до 9999, а интервал между категориями зарезервирован для 100. Для подробности см. в тексте Руководства по разработке Java.

2. Расширена схема обработки даты

Количество дней в году, которое пишется как 365 дней, в високосном году заставляет всех ощутить боль, например срок действия кеша = 3652460 * 60 секунд. В результате все кэши будут аннулированы одновременно за один день, а база данных будет стоять на коленях во время большого количества одновременных обращений.

[Обязательно] Не записывайте год как 365 дней в программе, чтобы избежать ошибок преобразования даты или логических ошибок программы в високосные годы в григорианском календаре.

Положительный пример:

// 获取今年的天数
int daysOfThisYear = LocalDate.now().lengthOfYear();
// 获取指定某年的天数
LocalDate.of(2011, 1, 1).lengthOfYear();

Пример счетчика:

// 第一种情况:在闰年 366 天时,出现数组越界异常
int[] dayArray = new int[365];
// 第二种情况:一年有效期的会员制,今年 1 月 26 日注册,硬编码 365 返回的却是 1 月 25 日
Calendar calendar = Calendar.getInstance();
calendar.set(2020, 1, 26);
calendar.add(Calendar.DATE, 365);

3. Спецификация псевдонима таблицы

[Обязательно] Для запроса и изменения записей таблицы в базе данных, если задействовано несколько таблиц, имя таблицы должно быть ограничено. Описание: когда записи запроса, записи обновления и записи удаления выполняются в нескольких таблицах, если столбец операции не имеет уточненного псевдонима таблицы (или имени таблицы) и столбец операции существует в нескольких таблицах, будет выдано исключение. Положительный пример: выберите t1.name из table_first как t1 , table_second как t2, где t1.id=t2.id;

Обратный пример: в определенном бизнесе из-за ограничения на добавление псевдонимов таблиц (или имен таблиц) в операторы запроса, связанные с несколькими таблицами, после двух лет нормальной работы поле с тем же именем было недавно добавлено в таблицу, и в предрелизной среде были внесены изменения в базу данных, после чего в операторе онлайн-запроса появилось исключение 1052: Имя столбца в списке полей неоднозначно.

[Рекомендуется] Добавьте, как и раньше, псевдоним таблицы в оператор SQL и назовите его в порядке t1, t2, t3, .... инструкция:

  • Псевдоним может быть кратким именем таблицы или может называться t1, t2, t3 в соответствии с порядком появления таблиц.
  • Добавление префикса as к псевдониму облегчает идентификацию псевдонима. Положительный пример: выберите t1.name из table_first как t1, table_second как t2, где t1.id=t2.id;

4. Спецификация тернарного оператора

Получается, что в тернарном операторе:

условие ? выражение1 : выражение2

Выражения 1 и 2 вызывают автоматическую распаковку, когда они включают арифметические вычисления или преобразования типов данных. Операция распаковки прошла нормально, но когда операнд был нулевым, большой NPE ударил меня по лицу, как показано в следующем коде:

Integer a = 1;
Integer b = 2;
Integer c = null;
Boolean flag = false;
Integer result = (flag ?  a * b  :  c);

Примечание: результат a*b имеет тип int, тогда c будет принудительно распакован для типа int, и будет сгенерировано исключение NPE.

[Обязательно] Условие тернарного оператора? В выражении 1 : выражение 2 обратите особое внимание на выравнивание типов выражений 1 и 2, что может вызвать исключение NPE, вызванное автоматической распаковкой.

Описание. Следующие два сценария вызывают распаковку выравнивания типов:

  • Только одно из значений выражения1 или выражения2 является примитивным типом.
  • Несогласованные типы значений выражения 1 или выражения 2 заставят распаковку обновиться до типа, представляющего больший диапазон.

Суммировать

«Руководство по разработке Java» Али всегда было обязательным к прочтению каждым новым сотрудником нашей компании, и оно сыграло огромную роль в моей карьере программиста на Java.Не будет преувеличением сказать, что его рождение повлияло и помогло всей индустрии Java., приведенное выше является лишь частью содержания новой версии «Руководства по разработке Java (издание Taishan)», нажмите, чтобы загрузить более интересное содержание:disk.baidu.com/yes/1TY UF поставить противотуманки…Пароль: о62а.

Спасибо и Благодарности

«Руководство по разработке Java (издание Тарзана)»

«Самое сильное руководство по разработке Java в истории: возвращение короля Тайшаня»

Для получения более интересного контента, пожалуйста, обратите внимание на публичный аккаунт WeChat «Java Chinese Community».