452 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Introduction_to_algorithms-3rd Edition.pdf
5.4 MB
Не очень люблю Кормена за тяжеловесный стиль объяснений, но читать его надо обязательно, чтобы выстроить в голове систему. Это не просто книга, а буквально энциклопедия по основным алгоритмам и структурам данных.

🔺 в третьем издании две новые главы: про дерево ван Эмде Боаса и многопоточку;

🔺 все фундаментально необходимые знания;

🔺 разнообразие примеров любого уровня сложности.

Кстати, по книге есть курс, писал о нем выше.
Не плагиат, а коллективное творчество!
В дополнение к Кормену для более продуктивного изучения алгоритмов: плейлист с разбором основных алгоритмов на Java. Информативные и понятные видео с хорошей теоретической базой.
На канале есть и Java-туториалы по другим темам, а еще материалы по другим языкам, так что присмотритесь, если сейчас параллельно изучаете что-то еще.

Смотреть видео ➡️
Бурная дискуссия развернулась вокруг советов для читаемости кода, которые касаются единиц измерения (точнее, их отсутствия). Вариантов два: вставлять единицу измерения в имя или использовать строгие типы. Кто-то считает советы избыточными, ведь можно пользоваться венгерской нотацией, а заморачиваться с типизацией не всегда имеет смысл. Кто-то думает, что венгерская нотация спасает не везде (а иногда только все запутывает), поэтому, чтобы избежать недопонимания и ошибок в документации, нужно ликвидировать неоднозначности или прибегнуть к строгим типам.
Какое значение получит элемент массива с индексом 10, если он заполнен следующим образом?

int a [] = new int [100];
for(int i = 0; i < 100; a[i] = i % 2, i++);
Какое значение получит элемент массива с индексом 10, если он заполнен следующим образом?
Anonymous Quiz
52%
0
15%
1
25%
5
5%
10
3%
2
И.Н. Блинов, В.С. Романчик «Java. Методы программирования»
Java_Metody_programmirovania.pdf
50.4 MB
Для тех, кто изучает или только начинает знакомиться с Java SE и JEE. Первую часть можно пропустить – про основы и концепции ООП вы и так уже все знаете. Что есть из интересного:

🔹 программирование распределенных информационных систем с применением сервлетов;

🔹 применение шаблонов проектирования;

🔹 дополнительная инфа о UML, SQL, Ant и XML.
📑 Небольшая памятка для новичков в Spring Batch:

Job – задание, основное понятие в Spring Batch
Step – этап в составе задания
Tasklet – фрагмент произвольного кода
ItemReader – считыватель элементов
ItemProcessor – обработчик элементов
ItemWriter – записыватель элементов

Здесь можно почитать о применении Spring Batch на примере конкретной бизнес-задачи.
🔥 Бесплатный интенсив Java Concurrency пройдет с 8 по 10 июля

Три дня будем изучать многопоточность и закрепим знания на Live coding сессии, где вместе с Senior-разработчиком из Сбера напишем многопоточную программу.

После интенсива ты:

— Разберешься, в чем отличие между многопоточностью и параллельностью
— Научишься применять на практике средства для работы с многопоточностью, предоставляемые Java
— Сможешь проектировать многопоточные приложения, отлаживать, тестировать и оптимизировать их

Преподаватель:

👨🏼‍💻 Александр Литвинов — Team Lead в Сбере, 10 лет в разработке, преподаватель курса Middle Java Dev

🚀 Стартуем 8 июля в 19:00 мск

Регистрируйся бесплатно: https://cutt.ly/1KMLGBR
Созданная с опорой на документацию большая шпаргалка по Spring с описаниями компонентов экосистемы. Помогает сориентироваться и понять, что конкретно пригодится на твоем проекте. Хорошо структурирована, сохранил для удобства.
Какое ключевое слово используется для указания того, что класс реализует интерфейс?
Anonymous Quiz
8%
extends
85%
implements
4%
import
1%
uses
1%
include
Как понять, нужны ли микросервисы на вашем проекте?

Обратите внимание вот на эти признаки. Если найдете больше двух – однозначно пора уходить от монолита.

🔸Активный рост нагрузки, приближающийся к пределу масштабирования монолита.
🔸 Рост системы, техдолга и кодовой базы.
🔸 Необходимость градации данных.
🔸 Появление новых задач (например, необходимость внедрения machine learning).

Все эти признаки детально описаны в статье, там же можно подробно почитать про основные плюсы и минусы микросервисов.
Собеседуешь стажера:
Сокращаем количество шаблонного кода на Java

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

Подробнее о том, как работает Lombok и как интегрировать аннотации в используемую IDE, можно почитать здесь.
Снижаем эксплуатационные затраты в облачных приложениях

Эксплуатационные затраты в чувствительных к задержке EDA-приложениях на Java порой значительно усложняют жизнь. Но есть способ их снизить – мигрировать с Kafka на Chronicle Queue, где ресурсы используются более эффективно. Этот фреймворк (кстати, опенсорсный) удобен для высокопроизводительных приложений, где критически важна низкая задержка передачи сообщений.

В статье сравниваются преимущества Kafka и Chronicle Queue при работе над тем или иным проектом.