👍3
Автоматически ищем техдолг с помощью RefactorFirst
Недавно вышла новая версия библиотеки RefactorFirst 0.4.0, которая позволяет определять и визуализировать технический долг. С этой информацией можно пойти к своему тимлиду или продукт-оунеру и выбить время на рефакторинг, имея под руками железные доказательства.
Она ищет в Java-коде Божественные Классы и классы с очень высоким уровнем связности, которые следовало бы отрефакторить. Для этого используются правила God Class Rule и Coupling Between Objects Rule из опенсорсного коданализатора PMD.
Коротко опишу, что это такое, и как этим пользоваться.
https://habr.com/ru/companies/bar/articles/746574/
👉@BookJava
Недавно вышла новая версия библиотеки RefactorFirst 0.4.0, которая позволяет определять и визуализировать технический долг. С этой информацией можно пойти к своему тимлиду или продукт-оунеру и выбить время на рефакторинг, имея под руками железные доказательства.
Она ищет в Java-коде Божественные Классы и классы с очень высоким уровнем связности, которые следовало бы отрефакторить. Для этого используются правила God Class Rule и Coupling Between Objects Rule из опенсорсного коданализатора PMD.
Коротко опишу, что это такое, и как этим пользоваться.
https://habr.com/ru/companies/bar/articles/746574/
👉@BookJava
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO
Кто я такой
В Java я недавно. Работаю Java-разработчиком около года при общем 10-летнем стаже в АльфаСтрахование. Этому году предшествовали годы разработки на ABAP и полгода обучения на Javarush.
https://habr.com/ru/company/alfastrah/blog/706314/
👉@BookJava
Кто я такой
В Java я недавно. Работаю Java-разработчиком около года при общем 10-летнем стаже в АльфаСтрахование. Этому году предшествовали годы разработки на ABAP и полгода обучения на Javarush.
https://habr.com/ru/company/alfastrah/blog/706314/
👉@BookJava
👍5
Почему WebAssembly плохо годится для Java
Как разработчик TeaVM, компилятора байт-кода JVM в JavaScript и WebAssembly, я часто рекомендую пользователям, почему-то жаждущим сгенерировать WebAssembly, начать с JavaScript. Если честно, бэкэнд WebAssembly я очень давно не развиваю, не реализую в нём недостающих фич и не фикшу баги. Меня спрашивают: а почему так? Обычно, я просто игнорирую подобные вопросы, потому что в двух предложениях ответить на них невозможно, а для того, чтобы писать больше предложений, у меня нет времени. Обычно если я встречаю чьи-то попытки объяснить, чем WebAssembly плох для реализации JVM (а так же, CLR, JavaScript и прочих динамических сред), то они сводятся к следующему: "Java (.NET, JavaScript, ваш вариант) — это управляемый язык со сборкой мусора и исключениями, так что приходится тащить с собой гигантский рантайм". Что же, на самом деле, ситуация несколько сложнее, а размер рантайма вовсе не такой страшный и не является основным источником бед.
https://habr.com/ru/articles/757182/
👉@BookJava
Как разработчик TeaVM, компилятора байт-кода JVM в JavaScript и WebAssembly, я часто рекомендую пользователям, почему-то жаждущим сгенерировать WebAssembly, начать с JavaScript. Если честно, бэкэнд WebAssembly я очень давно не развиваю, не реализую в нём недостающих фич и не фикшу баги. Меня спрашивают: а почему так? Обычно, я просто игнорирую подобные вопросы, потому что в двух предложениях ответить на них невозможно, а для того, чтобы писать больше предложений, у меня нет времени. Обычно если я встречаю чьи-то попытки объяснить, чем WebAssembly плох для реализации JVM (а так же, CLR, JavaScript и прочих динамических сред), то они сводятся к следующему: "Java (.NET, JavaScript, ваш вариант) — это управляемый язык со сборкой мусора и исключениями, так что приходится тащить с собой гигантский рантайм". Что же, на самом деле, ситуация несколько сложнее, а размер рантайма вовсе не такой страшный и не является основным источником бед.
https://habr.com/ru/articles/757182/
👉@BookJava
Хабр
Почему WebAssembly плохо годится для Java
Как разработчик TeaVM , компилятора байт-кода JVM в JavaScript и WebAssembly, я часто рекомендую пользователям, почему-то жаждущим сгенерировать WebAssembly, начать с JavaScript. Если честно, бэкэнд...
Все что вам нужно знать о таймаутах
Никто не любит ждать и мы в Zalando не исключение. Мы не любим когда наши клиенты долго ждут доставку, мы не любим когда наши клиенты долго ждут оформления заказа и мы не любим медленные микросервисы. В этой статье мы говорим о том как установить оптимальное значение таймаутов в микросервисной архитектуре, чтобы достичь максимальной производительности и отказоустойчивости.
Rus https://habr.com/ru/articles/755750/
Eng https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
👉@BookJava
Никто не любит ждать и мы в Zalando не исключение. Мы не любим когда наши клиенты долго ждут доставку, мы не любим когда наши клиенты долго ждут оформления заказа и мы не любим медленные микросервисы. В этой статье мы говорим о том как установить оптимальное значение таймаутов в микросервисной архитектуре, чтобы достичь максимальной производительности и отказоустойчивости.
Rus https://habr.com/ru/articles/755750/
Eng https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
👉@BookJava
👍4
👍6
10 популярных библиотек для модульного и интеграционного тестирования Java
Юнит-тестирование и интеграционное тестирование в Java являются важными составляющими процесса разработки программного обеспечения.
Юнит-тестирование подразумевает тестирование отдельных блоков или компонентов кода в изоляции. Для этого обычно используется фреймворк тестирования, например JUnit или TestNG, и пишутся тестовые примеры, которые проверяют код и убеждаются в том, что его поведение соответствует ожиданиям. Модульные тесты должны быть быстрыми, повторяемыми и не зависеть от внешних зависимостей.
https://www.javacodegeeks.com/2023/03/10-popular-libraries-for-java-unit-and-integration-testing.html
👉@BookJava
Юнит-тестирование и интеграционное тестирование в Java являются важными составляющими процесса разработки программного обеспечения.
Юнит-тестирование подразумевает тестирование отдельных блоков или компонентов кода в изоляции. Для этого обычно используется фреймворк тестирования, например JUnit или TestNG, и пишутся тестовые примеры, которые проверяют код и убеждаются в том, что его поведение соответствует ожиданиям. Модульные тесты должны быть быстрыми, повторяемыми и не зависеть от внешних зависимостей.
https://www.javacodegeeks.com/2023/03/10-popular-libraries-for-java-unit-and-integration-testing.html
👉@BookJava
👍1
Как найти "мертвый" код в Java-сервисах
При создании решений код, который мы пишем, может прослужить много лет. При случайном просмотре устаревшего кода мы можем задаться вопросом: используется ли он до сих пор? Отсутствующая документация или устаревшие тесты не помогут нам ответить на этот вопрос. Если поспрашивать, то никто толком не знает. Давайте попробуем его удалить? А потом начинается хаос: выясняется, что она все еще используется для поддержки некоторых старых пользователей, на случай непредвиденных обстоятельств, или для той забытой интеграции, которую все еще используют.
Если код действительно больше не используется, то зачастую это происходит по историческим причинам. Возможно, сценарии использования были заменены новыми функциональными возможностями или устарели, а код забыли удалить. В случаях, когда исследовать "мертвый" код не так уж и просто, как повысить уверенность?
https://blog.picnic.nl/how-to-find-dead-code-in-your-java-services-d167c8f22838
👉@BookJava
При создании решений код, который мы пишем, может прослужить много лет. При случайном просмотре устаревшего кода мы можем задаться вопросом: используется ли он до сих пор? Отсутствующая документация или устаревшие тесты не помогут нам ответить на этот вопрос. Если поспрашивать, то никто толком не знает. Давайте попробуем его удалить? А потом начинается хаос: выясняется, что она все еще используется для поддержки некоторых старых пользователей, на случай непредвиденных обстоятельств, или для той забытой интеграции, которую все еще используют.
Если код действительно больше не используется, то зачастую это происходит по историческим причинам. Возможно, сценарии использования были заменены новыми функциональными возможностями или устарели, а код забыли удалить. В случаях, когда исследовать "мертвый" код не так уж и просто, как повысить уверенность?
https://blog.picnic.nl/how-to-find-dead-code-in-your-java-services-d167c8f22838
👉@BookJava
👍3