Статический анализ кода в современной Java-разработке
Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.
Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.
Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.
Читать статью
Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.
Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.
Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.
Читать статью
👍5
Дюк, вынеси мусор! — 4. ZGC
С тех пор, как мы рассматривали принципы работы различных сборщиков мусора, входящих в состав виртуальной машины Java HotSpot, прошел уже не один год. За это время было разработано еще несколько сборщиков, один из которых — ZGC — достаточно давно вышел из разряда экспериментальных и начиная с 15-й версии OpenJDK может похвастаться статусом production ready.
Раз есть такой хороший повод, давайте продолжим цикл, взяв сегодня на рассмотрение этот сборщик.
Читать статью
С тех пор, как мы рассматривали принципы работы различных сборщиков мусора, входящих в состав виртуальной машины Java HotSpot, прошел уже не один год. За это время было разработано еще несколько сборщиков, один из которых — ZGC — достаточно давно вышел из разряда экспериментальных и начиная с 15-й версии OpenJDK может похвастаться статусом production ready.
Раз есть такой хороший повод, давайте продолжим цикл, взяв сегодня на рассмотрение этот сборщик.
Читать статью
👍5
В Java-дайджесте от infoQ за прошедшую неделю представлены:
- новости о JDK 19, JDK 20 и Jakarta EE 10
- обновление Spring WebFlow 3.0.0-M1, Spring Tools 4.15.3
- обновление Payara Platform Enterprise 5.42.0
- обновление Quarkus 2.11.2, MicroStream 7.0.1-beta
- обновление Piranha 22.8.0, JobRunr 5.1.7
- обновление Eclipse Vert.x 4.3.3, Project Reactor 2022.0.0-M5
- обновление Ktor 2.1.0, Apache Camel 3.18.1
Читать статью
- новости о JDK 19, JDK 20 и Jakarta EE 10
- обновление Spring WebFlow 3.0.0-M1, Spring Tools 4.15.3
- обновление Payara Platform Enterprise 5.42.0
- обновление Quarkus 2.11.2, MicroStream 7.0.1-beta
- обновление Piranha 22.8.0, JobRunr 5.1.7
- обновление Eclipse Vert.x 4.3.3, Project Reactor 2022.0.0-M5
- обновление Ktor 2.1.0, Apache Camel 3.18.1
Читать статью
👍6
🧑🏻💻 Какие знания по Java Collections Framework гарантируют 95% при трудоустройстве?
Расскажем на открытом уроке 25 августа. А также разберем:
— Скиллсет Middle Java Developer
— Как нанимают разработчиков в России и за рубежом
— Почему важны soft skills
Спикеры:
🗣 Андрей Сундуков — Senior SRE Engineer в Natera. Больше 15 лет в IT, спикер JPoint 2022.
🗣 Роман Оборин — Senior Java Developer в BNP Paribas. Ex-ведущий разработчик в Сбербанке.
Занятие проходит в рамках курса “Middle Java Developer”.
🚀 Стартуем 25 августа в 19.00 по МСК
Регистрируйся бесплатно: https://cutt.ly/cXjHTzQ
Расскажем на открытом уроке 25 августа. А также разберем:
— Скиллсет Middle Java Developer
— Как нанимают разработчиков в России и за рубежом
— Почему важны soft skills
Спикеры:
🗣 Андрей Сундуков — Senior SRE Engineer в Natera. Больше 15 лет в IT, спикер JPoint 2022.
🗣 Роман Оборин — Senior Java Developer в BNP Paribas. Ex-ведущий разработчик в Сбербанке.
Занятие проходит в рамках курса “Middle Java Developer”.
🚀 Стартуем 25 августа в 19.00 по МСК
Регистрируйся бесплатно: https://cutt.ly/cXjHTzQ
👍5
Правила создания хороших комментариев к коммитам в Git
Правильно написанные сообщения к коммитам в Git помогают сделать проект удобным для дальнейшей доработки и поддержки. В этой статье вы познакомитесь с различными стратегиями написания хороших сообщений и их использования для оптимизации процесса разработки.
Читать статью
Правильно написанные сообщения к коммитам в Git помогают сделать проект удобным для дальнейшей доработки и поддержки. В этой статье вы познакомитесь с различными стратегиями написания хороших сообщений и их использования для оптимизации процесса разработки.
Читать статью
Telegraph
Как правильно писать сообщения коммитов в GIT, чтобы всем было хорошо
Правильно написанные сообщения к коммитам в Git помогают сделать проект с открытым или закрытым исходным кодом удобным для дальнейшей доработки и поддержки. В этой статье вы познакомитесь с различными стратегиями написания хороших сообщений и их использования…
👍4
Изучите основы Java и разработайте трекер продуктивности, даже если никогда прежде не программировали
Java — один из самых востребованных и доступных для освоения языков программирования. Его используют для создания сайтов, мобильных и десктоп-приложений, даже игр.
На бесплатном онлайн-курсе «Основы разработки на Java» за 5 занятий вы изучите основы синтаксиса языка Java и поймёте, подходит ли он вам, а в качестве практики разработаете консольное приложение по типу Pomodoro и перепишете его под Telegram API.
Записаться
Java — один из самых востребованных и доступных для освоения языков программирования. Его используют для создания сайтов, мобильных и десктоп-приложений, даже игр.
На бесплатном онлайн-курсе «Основы разработки на Java» за 5 занятий вы изучите основы синтаксиса языка Java и поймёте, подходит ли он вам, а в качестве практики разработаете консольное приложение по типу Pomodoro и перепишете его под Telegram API.
Записаться
👍6
Spring Data — сила доменных событий
Доменное событие (Domain Event) — одна из идей Domain Driven Design. Как только вы познакомитесь с этой техникой, то больше не захотите обходиться без нее. Итак, в этой статье я покажу пример разработки приложения. Мы пройдем процесс шаг за шагом по мере поступления новых требований. Это должно дать четкое представление о ценности доменных событий.
Наш стек — это Java 11 + Spring Boot + Hibernate.
Читать статью
Доменное событие (Domain Event) — одна из идей Domain Driven Design. Как только вы познакомитесь с этой техникой, то больше не захотите обходиться без нее. Итак, в этой статье я покажу пример разработки приложения. Мы пройдем процесс шаг за шагом по мере поступления новых требований. Это должно дать четкое представление о ценности доменных событий.
Наш стек — это Java 11 + Spring Boot + Hibernate.
Читать статью
Telegraph
Spring Data — сила доменных событий
Доменное событие (Domain Event) — одна из идей Domain Driven Design. Как только вы познакомитесь с этой техникой, то больше не захотите обходиться без нее. Итак, в этой статье я покажу пример разработки приложения. Мы пройдем процесс шаг за шагом по мере…
👍8
❓ Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
🔥 Java Библиотека - топовое сообщество Senior Java Developer из EPAM, где он делится советами, статьями и лайфхаками чтобы вы стали топовым разработчиком!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
🔥 Java Библиотека - топовое сообщество Senior Java Developer из EPAM, где он делится советами, статьями и лайфхаками чтобы вы стали топовым разработчиком!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
👍4🔥2😢1
Глубокое погружение в конфигурацию Spring Boot
Из статьи вы узнаете о настройке Spring Boot в различных средах: Kubernetes, Cloud и т. д.
Читать статью
Из статьи вы узнаете о настройке Spring Boot в различных средах: Kubernetes, Cloud и т. д.
Читать статью
👍4🔥3
Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисы
Всем привет. Как вы все знаете после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов.
Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.
Читать статью
Всем привет. Как вы все знаете после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов.
Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.
Читать статью
Telegraph
Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисы
Всем привет. Как вы все знаете, после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов. Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.…
👍5🔥3
Подготовка к интервью по Spring Data JPA
Одним из самых популярных модулей в приложениях Spring Boot является Spring Data JPA. Следовательно, у вас почти нет шансов избежать вопросов на собесе, связанных с этой темой. В этой статье будут рассмотрены наиболее часто задаваемые вопросы с подробными ответами по JPA/JDBC/Hibernate.
Читать статью
Одним из самых популярных модулей в приложениях Spring Boot является Spring Data JPA. Следовательно, у вас почти нет шансов избежать вопросов на собесе, связанных с этой темой. В этой статье будут рассмотрены наиболее часто задаваемые вопросы с подробными ответами по JPA/JDBC/Hibernate.
Читать статью
👍6🔥1👏1
It is Wednesday, my java dudes, или насколько сложно сделать свою JVM
Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?
Конечно же вырабатывать дофамин через решение упоротых инженерных задач!
Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?
Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.
Читать статью
Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?
Конечно же вырабатывать дофамин через решение упоротых инженерных задач!
Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?
Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.
Читать статью
Telegraph
It is Wednesday, my java dudes, или насколько сложно сделать свою JVM
Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения? Конечно же вырабатывать дофамин через решение упоротых инженерных задач! Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода…
🔥3👍2
Познакомьтесь с востребованным направлением программирования. Освойте базовые инструменты и возможности Java на практике. Узнайте 5 правил синтаксиса языка Java, которые нужно соблюдать каждому начинающему разработчику. Участвуйте в онлайн-интенсиве Skillbox с 25 по 27 августа в 19:00 по московскому времени.
Успейте зарегистрироваться: 👉 https://clc.to/LH6i9g.
Сразу отправим вам на почту чек-лист по знаниям и навыкам, которые необходимы backend-разработчику для трудоустройства.
Кому подойдёт интенсив:
📌 Новичкам в программировании.
Получите базовые навыки программирования на Java, научитесь писать простой код и узнаете основные функции. Попрактикуетесь в разработке, создадите свой первый проект и заложите основу для новой карьеры.
📌Начинающим разработчикам.
Углубите знания о Java и станете увереннее в своих проектах. Разработаете приложение за 3 дня, выявите ошибки, получите практические советы от опытного программиста.
Интенсив ведёт Даниил Пилипенко — основатель и директор центра подбора IT-специалистов SymbioWay.
С 2004 года разрабатывает и руководит разработкой на Java, PHP и во фронтенде. 50 раз выступил на семинарах и конференциях.
🎁 Всем, кто дойдёт до конца интенсива, подарим электронную книгу «Человек + машина» издательства МИФ.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 000 рублей на любой курс Skillbox.
Сделайте первый шаг к перспективной IT-профессии!
Успейте зарегистрироваться: 👉 https://clc.to/LH6i9g.
Сразу отправим вам на почту чек-лист по знаниям и навыкам, которые необходимы backend-разработчику для трудоустройства.
Кому подойдёт интенсив:
📌 Новичкам в программировании.
Получите базовые навыки программирования на Java, научитесь писать простой код и узнаете основные функции. Попрактикуетесь в разработке, создадите свой первый проект и заложите основу для новой карьеры.
📌Начинающим разработчикам.
Углубите знания о Java и станете увереннее в своих проектах. Разработаете приложение за 3 дня, выявите ошибки, получите практические советы от опытного программиста.
Интенсив ведёт Даниил Пилипенко — основатель и директор центра подбора IT-специалистов SymbioWay.
С 2004 года разрабатывает и руководит разработкой на Java, PHP и во фронтенде. 50 раз выступил на семинарах и конференциях.
🎁 Всем, кто дойдёт до конца интенсива, подарим электронную книгу «Человек + машина» издательства МИФ.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 000 рублей на любой курс Skillbox.
Сделайте первый шаг к перспективной IT-профессии!
👍6
Spring Authorization Server 1.0 Planned for November 2022
Just over two years since it was introduced to the Java community, Spring Authorization Server 1.0 is planned for a GA release in November 2022. The Spring Authorization Server project replaces the Spring Security OAuth project that has already been declared as end-of-life. The project is led by the Spring Security team and delivers support for OAuth 2.1 Authorization Server for Spring applications.
Читать статью
Just over two years since it was introduced to the Java community, Spring Authorization Server 1.0 is planned for a GA release in November 2022. The Spring Authorization Server project replaces the Spring Security OAuth project that has already been declared as end-of-life. The project is led by the Spring Security team and delivers support for OAuth 2.1 Authorization Server for Spring applications.
Читать статью
👍6
Чувак, где моя черепаха?
Как написать программу, чтобы победить на конкурсе плохого кода? Этот вопрос я задал сам себе, когда прочёл о необычном челлендже на форуме reddit. Да, вы правильно поняли. Это статья не о чистом коде и правильных тестах. Но здесь не будет и речи о плохом, заурядно плохом коде, том коде, который мы очень часто видим в наших проектах. Я расскажу об экстремальном, невообразимом, гениально плохом коде, коде, который использует те возможности джавы, о которых вы, скорее всего, и не догадывались, и те приёмы, которые вы никогда не встретите в обычных проектах. Сможете ли вы использовать эти приёмы на практике? Думаю, нет. Если вы прагматичный человек, то сэкономите своё время и остановитесь. Не читайте эту статью. Однако если вы хотите немного отвлечься от повседневной рутины, увидеть и узнать что-то новое о нашем любимом языке Java, - милости просим!
Читать статью
Как написать программу, чтобы победить на конкурсе плохого кода? Этот вопрос я задал сам себе, когда прочёл о необычном челлендже на форуме reddit. Да, вы правильно поняли. Это статья не о чистом коде и правильных тестах. Но здесь не будет и речи о плохом, заурядно плохом коде, том коде, который мы очень часто видим в наших проектах. Я расскажу об экстремальном, невообразимом, гениально плохом коде, коде, который использует те возможности джавы, о которых вы, скорее всего, и не догадывались, и те приёмы, которые вы никогда не встретите в обычных проектах. Сможете ли вы использовать эти приёмы на практике? Думаю, нет. Если вы прагматичный человек, то сэкономите своё время и остановитесь. Не читайте эту статью. Однако если вы хотите немного отвлечься от повседневной рутины, увидеть и узнать что-то новое о нашем любимом языке Java, - милости просим!
Читать статью
Telegraph
Чувак, где моя черепаха?
Как написать программу, чтобы победить на конкурсе плохого кода? Этот вопрос я задал сам себе, когда прочёл о необычном челлендже на форуме reddit. Да, вы правильно поняли. Это статья не о чистом коде и правильных тестах. Но здесь не будет и речи о плохом…
👍8🔥1
Управление временем в Java приложениях
В продуктовой Java-разработке часто требуется сохранять дату и время в базу данных. Это может быть фиксация времени создания\последней модификации какого-либо объекта или указание срока действия документа, билета и т.п. Сама по себе эта задача несложная. Трудности возникают, когда мы хотим подобную систему протестировать и оценить, как она будет вести себя, скажем, через полгода или год. В будущем. Ниже я покажу несколько простых и изящных приёмов, которые позволят вам почувствовать себя настоящим доктором Стрэнджем…
Читать статью
В продуктовой Java-разработке часто требуется сохранять дату и время в базу данных. Это может быть фиксация времени создания\последней модификации какого-либо объекта или указание срока действия документа, билета и т.п. Сама по себе эта задача несложная. Трудности возникают, когда мы хотим подобную систему протестировать и оценить, как она будет вести себя, скажем, через полгода или год. В будущем. Ниже я покажу несколько простых и изящных приёмов, которые позволят вам почувствовать себя настоящим доктором Стрэнджем…
Читать статью
Telegraph
Управление временем в Java приложениях
Сегодня я хочу поговорить об управлении временем в Java приложениях: зачем это нужно, и как это можно делать. В реальном коде часто требуется сохранять дату и время в базу данных. Это может быть фиксация времени создания\последней модификации какого-либо…
👍9🔥1
В Java-дайджесте от infoQ за прошедшую неделю представлены:
- новости о JDK 19, JDK 20
Обновления:
- Spring Boot 2.7.3 и 2.6.11
- Spring Authorization Server 1.0.0-M1 и 0.4.0-M1
- Spring Security 5.7.3, 5.6.7 и 5.8.0-M2
- Spring Cloud Dataflow 2.9.5
- Spring Shell 2.1.1
- Payara Platform 5 Community Edition
- Micronaut 3.6.1, Helidon 3.0.1 и Apache Camel 3.14.5
Читать статью
- новости о JDK 19, JDK 20
Обновления:
- Spring Boot 2.7.3 и 2.6.11
- Spring Authorization Server 1.0.0-M1 и 0.4.0-M1
- Spring Security 5.7.3, 5.6.7 и 5.8.0-M2
- Spring Cloud Dataflow 2.9.5
- Spring Shell 2.1.1
- Payara Platform 5 Community Edition
- Micronaut 3.6.1, Helidon 3.0.1 и Apache Camel 3.14.5
Читать статью
👍5🔥2❤1
Соглашение о коммитах
Спецификация «Соглашение о коммитах» — простое соглашение о том, как нужно писать сообщения коммитов. Оно описывает простой набор правил для создания понятной истории коммитов, а также позволяет проще разрабатывать инструменты автоматизации, основанные на истории коммитов.
Читать
Спецификация «Соглашение о коммитах» — простое соглашение о том, как нужно писать сообщения коммитов. Оно описывает простой набор правил для создания понятной истории коммитов, а также позволяет проще разрабатывать инструменты автоматизации, основанные на истории коммитов.
Читать
👍9
Сравнение Quartz, kagkarlsson и кастомной реализации для запланированного задания в реактивном Spring Boot приложении
Часто Java-разработчикам требуется реализовать запланированные задания. Современные реалии диктуют нам, что система должна быть масштабируемой, то есть вне зависимости от количества реплик и распределения нагрузки мы ожидаем выполнения задания по условиям, которые были определены на входе. Существуют готовые решения для реализации jobService. Используя базу данных, можно написать собственное решение этой задачи, а при возникший трудностях, разбираться с тем, что же пошло не так. С одной стороны, вероятность ошибки больше, чем с готовым решением, но с другой стороны в своем коде разбираться и вносить правки проще, чем в общедоступной библиотеке. Кроме того, собственная реализация будет учитывать особенности системы, в нашем случае, это реактивность. В статье подробнее описаны плюсы и минусы этих подходов.
Читать статью
Часто Java-разработчикам требуется реализовать запланированные задания. Современные реалии диктуют нам, что система должна быть масштабируемой, то есть вне зависимости от количества реплик и распределения нагрузки мы ожидаем выполнения задания по условиям, которые были определены на входе. Существуют готовые решения для реализации jobService. Используя базу данных, можно написать собственное решение этой задачи, а при возникший трудностях, разбираться с тем, что же пошло не так. С одной стороны, вероятность ошибки больше, чем с готовым решением, но с другой стороны в своем коде разбираться и вносить правки проще, чем в общедоступной библиотеке. Кроме того, собственная реализация будет учитывать особенности системы, в нашем случае, это реактивность. В статье подробнее описаны плюсы и минусы этих подходов.
Читать статью
Telegraph
Сравнение Quartz, kagkarlsson и кастомной реализации для запланированного задания в реактивном Spring Boot приложении
Часто Java-разработчикам требуется реализовать запланированные задания. Современные реалии диктуют нам, что система должна быть масштабируемой, то есть вне зависимости от количества реплик и распределения нагрузки мы ожидаем выполнения задания по условиям…
👍5🔥1
Weekend Offer для Java-разработчиков в команду VK Звонков состоится 10-11 сентября
Вам предстоит участвовать в разработке новых фич, развивать и улучшать существующие решения, работать над улучшением качества звука и видео и решать задачи бесперебойной передачи данных в сложных сетевых условиях. Из требований – опыт бэкенд-разработки на Java, способность собрать требования к задаче, знание сетевых стеков и протоколов передачи данных и понимание классических алгоритмов и структур данных.
Подать заявку
Вам предстоит участвовать в разработке новых фич, развивать и улучшать существующие решения, работать над улучшением качества звука и видео и решать задачи бесперебойной передачи данных в сложных сетевых условиях. Из требований – опыт бэкенд-разработки на Java, способность собрать требования к задаче, знание сетевых стеков и протоколов передачи данных и понимание классических алгоритмов и структур данных.
Подать заявку
👍5
Ищем-ищем нужное…
Периодически у каждого возникает такая задача, когда необходимо произвести поиск в какой-либо директории, прямо внутри содержащихся там файлов, и найти нужные файлы по ключевым словам. Именно об этом мы и поговорим в этой статье.
Читать статью
Периодически у каждого возникает такая задача, когда необходимо произвести поиск в какой-либо директории, прямо внутри содержащихся там файлов, и найти нужные файлы по ключевым словам. Именно об этом мы и поговорим в этой статье.
Читать статью
Telegraph
Ищем-ищем нужное…
Периодически у каждого возникает такая задача, когда необходимо произвести поиск в какой-либо директории, прямо внутри содержащихся там файлов, и найти нужные файлы по ключевым словам. Именно об этом мы и поговорим в этой статье. Проблема На самом деле, эта…
👍6