Чашечка Java
10.2K subscribers
3.15K photos
6 videos
50 files
4.48K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Java News Roundup: Hibernate Reactive 1.0, Spring Updates, OpenJDK, Red Hat Introduces Cryostat 2.0

This week's Java roundup for October 18th, 2021 features news from OpenJDK, JDK 18, numerous updates on Spring projects, MicroStream 6.0, Quarkus 2.4.0, Hibernate Reactive 1.0, Open Liberty 21.0.0.11, Eclipse Vert.x 4.2.0, Red Hat introduces Cryostat 2.0, GraalVM Native Build Tools 0.9.7.1, Liberica Native Image Kit 21.3 and JDKMon 17.0.7.
By Michael Redlich

Read: https://www.infoq.com/news/2021/11/java-news-roundup-oct25-2021/
Ребята из RN Labs ищут Java-разработчиков уровня от middle до lead с зарплатной вилкой 150 000 – 450 000 ₽

Оформление будет по ТК РФ, а работать можно удаленно или из офиса в центре Москвы.

От вас требуется:
— Опыт промышленной разработки на Java от двух лет;
— Уверенное знание Spring Framework (Spring Boot), JPA (Hibernate);
— Умение работать с SQL-запросами;
— Уверенная работа с Git;
— Знание английского языка на уровне чтения документации.

Ещё для вас будет плюсом:
— Разработка высокопроизводительных систем;
— Работа с большими таблицами данных;
— Работа с брокерами сообщений, шинами данных и интеграциями в целом;
— Настройка пайплайнов разработки в Gitlab или аналогичных системах.

Работать придётся с:
— Java 11
— Spring Boot
— Spring Cloud
— PostgreSQL, Redis
— Kafka
— Jira, Confluence
— Gitlab, Grafana, Kibana, Splunk, Docker, Kubernetes, Dynatrace.

Узнавайте подробности по вакансии и откликайтесь: @re3ilo

#вакансия
3 Books and Courses to Learn RESTful Web Services using Spring and Java in 2021

Hello guys, if you know the Spring framework, then there is a good chance that you have heard about the classic Spring in Action book by Craig Walls. It's one of the best books to learn Spring,...

Read: http://www.java67.com/2018/02/3-books-and-courses-to-learn-restful-web-services-with-spring.html
Продажная многопоточность

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

Повествование будет разбито на две части, от простого к сложному.

В первой части будут рассмотрены базовые понятия, стандартные подходы и проблемы. Будут приведены примеры использования нескольких, довольно известных примитивов синхронизации.

Во второй части, мы углубимся в более сложные концепты и так же, на простых и понятных примерах, разберем нетривиальные концепции, которые существуют в современных языках программирования.
Читать первую часть

Читать: https://habr.com/ru/post/586920/?utm_campaign=586920
Нужна система с низкими задержками? Выбираем Java вместо C++

Все разработчики знают, что есть два способа сделать дело: первый — вручную, медленно, нервно, сложно, либо второй – автоматизировано, быстро и еще сложнее.

Например, я мог бы продолжить писать эту статью о том, почему стоит использовать Java вместо C++ при программировании систем с низкой задержкой. Либо мог бы обучить ИИ, чтобы он сделал это за меня. Второй подход, в конце концов, сэкономил бы мне массу времени – искусственный интеллект генерировал бы за меня тысячи статей в секунду – но редактор вряд ли обрадовался бы услышать, что на подготовку первой статьи мне нужно два года.

Аналогичная ситуация возникает при необходимости разработать систему с низкой задержкой.


Читать: https://habr.com/ru/post/586870/?utm_campaign=586870
Сломать объект с помощью финализации

Вчера перевели в статус Candidate новый JEP 421: Deprecate Finalization for Removal. Путь к удалению механизма финализации из Java начался в Java 9, когда метод Object.finalize()был впервые объявлен deprecated. Рано или поздно механизм исчезнет из Java, поэтому если вы его используете, самое время задуматься об альтернативах. Однако статья не об этом.
Я думал, что довольно хорошо представляю себе все минусы механизма финализации. Многие из них перечислены, например, в этой статье. Однако, прочитав JEP, я узнал об уязвимости, о которой раньше и не думал. Оказывается, с помощью финализации можно создать объект со сломанными инвариантами.


Читать: https://habr.com/ru/post/586994/?utm_campaign=586994
Чаты на вебсокетах. Теперь про бэкенд

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

Ниже подробности о том, что было до написания кастомных чатов и какие стояли требования к реализации, из каких компонентов они состоят, как вписываются в нашу инфраструктуру и что получилось в итоге. А в конце статьи — ссылки про особенности разработки наших чатов на вебсокетах для iOS и Android.


Читать: https://habr.com/ru/post/584414/?utm_campaign=584414
Top 5 Free Python Courses for Beginners to Learn Online in 2021 [UPDATED]

Hello guys, If you are a beginner looking for Free Python resources to start your programming journey, like books and online courses then you have come to the right place. Earlier, I have shared a...

Read: http://www.java67.com/2018/02/5-free-python-online-courses-for-beginners.html
Top 5 Spring Boot Courses for Beginners in 2021 [UPDATED] - Best of Lot

Hello guys, if one of your goals is to learn Spring Boot in 2021, and I have started working towards it. As I have talked about my 3 point action plan to learn new technology, the first step is to...

Read: http://www.java67.com/2018/06/5-best-courses-to-learn-spring-boot-in.html
5 Things You Can Gift to Programmers, Software Developers, and Tech Geeks

Hello guys, it's that time of the year again when you start thinking about gifts for your programmer boyfriend, husband, colleagues, or your near dear ones. Even if selecting presents or gifts...

Read: http://www.java67.com/2017/10/5-best-gifts-for-programmers-and-software-developers-geeks.html
Top 5 Data Visualization Tools Every Data Analyst and Data Scientist should Learn in 2021 - Best of Lot

Hello guys, If you are learning Data Science and Data Analysis then you may have come across Data Visualization, a technique to visualize data and derive insights. As a data scientist or data...

Read: http://www.java67.com/2020/07/top-5-data-visualization-tools-every.html
Top 5 Free Android Development Courses for Beginners in 2021 - Best of Lot

Hello guys, If you are passionate about creating mobile games and applications and want to learn how to develop Android apps or become an Android application developer, you have come to the right...

Read: http://www.java67.com/2019/01/top-5-free-android-app-development-courses-for-programmers.html
Уроки абстракции: чему FP может научить ООП

Одним из наиболее распространенных «лучших практик» в программировании является принцип DRY: не повторяйся. Для реализации этого принципа можно использовать множество методов: инкапсуляция, параметризация, инверсия управления и многое другое. Одним из этих методов является абстракция, и одно из основных различий между функциональным программированием (FP) и объектно-ориентированным программированием (ООП) заключается в способе применения абстракции. Обычной практикой в ООП является ограничение абстракции до строгого полезного минимума для рассматриваемой проблемы. В ООП преждевременное абстрагирование часто считается ошибкой, как и преждевременная оптимизация.

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

В этой статье мы сравним, как ООП и ФП будут обрабатывать абстракцию в конкретной простой задаче: вычислении суммы целых чисел от 1 до произвольного значения n. Проблема настолько проста для решения с помощью императивного программирования, что кажется, что в этом нет ничего интересного. Вот как это можно сделать в Java:


Читать: https://habr.com/ru/post/587440/?utm_campaign=587440
6 Essential Data Structures Java Programmer should Learn in 2021

Hello guys, Data Structure is a building block of programs. It's even said that  "Data Structure + Algorithms= Program". That's why a good knowledge of data structure is very...

Read: http://www.java67.com/2013/08/ata-structures-in-java-programming-array-linked-list-map-set-stack-queue.html
10 Essential Spring MVC and REST Annotations with Examples for Java Programmers

Hello guys, welcome to my third article on exploring essential annotations from the Spring framework, the most popular framework for Java development. In the first article, I have shared some of the...

Read: http://www.java67.com/2019/04/top-10-spring-mvc-and-rest-annotations-examples-java.html
Golang для Embedded Linux

При разработке очередной платформы перед командой АТОЛ встал вопрос выбора языка программирования/стека технологий/железа/фреймворка для создания решений. Железо было выбрано на базе относительно недорогой Linux-платформы STM32MP153/512MB DDR3/8GB eMMC. Эта платформа имеет на несколько порядков больше ресурсов, чем используемые в нашей основной массе решений LPC1768/LPC1778/LPC4078/STM32F207. 100% наработок кода компании для устройств были написаны на C/C++, однако прогресс не стоит на месте, и периодически необходимо актуализировать инструменты и технологии разработки, особенно с учетом новых аппаратных возможностей. Из статьи станет ясно, как мы дошли до жизни такой и почему выбрали Golang для создания очередного набора решений.

Выбор стека технологий важен для всех компаний, которые занимаются разработкой железа и перерастают крошечные embedded контроллеры на Cortex M0/M3/M4/M7. Обычно команды при переходе на новую платформу выбирают одно из двух решений: стараются сделать новую версию системы на новом железе/технологиях/архитектуре, превращая решение в нестабильный долгострой, или наоборот — вносят минимальное количество изменений, но иногда вместо совокупности положительных черт разных подходов получают совокупность отрицательных.

В статье исследованы особенности различных языков программирования/технологий (Java, Python, C/C++, Rust, Golang), их плюсы и минусы, сформулированы критерии выбора и представлен выбор команды АТОЛ.

Для анализа использован метод SWOT-анализа. В качестве источников данных — информация сайтов фреймворков. Помимо этого, косвенная информация о боли и страданиях разработчиков получена на Stackoverflow, и часть субъективных выводов сделана на основе моего экспертного мнения за более чем 30-летний опыт программирования.


Читать: https://habr.com/ru/post/587524/?utm_campaign=587524
How to use Stream allMatch() and anyMatch() function in Java? Example Tutorial

Hello friends, we all know how streams are super important for our day-to-day needs in programming and coding nowadays. But, do we know all the stream functionalities? Of course not. ...

Read: http://www.java67.com/2021/11/how-to-use-stream-allmatch-and-anymatch.html
Top 5 Spring Security Online Training Courses for Java Developers in 2021

Security is one of the most important aspects of a modern web application, be it a Java web application, .NET, or writing using any other web technology. In the Java world, Spring Security rule the...

Read: http://www.java67.com/2017/12/top-5-spring-security-online-training-courses.html
5 Free Linux Courses for Programmers and IT Professionals to Learn Online [2021]

Linux is one of the most popular operating systems to run server-side applications. I have seen almost all Java applications running on Linux, barring a couple of them, which run on Windows as a...

Read: http://www.java67.com/2018/02/5-free-linux-unix-courses-for-programmers-learn-online.html
Top 5 Free R Programming Courses for Beginners in 2022 - Best of Lot

More and more people are learning the R programming language to become Data scientists, one of the hottest and high-paying technical jobs on the planet. Though I am from Python camp when it comes to...

Read: http://www.java67.com/2018/09/top-5-free-R-programming-courses-for-Data-Science-Machine-Learning-Programmers.html
Top Java Blogs Weekly: Best of 46/2021

Best of Top Java Blogs, year 2021, week 46

Read: https://www.topjavablogs.com/news/best-of-46-2021