Советы и хитрости для улучшения своих навыков разработки на Java

СохранитьСохраненоУдалён 0

Ищете практики Java для улучшения своих навыков кодинга? Или, может быть, вы хотите узнать некоторые советы и рекомендации по оптимизации вашей работы? Читайте дальше, так как здесь Вы найдете кое-что полезное! Что приходит на ум, когда вы слышите слово Java?

Данная статья содержит важную информацию по следующим темам:

  • Общие технологические концепции
  • Качество кода
  • Performance
  • Фреймворки и инструменты
  • Архитектура
  • Другие полезные советы и хитрости
Станьте Java-разработчиком
Подробнее

С нуля Вы будете программировать на Java и писать серверную логику и настраивать взаимодействие с базами данных

Общие понятия о Java

Предположим, вы хотите разрабатывать приложения с использованием Java. В противном случае, вы бы не читали эту статью, верно?

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

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

вернуться в меню ↑

Качество кода

Самая важная вещь в отношении качества кода — поддерживать ваши приложения максимально безопасными и стабильными с самого начала процесса разработки. Для этого всегда используйте последнюю версию Java в исходном коде.

Что делать и что не делать?

  • Отдайте приоритет универсальным типам, методам и групповым символам
  • Внедрите плотную герметизацию, слабую связь и высокую когезию в классах
  • Избегайте утечек памяти, используйте финальные блоки, когда это возможно
  • Всегда закрывайте потоки ввода-вывода
  • Использование API даты и времени (JSR 310) лучше, чем использование data.util.date и Joda-Time.
  • Выражение лямбды лучше, чем блочные лямбды
  • Определенные подклассы класса Exception лучше, чем сам класс
  • Возврат пустых коллекций лучше нуля
  • Помните об использовании типа интерфейса при объявлении коллекции
  • Каждый блок catch нуждается в классе Exception
  • Если вам нужна быстрая итерация и произвольный доступ — используйте ArrayList
  • Если вам нужна быстрая вставка и удаление — используйте LinkedList

Кроме того, использование средств форматирования стиля кода Java и анализаторов исходного кода, таких как FindBugs, CheckStyle или Sonar, улучшит читабельность вашего кода.

вернуться в меню ↑

Performance

Сделать приложение функциональным — это одно, а быстро разработать его — другое. Чтобы сделать это возможным, каждый Java-разработчик должен знать об общих проблемах производительности и по возможности избегать их.

  • Проблемы с базой данных
  1. N + 1 выбор — ловушка непонятной стратегии извлечения
  2. Отсутствие кеша — быстрее получить контент из памяти, чем из базы данных (возможно, на другом сервере)
  3. Недостаточный размер подключений к пулу
  • Проблемы с памятью
  1. Процедура сборки мусора происходит слишком часто или занимает слишком много времени
  2. Утечки памяти и ошибка OutOfMemory
  • Проблемы параллелизма
  1. Взаимная блокировка
  2. Многопоточность

Уровни ведения журнала в нашем коде позволят нам избежать печати ненужных журналов в режиме без разработки. Это также защищает производственную среду от замедления.

Журналы и коды возврата могут дать вам подробную информацию о том, что именно произошло. Благодаря этому потребители кода не будут тратить свое время. Если вы хотите избежать воссоздания объектов и уменьшить объем сборки мусора, кэшируйте часто используемые объекты.

вернуться в меню ↑

Фреймворки и инструменты

Если вы собираетесь выбирать среду приложения, я настоятельно рекомендую выбирать Spring из-за его популярности, гибкости и возможностей.

Это инфраструктура с открытым исходным кодом, которая упрощает управление разработкой J2EE и помогает «соединять» различные компоненты вместе.

Прежде всего, Spring полезен, если у вас есть много компонентов, которые вы хотите объединить различными способами, или если вы хотите облегчить замену одного компонента на другой. Эта структура также предоставляет множество модулей, которые поддерживают такие функции, как:

  • Внедрение зависимости
  • Безопасность
  • Доступ к базе данных
  • Webservices
  • Системная интеграция
  • Пакетная обработка

Каковы основные преимущества Spring?

  • Хорошо продуманная структура MVC
  • Модульная архитектура
  • Возможность реализации корпоративных приложений с использованием POJO
  • Набор традиционных технологий, т. е. Среда ORM, структура ведения журнала, J2EE
  • Согласованная система управления транзакциями
  • Гибкость в создании различных видов приложений, т.е. приложений с графическим интерфейсом
  • Поддержка для управления бизнес-объектами и предоставления их услуг компонентам уровня представления
  • Возможность исключения создания одиночных и заводских классов
  • Использование стандартной реализации JPA в качестве среды сохранения данных.
Станьте Java-разработчиком
Подробнее

С нуля Вы будете программировать на Java и писать серверную логику и настраивать взаимодействие с базами данных

Наиболее популярным является Hibernate, который предоставляет несколько полезных модулей, таких как:

  • ehcache — для определения кэша второго уровня
  • envers — для отслеживания истории изменений
  • поиск — для индексации результатов в локальном хранилище

Ключевые преимущества Hibernate:

  • Преимущества ООП-концепций, то есть наследование, инкапсуляция
  • Избежание повторяющегося кода из JDBC API
  • Механизм кеширования
  • Независимость от базы данных
  • Поддержка ленивой загрузки
вернуться в меню ↑

Архитектура

Следование принципам SOLID имеет решающее значение для проектирования хорошей архитектуры.

Акроним расшифровывается как:

  • S — Принцип единой ответственности
  • O — Открытый / Закрытый Принцип
  • L — Принцип замещения Лискова
  • I — Принцип разделения интерфейса
  • D — Принцип обращения зависимостей

Следующее, что вы должны помнить, это разделить приложение на различные логические области с точки зрения бизнеса. Как насчет реализации?

Его необходимо разделить на логические уровни с функциональной точки зрения, то есть представление, бизнес-логика и уровень данных. Если архитектура наслоена правильно, это означает, что она построена на отдельных слоях, на которые не влияют конкретные изменения в других слоях.

Если вы хотите предложить некоторые сложные и обширные функциональные возможности для пользователей вашего приложения, вам следует избегать разработки одного монолитного приложения и рассмотреть возможность использования архитектуры микросервисов.

В результате вы сможете создавать множество небольших программ, а затем вы можете создать небольшое приложение, которое реализует новую функцию.

Кроме того, наличие микроядра — еще одна хорошая практика. Это помогает нам реализовать дополнительные функции в архитектуре плагина поверх модуля ядра.

вернуться в меню ↑

Сервер развертывания

Создание динамических страниц и реализация служб поддерживаются серверами приложений, такими как кластеризация, отработка отказа и балансировка нагрузки. Благодаря этому разработчики могут просто сосредоточиться на выполнении бизнес-требований. Какой самый популярный сервер приложений для Java?

  • GlassFish
  • JBoss
  • Tomcat
  • Geronimo
  • WebSphere
вернуться в меню ↑

Другие полезные советы и хитрости

Авторизация и аутентификация

Настроить аутентификацию доступа довольно просто, поскольку приложения часто создаются с помощью Spring Framework. Spring Security предоставляет возможность установки таких объектов, как Role, Permission, и User to Role assignment.

Он также предоставляет комплексное решение для обеспечения безопасности, которое обрабатывает аутентификацию и авторизацию, доступное на уровне веб-запроса и на уровне вызова метода.

Модульное и интеграционное тестирование

Один из способов проверить правильность регистрации и поведения исходного кода — выполнить модульные тесты. То есть тесты позволяют идентифицировать программные регрессии или ошибки, созданные в результате последних изменений в исходном коде.

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

  • JUnit
  • TestNG
  • AspectJ
  • AssertJ
  • Mockito
  • PowerMock

Если вы хотите визуализировать покрытие кода, используйте библиотеку JaCoCo.

Сборка и развертывание

Если вы хотите создавать приложения быстрее, используйте инструменты сборки. Каждый Java-разработчик должен знать о таких инструментах, как Ant, Maven и Gradle.

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

Есть вопрос или дополнение?

      Оставить отзыв

      EdAdvisor
      Регистрация
      Сброс пароля
      Сравнить товары
      • Итого (0)
      Сравнить
      0