User Эллеонора Керри
Эллеонора Керри
41 уровень

Кофе-брейк #81. Лучшие Java-библиотеки, которые должен знать каждый разработчик. Почему надо писать четкий, содержательный код (и как это сделать)

Статья из группы Random

Лучшие Java-библиотеки, которые должен знать каждый разработчик

Источник: Hackernoon С Java-библиотеками вы избавите себя от необходимости заново изобретать колесо. Библиотеки поддерживают крупные сообщества, имеют высокопроизводительный код и хорошо протестированы. И поскольку экосистеме Java уже больше 25 лет, вы легко можете найти необходимые библиотеки для решения множества рутинных задач. Сторонние библиотеки легко использовать с инструментами управления зависимостями Maven или Gradle, которые автоматически разрешают транзитивные зависимости и загружают jar-файлы. Кофе-брейк #81. Лучшие Java-библиотеки, которые должен знать каждый разработчик. Почему надо писать четкий, содержательный код (и как это сделать) - 1

Библиотеки Java общего назначения

Такие библиотеки, как Google Guava и Apache Commons, помогают писать код для рутинных операций. Библиотеки общего назначения содержат служебные классы для работы с bean-компонентами, коллекциями, кэшированием, сжатием, хешированием, вводом-выводом, криптографией, математикой и статистикой, обработкой строк, графиками, параллелизмом, проверкой и многим другим. Guava — это проект Google, созданный Джошуа Блохом, ведущим разработчиком Java Collection Framework и автором книги “Эффективная Java”. Ранее Guava была единственной библиотекой коллекций с поддержкой функций Java 5, таких как обобщенные типы, перечисления, ковариантные возвращаемые типы. Сегодня Guava активно развивается и поддерживается. Apache Commons используется в широком спектре проектов. Она состоит из 44 модулей, вы можете добавлять только те зависимости, которые вам нужны. Начиная с версии 4.0, библиотека поддерживает дженерики.

Библиотеки логгинга

Если вы разрабатываете большой проект, вам может потребоваться logging (ведение протокола). Существует несколько видов logging. Они помогают понять поведение кода, фиксировать ошибки, отслеживать и анализировать активность программы и выполнять аудит важных событий. Раньше самой популярной библиотекой логинга была Log4j. Хотя она уже устарела, Log4j оказала влияние на современные библиотеки журналов. Новые проекты: Logback и SLF4J пришли на смену Log4j. По сравнению с предшественником они имеют лучшую производительность, файлы конфигурации в Groovy, автоматическую перезагрузку файлов конфигурации, автоматическое удаление старых архивов журналов, автоматическое сжатие архивных файлов журнала, расширенную фильтрацию и другие преимущества. SLF4J (Simple Logging Facade) — это интерфейс для библиотек журналов, который сам по себе не ведет журналы. С SLF4J разработчик может переключаться между реализациями журналирования, просто изменяя зависимости. Apache Log4j2 — современная библиотека журналов. Помимо наличия всех преимуществ Logback, в ней имеется множество интересных функций, таких как архитектура плагинов, поддержка лямбда-выражений Java 8, настраиваемые уровни журналов, интеграция с серверами приложений и настройка с помощью Spring Cloud Configuration. Apache Commons Logging — компонент проекта Apache Commons, такой как SLF4J, предоставляет API для ведения журнала и может использоваться с любой реализацией во время выполнения.

Библиотеки тестирования Java

Написание тестов — неотъемлемая часть разработки программного обеспечения. Они помогают гарантировать определенное поведение кода. Автоматическое выполнение регрессионных тестов гарантирует, что изменения, такие как улучшения или исправления, не нарушают существующую функциональность и не приводят к появлению новых ошибок. Наиболее часто используемая среда модульного тестирования Java — это JUnit. Она позволяет писать повторяющиеся тесты на основе аннотаций и запускать их с помощью инструмента автоматизации сборки. JUnit поддерживает группировку тестовых случаев, параметризацию, тайм-ауты, настройку имен тестов и вложение тестовых примеров. TestNG (Test Next Generation) также является популярной средой тестирования и более продвинутой, чем JUnit. TestNG используется не только для модульного тестирования, но также для интеграции и функционального тестирования. В отличие от JUnit, TestNG поддерживает зависимые тесты, параллельное выполнение тестов (JUnit предоставляет его в экспериментальном режиме) и другие функции. И JUnit, и TestNG имеют отличную интеграцию с распространенными IDE, такими как IntelliJ IDEA, Eclipse и NetBeans.

Библиотеки сериализации данных

Часто возникает необходимость в обмене данными между программными компонентами или внешними системами. Для этой цели мы можем использовать удобочитаемые (JSON, XML) или двоичные форматы данных. Jackson и Gson — наиболее популярные библиотеки для работы с JSON. Они поддерживают потоковую обработку и настраиваемую сериализацию. Jackson предоставляет обширную поддержку аннотаций. Gson прост в использовании в примерах и подходит, когда у вас нет доступа к исходному коду для добавления аннотаций. Для работы с XML можно использовать библиотеки JAXB и StAX. JAXB позволяет отображать объекты Java в документы XML удобным способом. StAX обеспечивает потоковую обработку XML-документов. StAX подходит, когда приложение работает с огромными XML-документами.

Другие библиотеки Java

Lombok — библиотека для генерации кода, которая помогает минимизировать шаблонный код. Quartz — библиотека для планирования заданий. StreamEx — предоставляет дополнительные функции для стандартного Stream API. Jsoup — расширенная библиотека для работы с HTML. Надеюсь, что благодаря этой статье вы не только познакомились с наиболее распространенными библиотеками Java, но и сможете легко найти готовые библиотеки для своих проектов. Использование сторонних библиотек поможет вам стать более продуктивным Java-разработчиком.

Почему надо писать четкий, содержательный код (и как это сделать)

Источник: Amymhaddad Краткий код — это не цель при написании программ. Краткий не обязательно лучший. Мы не должны стремиться к короткому и лаконичному коду. Мы просто не должны намеренно усложнять или запутывать код. Он должен быть ясным и содержательным. “Ясность — это не то же самое, что краткость”, — пишет Брайан Керниган в книге “Практика программирования”. “Чаще всего чистый код будет короче... но он может быть и длиннее... Правильный критерий здесь — легкость понимания”. Кофе-брейк #81. Лучшие Java-библиотеки, которые должен знать каждый разработчик. Почему надо писать четкий, содержательный код (и как это сделать) - 2Четкое письмо также свидетельствует о нашем мышлении. Так что, если ваш текст (будь то проза или код) сложный и запутанный, то вам есть над чем поработать. Кто угодно может сделать что-то сложное. Гораздо труднее взять что-то сложное и сделать его ясным и понятным. Вот шесть способов сделать это:

1. Напишите понятные имена классов, функций и переменных

Имена, которые мы выбираем в написанном нами коде, оказывают влияние на читаемость и смысл. Например, однобуквенные имена переменных могут вводить в заблуждение. Читатель может не понимать, что представляет собой единственная переменная t, поэтому ему приходится предполагать,что она означает, исходя из контекста. Такие предположения могут стать дорогой к катастрофе. В равной степени сбивает с толку, когда имя переменной используется во множественном числе, тогда как оно должно быть в единственном числе (или наоборот). Непонятно, переменная представляет много элементов или один элемент? В книге Стива МакКоннелла Code Complete есть отличные советы по выбору наименований: “Опишите словами, что представляет собой переменная. Часто это утверждение само по себе является лучшим именем переменной”. Потом спросите себя: “Что представляет собой эта переменная?” Чаще всего ответом на этот вопрос станет имя переменной.

2. Рефакторинг

Многие писатели проводят большую часть своего времени за редактированием. Одно дело — написать текст. Другое — вложить в него смысл. То же самое должно происходить и с кодом, который мы пишем: мы должны тратить больше времени на “редактирование” (или рефакторинг, в нашем случае). Давайте будем честными, наша первая попытка решить проблему обычно не самая лучшая, даже если решение верное. Всегда есть возможности для улучшения, будь то лучший алгоритм, структура данных или имя переменной.

3. Прочтите свой код вслух

После того, как я напишу статью (в том числе и эту), я читаю ее вслух. Если предложение звучит неуклюже или сбивает с толку, вероятно, его нужно переписать. Чтение вслух — отличная практика для кода, который вы пишете. Так вы сможете обнаружить ошибки, которые ранее упустили из виду.

4. Создайте список

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

5. Изучите чужой код, где решалась та же проблема

Мы не должны просто писать код. Мы также должны быть его внимательными читателями. Регулярно читая код, вы познакомитесь с новыми идеями и узнаете о стратегиях решения проблем. По мере того, как вы будете добавлять больше инструментов в свой набор инструментов программирования, вы овладеете различными стилями написания кода.

6. Прочтите книгу Уильяма Зинсера “О хорошем письме”

Книга Зинсера предназначена для писателей, но многие из ее принципов применимы к работе программистов. В конце концов, авторы прозы и кода занимаются похожим делом: пишут текст.
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Павел Уровень 11, Россия
1 июля 2021
Про чистый код - отличная часть.