Я Кайт, официальный аккаунт "Воздушный змей в древности", технический официальный аккаунт не только с технологиями, но и слэш-разработчик 6 лет, много лет в кружке программирования, в основном работающий на Java, а также на Python и реагировать. Серия статей Spring Cloud завершена, и вы можете перейти кмой гитхабПолную серию смотрите на . Вы также можете ответить на «pdf» в официальном аккаунте, чтобы получить мою тщательно созданную версию полного руководства в формате pdf.
22 апреля Alibaba выпустила тайшаньскую версию «Руководства по разработке Java».Окончательный версияЭто действительно окончательная версия. Я не ожидал, что она будет слишком простой. После окончательной версии были выпущены подробная версия и версия Huashan. Нет, версия Taishan здесь снова. Вдумайтесь, индустрия развивалась, JDK обновлялся, какая может быть ультимативная версия.
С тех пор, как Али выпустил финальную версию в 2017 году, я использовал это руководство как спецификацию разработки и разместил его на самом видном месте компьютера. Время от времени я буду его искать и продвигать в команде. это к некоторым друзьям между прочим. Каждый раз, когда выходит новая версия, снимайте ее и читайте снова.
По сравнению с предыдущей версией версия Taishan имеет следующие обновления:
- Опубликуйте единое решение для кодов ошибок.
- Добавлено 34 новых протокола, таких как проблемы даты и времени високосного года и високосного месяца, автоматическая распаковка троичных операций, ограничение псевдонимов таблиц для SQL-запросов и внимание к использованию метода toMap() класса Collectors и т. д.
- Изменить описание 90, например, блокировка ожидания блокировки, десятичный тип создания таблицы и т.д.
- Улучшите несколько примеров, таких как пример Isnull и т. д.
Почему вы хотите взять его и прочитать?
Руководство охватывает все аспекты от разработки проекта до кодирования и развертывания. Тем не менее, для отдельных разработчиков некоторые аспекты на самом деле являются нечастым контактом, например, контроль параллелизма, который ограничивает возможности контакта для многих людей. Другим примером является определение исключений и управление MySQL, которые могут быть настроены основными разработчиками или архитекторами в начале проекта, и некоторые студенты просто используют их напрямую, не заботясь о конкретных принципах проектирования и деталях реализации.
Руководство тоже не длинное, в этом издании всего 57 страниц текста, и прочитать его один раз не займет много времени. Некоторые из этих аспектов часто упоминаются, например, стиль команд, определение констант и т. д., а некоторым аспектам, например, спецификации аннотаций, как писать аннотации, где их писать и в каком формате, можно не уделять столько внимания. Не будет преувеличением сказать, что во многих случаях очень хорошо иметь возможность писать комментарии, не говоря уже о том, чтобы писать комментарии четко, и даже многие люди вообще не пишут комментарии, думая, что это пустая трата времени.
Это руководство является воплощением многолетнего опыта разработки Alibaba.В дополнение к вышеупомянутым соглашениям по улучшению удобочитаемости и удобочитаемости кода, таким как имена и комментарии, оно также включает в себя правильное построение таблиц, хорошую инженерную структуру, хорошую обработку исключений, контроль безопасности. , а также некоторые руководства по предотвращению ям для часто используемых функций JDK.
Стиль именования, определения констант, форматирование кода
Те, кто в основном писал код в течение нескольких лет, будут иметь аналогичный набор спецификаций, который в основном совпадает с руководством разработчика Alibaba.
протокол ООП
[6] Метод equals Object force легко сокращает исключение указателя, должен использоваться с константой или значением, определяемым объектом, равным вызову.
Положительный пример: "test".equals(object); Пример счетчика: object.equals("test"); Примечание. Рекомендуется использовать java.util.Objects#equals (класс инструментов, представленный в JDK7).
Объект в примере со счетчиком является переменной, и если эта переменная имеет значение null, будет выдано исключение. Рекомендуется использовать Objects.equals(s1, s2).
8. [Обязательно] Любая сумма в валюте хранится в наименьшей денежной единице и целочисленном типе.
Например, минимальная единица юаня - центы. Если цена товара составляет 1 юань, она будет храниться в поле цены базы данных. Тип поля - int или bigint, значение - 100, а единица измерения - центов, что составляет 100 центов.
Я был вовлечен в эту проблему.Несколько лет назад поле цены в системе использовало числа с плавающей запятой, и единицей измерения все еще были юани.Позднее расчет цены был очень хлопотным, и расчет чисел с плавающей запятой был не совсем точно, особенно когда речь идет о десятичных разрядах. В конце концов, поле было изменено на тип int, а код, связанный с ценой, был переработан.
Итак, когда я увидел руководство по этому правилу, когда возникло ощущение краткой встречи. Я использовал болезненный опыт только в обмен на этот урок заранее, чтобы увидеть, не спасет ли он много вещей.
[9] принудительное определение эквивалентности между поплавком, базовые типы данных не могут быть == сравнения, тип данных пакета не может быть оценен по равным.
Пример счетчика:
float a = 1.0f - 0.9f;
float b = 0.9f - 0.8f;
if (a == b) {
// 预期进入此代码快,执行其它业务逻辑 // 但事实上 a==b 的结果为 false
}
Float x = Float.valueOf(a);
Float y = Float.valueOf(b);
if (x.equals(y)) {
// 预期进入此代码快,执行其它业务逻辑
// 但事实上 equals 的结果为 false
}
До того, как я написал о вычислениях с плавающей запятой, я думал, что это просто математические вычисления, разве не это придумали компьютеры для этого? Только когда я столкнулся с вычислением чисел с плавающей запятой, я обнаружил, что оно полностью отличается от того, что я себе представлял.Как и в приведенном выше контрпримере, причина в том, что компьютер использует двоичный код, и нет никакого способа точно представить десятичная система.Заинтересованные студенты могут найти и понять принцип, лежащий в ее основе.
Правильный способ — использовать BigDecimal высокой точности, который используется для высокоточных вычислений, которые не могут выполнять числа с плавающей запятой.
Формат даты
Есть много студентов, которые не очень хорошо знакомы с обработкой данных.Они часто не используют это в течение длительного времени.Когда они используют это, они идут в Интернет, чтобы проверить это.На самом деле, я не часто использую это. Если я хочу сделать метод обработки даты вручную, я должен проверить API, для этого я написал специальный класс инструмента обработки даты. Но будьте осторожны при обновлении вовремя, например, LocalDateTime после JDK 8 может заменить предыдущую дату.
Руководство также специально упоминает, что ** [обязательный] не может использоваться в любой точке программы: 1) java.sql.date2) java.sql.time3) java.sql.timestamp **, быстро просмотреть ваш код Я еще не использую эти три типа, я уже использую localdateTime в любом случае.
Обработка коллекции
Коллекции — очень часто используемые структуры данных в нашей разработке, поэтому рекомендуется внимательно прочитать каждый элемент, а затем применить его к нашему проекту. Где руководство по разработке, в нем рассказывается, как правильно использовать Java-коллекции.
Параллельная обработка
Как правильно использовать пул потоков, SimpleDateFormat не является потокобезопасным, правильно используйте ThreadLocal. За каждым из них стоит извлеченный урок.
Обработка исключений
Как используется try-catch, как один и тот же модуль обрабатывает исключения, как разные сервисы обрабатывают исключения и т. д.
MySQL
Как создать таблицу, когда разделить таблицу, как назвать имя таблицы, имя поля, выбор соответствующего типа поля, как построить индекс, хороший оператор SQL, сопоставление ORM, каждый из них можно копать глубоко.
Инженерное сооружение
Какова иерархическая структура стандарта проекта, метод управления библиотекой зависимостей, ключевые показатели настройки сервера и так далее.
проектная спецификация
Спецификация проектной документации, процесса проектирования и т.д. с точки зрения архитектора.
код ошибки
Коды ошибок используются для дружественных ответов на логические проблемы или системные ошибки. Каждая платформа должна иметь один и только один код ошибки, не больше и не меньше. Полный список кодов ошибок также опубликован в конце руководства.
Если вы можете прочитать руководство ясно в одно время, вы определенно являетесь мастером. Большинство людей могут не понять некоторые из правил. Но на самом деле это основное содержание, поэтому, прежде чем прочитать книгу собеседования облака, горы и тумана и полностью понимать это руководство, он значительно улучшит ваш уровень программирования.
Стандарт кодирования Alibaba Плагин IDEA
Alibaba также выпустила подключаемый модуль IDEA для протокола разработки, который идеально сочетается с руководством по разработке. Вы можете выполнить поиск «Alibaba Java Code Guidelines» в интерфейсе управления подключаемыми модулями IDEA для установки.
После этого вы можете увидеть этот плагин в меню инструментов IDEA, который можно динамически включать или выключать, и вы можете переключать языки.
После его включения, когда мы пишем код, который нарушает спецификацию в коде, будет выдаваться подсказка.Например, я использую==
Сравнивая два целых числа, мы получаем==
Ниже появится предупреждающее сообщение, в котором будет указано, какая поза является правильной.
Ручная скачать
Если вы еще не скачали его, пожалуйста, скачайте его и прочитайте дважды.
Официальный адрес загрузки, вам необходимо войти в Alibaba Cloud.
developer.aliyun.com/topic/Java2…
Если у вас нет студентов Alibaba Cloud, вы можетеНажмите прямо, чтобы загрузить
Я воздушный змей, общественный счет»древний воздушный змей», слэш-разработчик, который много лет занимается программированием, в основном на Java, а также играет с Python и React. Вы можете добавить меня в друзья в официальном аккаунте, вступить в группу для общения и обучения, так же в группе много одноклассников с крупных заводов.
Для технического обмена вы также можете добавить группу или добавить меня напрямую в WeChat.