Чашечка Java
前往频道在 Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
显示更多8 550
订阅者
-424 小时
-137 天
-3230 天
帖子存档
8 551
Java on Azure Tooling Update – August 2022
Read: https://devblogs.microsoft.com/java/java-on-azure-tooling-update-august-2022/
8 551
Зачем нужно соединять Java-программу на компьютере и Arduino?
Картинка rawpixel
Любой энтузиаст, строящий свои проекты на базе Arduino, рано или поздно сталкивается с необходимостью тем или иным способом обеспечить взаимосвязь этой платы со своим компьютером.
Такой симбиоз даёт возможность как управлять платой с компьютера, так и наоборот — компьютером с платы. Об этом мы и поговорим в этой статье.
Читать: https://habr.com/ru/post/681382/?utm_campaign=681382
8 551
Скорость времени
Сколько нужно времени, чтобы снять показания времени? Каков хронометраж времени? Эти странные вопросы выплыли в публичную плоскость еще в 2014 году, когда Netflix переносил свои сервисы с CentOS Linux на Ubuntu, а автору этой статьи довелось помогать в отладке некоторых причудливых проблем с производительностью. Одна из этих проблем и будет описана ниже. Конечно, маловероятно, что вы когда-нибудь столкнетесь с именно такой проблемой, но интересен сам тип данной проблемы и метод отладки, позволивший с ней справиться – на самом деле, очень простой. Прагматичное сочетание инструментов для наблюдения за ситуацией и постановки экспериментов. Автор этого текста, Брендан Грегг, делился множеством постов о суперсиле наблюдательных инструментов, но часто бывает и так, что непритязательный хакинг не менее эффективен.
Cassandra, кластер для работы с базами данных, переключили на Ubuntu – и стало заметно, что задержка при записи возросла более чем на 30%. Экспресс-проверка базовой статистики по производительности показала, что потребление ресурсов ЦП возросло более чем на 30%. Что же такое выделывает Ubuntu, если ей на это требуется на 30% больше процессорного времени?!
Читать: https://habr.com/ru/post/682930/?utm_campaign=682930
8 551
Технологии NiFi & Kafka: применение (часть 1)
Добрый день, меня зовут Рустам Ахметов, я архитектор ГК Юзтех и интеграционной шины данных UseBus. В этой статье я расскажу о нашем опыте разработки продукта и выборе технического стэка. Хочу добавить, что я буду давать лишь поверхностный Helicopter view на продукты и их аналоги.
Из статьи вы узнаете:
Читать: https://habr.com/ru/post/683022/?utm_campaign=683022
8 551
10 Examples of more and less command in Linux
Hello guys, if you have been working on Linux then you must have come across less and more commands. They are the most popular command to view content of a file, particular log file in Linux. In fact, lessis my favorite command to see the logs in Linux because you can open both normal log file as well as a gzip or compressed log file using less command for viewing. It's also very well designed and fast command and you easily open even large log files using less which you would otherwise struggle to open using Windows tool like Notepad or Notepad++. In the past, I have shared examples of lsof, curl, netstat, and ssh command and in this article, I am going to share common examples of both less and more command.
Java Interview questions and tutorials
Read: http://www.java67.com/2022/08/10-examples-of-more-and-less-command-in.html
8 551
Кастомное автоматическое обновление конфигураций клиентов Spring Cloud Config Server. Часть 2: настройка сервера
Описывается, как можно инициировать автообновление клиентов Spring Cloud Config Server без использования Spring Cloud Bus или какой-либо иной вспомогательной технологии
Читать: https://habr.com/ru/post/682594/?utm_campaign=682594
8 551
Чистый код — практический подход
После нескольких докладов о чистом коде (Clean Code) я решил обобщить в статье самое важное по этой теме. Поскольку в Интернете и так много постов и информации об этом, то, я думаю, еще одна статья, просто рассказывающая о принципах чистого кода, не будет интересной.
Поэтому я попытаюсь показать вам практический подход к чистому коду. Не вдаваясь в теорию, покажу, как я пишу Чистый Код.
Читать: https://habr.com/ru/post/682922/?utm_campaign=682922
8 551
Как избавиться от старого продукта, не удаляя продукт?
Привет! Согласитесь, во многих крупных компаниях рано или поздно возникает проблема — какой-то прибыльный продукт превращается в legacy. Причем обычно менеджмент это осознает, когда хочет "просто" поменять одну цифру на другую к вечеру, а разработчики оценивают это в два спринта. Или когда разработчики один за другим теряют мотивацию и покидают продукт, а новые кандидаты выбирают другие офферы.
Часто эту проблему пытаются решить переписыванием продукта с нуля. Но переписывание с нуля кроет в себе отложенную проблему, так как можно потерять мелкие нюансы и в итоге переписанный продукт будет поначалу болеть "детскими болячками", которые много лет назад были вылечены в legacy. Мы, в АльфаСтраховании считаем, что все члены команды разработки должны понимать, что их материальный успех зависит от того, сколько компания зарабатывает, используя написанный ими продукт. А сколько денег принесет продукт, который постоянно спотыкается и плюется ошибками? И клиентов не удовлетворить ответами из серии: "Ну зато у нас тут микросервисы и неблокирующие стримы". Им важно, чтобы продукт работал быстро и стабильно. А написан ли он в виде скрипта на bash или в виде микросервисов на Scala, потребителям наплевать. Конечно, разработчикам не нужно забывать и о своём развитии — регулярно изучать новые технологии, получать опыт использования их в продуктиве, но не в ущерб бизнесу.
Что с этим делать? Мы нашли для себя ответ, успешно применили на одном продукте и надеемся что этот подход или его части помогут и другим.
Читать: https://habr.com/ru/post/682894/?utm_campaign=682894
8 551
Самопишущийся код
Когда речь идёт о технологиях, позволяющих компьютеру написать часть кода за человека, разговор вечно соскальзывает в гадания на кофейной гуще. Уволят через десять лет всех программистов или нет?
Но вообще-то тут есть о чём поговорить помимо этих спекуляций, причём разговор может быть куда предметнее. Как все эти разнообразные «copilot» вообще работают (вот сейчас, а не через десять лет)? Какие сложности возникают при их создании? Где эти сложности можно преодолеть, а где есть принципиальные ограничения формата?
На конференции Joker об этом рассказывали Никита Поваров allfather и Роман Поборчий p0b0rchy. На момент доклада оба работали в JetBrains, так что получилось не просто абстрактное описание вопроса, а «взгляд изнутри» со стороны тех, кто делает инструменты для разработчиков.
* Славное прошлое
* Фантастическое настоящее
* Счастливое будущее
Читать: https://habr.com/ru/post/682206/?utm_campaign=682206
8 551
Управление транзакциями в спринге: @Transactional в деталях
Вы можете использовать это руководство, чтобы получить простое и практическое понимание того, как работает управление транзакциями в Спринге (Spring) с помощью аннотации
@Transacional.
Единственное необходимое условие? Вы должны иметь приблизительное представление об "Эйсид" (ACID), то есть о том, что такое транзакции баз данных и зачем их использовать. Также здесь не рассматриваются распределенные транзакции или реактивные транзакции, хотя общие принципы, с точки зрения Сприга всё же применимы.
Читать: https://habr.com/ru/post/682362/?utm_campaign=6823628 551
How to use String literals in switch case in Java? Example Tutorial
Switch Statements are not new for any Programmer, it is available in C, C++, Java and in all major programming language. The switch statement in Java allows you to a clear, concise, and efficient multiple-branch statement without lots and lots of messy if-else statements. But Java Switch and case statement have a limitation, you cannot use String in them. Since String is one of the most used classes in Java, and almost every program, starting from Hello World to a complex multi-tier Java application uses them, it makes a lot of sense to allow them in the Switch case. In Java 6 and before, the values for the cases could only be constants of integral type e.g. byte, char, short, int, and enum constants. If you consider Autoboxing then you can also use the corresponding wrapper class like Byte, Character, Short, and Integer.
Java Interview questions and tutorials
Read: http://www.java67.com/2013/12/strings-in-switch-case-java-7-tutorial.html
8 551
Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana
Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".
Как какой из двух категорий относится эта статья — решать вам.
В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и про по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.
Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.
Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде.
Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.
Читать: https://habr.com/ru/post/682720/?utm_campaign=682720
8 551
Java News Roundup: Extent-Local Variables, Payara Platform, Project Reactor, Ktor, Spring Web Flow
This week's Java roundup for August 8th, 2022, features news from OpenJDK, 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 and KCDC Conference.
By Michael Redlich
Read: https://www.infoq.com/news/2022/08/java-news-roundup-aug08-2022/
8 551
Article: Debezium and Quarkus: Change Data Capture Patterns to Avoid Dual-Writes Problems
It’s common in microservices to write data in two places, a database and send the content to another microservice. One approach to tackle this problem is dual writes, but you may lose data because of concurrent writes. Debezium is an open-source project for change data capture using the log scanner approach to avoid dual writes and communicate persisted data correctly between services.
By Alex Soto
Read: https://www.infoq.com/articles/change-data-capture-debezium/
8 551
Кастомный отчет для Jira или как приключение затянулось
Представим ситуацию – вам надо сделать небольшой отчет на основе данных из другой системы. Звучит обыденно и вы сразу в голове представляете, что надо будет делать: узнать какие будут входные данные и в каком виде они к нам поступят, какая будет логика отчета (что на что надо умножить и т.д.) и в каком виде отчет должен быть представлен (график, диаграмма, таблица и т.д.), реализовать.
Но что, если я вам скажу, что это должна быть не какая-то новая система, а плагин для Jira. Все вышесказанное никуда не уходит, но добавляются нюансы. Вот о таких нюансах (и как не вылететь из-за них из всех разумных сроков) эта статья.
Читать: https://habr.com/ru/post/681874/?utm_campaign=681874
8 551
Сквозное и интеграционное тестирование просто, как юнит-тесты
Когда изменения затрагивают несколько микросервисов, возникает вопрос, как протестировать их в связке. Можно покрыть границы сервисов юнит тестами, а интеграцию проверить, развернув измененный код на тестовом окружении. У такого подхода две главные проблемы: цикл изменения-тестирование-исправления становится достаточно долгим и нужно много полноценных окружений, чтобы обеспечить параллельную работу нескольких разработчиков. Давайте попробуем решить проблему иначе.
Будем решать проблему последовательно, по шагам преодолевая возникающие трудности.
Код можно найти на GitHub. К каждой части будет ссылка на ревизию.
Читать: https://habr.com/ru/post/682420/?utm_campaign=682420
8 551
Отборные курсы, лекции, книги, инструменты и другие образовательные материалы для программистов здесь:
— курсы, лекции, подкасты по программированию: @prog_stuff
— инструменты программиста: @prog_tools
— книги по программированию: @devs_books
8 551
Top Java Blogs Weekly: Best of 34/2022
Best of Top Java Blogs, year 2022, week 34
Read: https://www.topjavablogs.com/news/best-of-34-2022
8 551
[recovery mode] Атака на String.hashCode: прообразы и коллизии
Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение
String::hashCode()совпадало для всех строк в наборе.
Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javascript's".hashCode() == "monocle".hashCode(), но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.
Тот самый случай, когда проще сделать всё самому. Стандартная хеш-функция строки в Java считается криптографически нестойкой, так что знаний из школьного курса математики должно быть достаточно.
Читать: https://habr.com/ru/post/674816/?utm_campaign=674816
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
