В данной статье предлагаю рассмотреть историю создания мной сборщика Java проектов под названием Conveyor (https://github.com/maximtereshchenko/conveyor): опыт написания проекта сложности выше средней, различные проблемы, причины принятия технических решений, примеры использования шаблонов проектирования
Java *
Объектно-ориентированный язык программирования
Новости
Как аналитик учился java log читать. Часть вторая: простые ошибки
Я уже рассказывал о том, что и как пишется в логи, что из себя представляют логи. Пришло время разбираться, как с ними работать и учиться читать информацию в больших файлах логов..
Приложения на GreenData (какие и многие другие приложения) имеют фронтовую часть и бэковую часть. Соответственно ошибки у нас тоже могут возникать как на фронте, так и на бэке.
Как понять относится ошибка к «фронту» или к «бэку»?
Об этом нам скажет сама ошибка, давайте рассмотрим 2 примера ошибок.
Безработные айосники, мертвый PHP и бесполезные “саперы”: топ-5 мифов о будущем российского IT
Мы в hitch занимаемся аутстаффингом – выводим опытных IT-специалистов на бигтех-проекты. Поэтому непрерывно следим за любыми изменениями на рынке, а еще с удовольствием слушаем экспертов — но не во всём с ними соглашаемся. Сегодня разберем прогнозы и обещания, которые всколыхнули рынок, но показались нам нереалистичными.
Unit-тестирование Flink-операторов, Job: Flink MiniCluster
Привет, Хабр! С вами вновь Александр Бобряков, техлид в команде МТС Аналитики. И я с очередной статьёй из цикла про фреймворк Apache Flink.
В предыдущей части я рассказал, как тестировать stateless- и stateful-операторы Flink с использованием вспомогательных TestHarness-абстракций, предоставляемых Flink.
В этой статье напишем тесты на всю джобу с использованием мини-кластера Flink и при помощи JUnit Extension. Ещё мы начнём выделять удобные вспомогательные абстракции для тестов, которые понадобятся позже.
Истории
Java Digest #12
Всем привет! 👋 👋 👋👋
Мы — Java-разработчики Тинькофф: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
В этом месяце в меню обновления: Intellij Idea с модным терминалом и AI-подсказками, миграции на новые версии Spring Boot за пару кликов в новой версии Java on VS Code, не забыли обновить и Micronaut, GraalVm, PMD и JMC. На горячее JEPы: Exception handling in switch, Derived Record Creation, Stream Gatherers, Vector API, String Templates. Не забыли и про бесплатный сыр — доступ к Spring Academy Pro.
Утоляем голод по новым знаниям интересными статьями и видео, для любителей экзотики — новые инструменты сборки, если не пробовали bld. А на десерт стоит присмотреться презентациям с прошедшего Jpoint 2024.
Быстрое нахождение чисел Фибоначчи
Описание способа нахождения значения произвольного элемента последовательности Фибоначчи за логарифмическое время.
Когда переключаются потоки в Spring WebFlux
Работа с библиотекой WebFlux вызывает затруднения у многих Java/Kotlin разработчиков
Код выглядит непривычно, непонятно в каких потоках выполняется логика и как этим управлять
Сегодня я попытаюсь объяснить простым языком такой важный аспект, как момент переключения потоков в WebFlux, это поможет вам допускать меньше ошибок и писать более производительный код
Также другие материалы от меня вы сможете найти в моем телеграм блоге
Расширение Функциональных Интерфейсов Java
За годы прошедшие с их появления в Java8 у меня набралась коллекция полезных решений и шаблонов, которые я переносил из проекта в проект, и которые в стандартной версии так и не были осуществлены. Недавно я решил собрать все вместе в небольшом проекте с открытым кодом. В первом релизе проекта расширения охватывают следующие аспекты:
Перевод Spring Boot приложения с HTTP на HTTPS без ругани браузера
Актуальный способ перевода вашего Spring Boot приложения с HTTP на HTTPS.
Текущие способы и гайды в интернете на эту тему мне не понравились, поэтому написал свой.
Lombok — как с ним жить, а не страдать или вариант best practics для lombok
Когда я впервые увидел - lombok, у меня возникло, дикое сопротивление. Было очевидное ощущение, что что-то не так. Я думаю, у многих консервативных разработчик возникло такое же ощущение. Однако, lombok популярен. Люди его любят, люди его используют. А значит, есть и будут появляться проекты с ним. А значит нам с этим всем придется как-то жить.
Как аналитик учился java log читать. Часть первая: логи бывают разные
Когда я пришёл работать в компанию GreenData шесть лет назад, мои задачи были достаточно стандартными для аналитика, который работает с low-code решениями. Работа с объектной моделью, написание алгоритмов, настройка визуалов - всё что обычно выполняет начинающий специалист в данной области. Однако в процессе моей работы и роста иногда я сталкивался с необходимостью разбираться в тонкостях работы Java, а именно с ошибками, которые возникали в процессе её исполнения.
Эти встречи с Java сначала были случайностью, но со временем превратились в моё новое профессиональное увлечение. Каждый случай сбоя или нестандартного поведения программы становился для меня вызовом; я понял, что за ошибками стоят не просто коды и сообщения, а целые истории о том, как работает система. Этот интерес постепенно перерос в глубокое погружение в мир Java-логов, благодаря чему я стал одним из ведущих экспертов по анализу программных сбоев в компании.
SOLIDно знать…
SOLID. Принципы и Паттерны. Паттерны и Принципы.
Что может быть ближе друг другу чем эти субстанции ?! Эта статья проведет параллель между ними, она не собирается объяснить суть каждой, вместе или отдельно, а желает показать как одна другой помогает.
То есть, статья в некотором роде перекрестный бой между паттернами и SOLID принципами.
Как начать писать на Java в VSCode
Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.
Тогда зачем пробовать что‑то другое?
Привет, Хабр! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.
В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.
Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.
В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
Ближайшие события
Что такое Java Spring и как с ним работать
«Фреймворк фреймворков» — так часто называют Java Spring. Зачем он нужен и какие у него есть плюсы и минусы, рассказывает специалист по Java, техлид в финтех-проекте Егор Воронянский.
Spring Boot Starter: практически, принципиально и подробнее. Часть 1
Всем привет, меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. За последние 2 года я написал и выпустил в продакшен более 30 микросервисов. Выдержать столь высокий темп помогло применение общепроектных решений и паттернов разработки.
Общепроектные решения — хорошая практика. Так можно создать единую основу для всех микросервисов, снизить риск ошибок и сосредоточиться на конкретных задачах, связанных с бизнес-логикой наших проектов. К тому же, микросервисы на единой основе легче интегрировать друг с другом, а это важно при разработке сложных систем.
В этом цикле статей я поделюсь выжимкой из материалов, накопленных мною в процессе создания микросервисов. Это будет полезно тем, кто только начинает разбираться, что же такое Spring Boot Starter и с чем его едят.
Первую часть мы посвятим созданию принципиального решения, которое позволит запустить стартер как подключаемую к другому Spring Boot-приложению библиотеку.
Перемещение указателя на смещение в Kafka
В данной статье описывается задача, в которой необходимо слушать сообщения с определенного смещения(offset) в Kafka. Для решения данной задачи потребуется интерфейс ConsumerSeekAware и найти позицию с которой нужно начать слушание. Так же необходимо будет создать механизм перезапуска слушателя сообщений Kafka. В примерах кода используются Java и Spring фреймворк.
Делаем из битого планшета одноплатник: подключаем Android-устройства к дешевым микроконтроллерам через UART
В наше время, из-за санкций одноплатники стали стоить каких-то «конских» денег. Даже б/у RaspberryPi Zero стоит 2-3 тысячи рублей на барахолках, что, мягко скажем, не совсем лояльная цена для «самого дешевого одноплатного компьютера в мире». Конечно, Orange Pi Zero всё ещё можно купить в пределах 1.500-2.000 рублей, но как по мне и эта цена не слишком лояльна за те характеристики, который предлагает такой одноплатник. С другой стороны, Android-планшеты 10-летней давности продаются на барахолках по 100-300 рублей, что выглядит гораздо привлекательнее, причём на некоторые устройства практически без костылей можно установить полноценный дистрибутив Linux! Вероятно, многие читатели скажут мол «автор бомж» и будут правы: ведь в рамках этой статьи, я хочу рассказать о том, как использовать полурабочий древний планшет в качестве полноценного одноплатника путём подключения его к микроконтроллеру и выводу GPIO! Сегодня мы с вами: узнаем, как подключить микроконтроллер к шине UART в планшете и научимся работать с последовательной шиной в Android прямо из Java и нативных программ. Интересна моя концепция антикризисного одноплатника? Тогда добро пожаловать под кат!
Принципы SOLID, только понятно
Когда я только знакомился с принципами SOLID, я искал понятные статьи на Хабр. При этом пришлось прочитать не одну статью, и полное понимание пришло сильно позже. Хотелось бы, чтобы новички на более простых примерах смогли почувствовать, о чем эти принципы.
Управление схемами в Kafka с использованием Schema Registry
Apache Kafka является мощным инструментом для обработки и передачи потоковых данных в реальном времени, который находит широкое применение в различных индустриях для обработки огромных объемов данных с низкой задержкой. В центре этой платформы лежит способность эффективно распределять данные между множеством производителей (producers) и потребителей (consumers), при этом поддерживая высокую пропускную способность и масштабируемость. Однако, с увеличением количества и разнообразия данных, возникает необходимость в управлении структурами этих данных, что обеспечивает Schema Registry. Этот компонент является критически важным для поддержания согласованности данных в Kafka, поскольку он управляет схемами сообщений и обеспечивает совместимость между различными версиями схем, что позволяет системам бесперебойно обмениваться данными даже при изменении структуры сообщений.
Отправка сообщения в несколько слушателей Kafka одновременно
В этой статье описывается способ отправки сообщения в несколько слушателей Kafka одновременно. Несколько слушателей будут получать одно и то же сообщение, от одного и того же отправителя сообщений, в данной реализации решения.
Логика реализована с использованием Java, Spring и Kafka.
Вклад авторов
olegchir 4056.4tagir_valeev 2369.0phillennium 1481.423derevo 1271.0ARG89 1078.2igor_suhorukov 915.2dbelob 895.0doom369 826.0alizar 756.0dididididi 709.0