452 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Годная видеолекция по Spring в двух частях

Для всех, кто хочет досконально разобраться, как устроен Spring: лекция покрывает такие аспекты, как жизненный цикл Spring-приложения, а также производительность, устройство ApplicationContext и множество интересных подробностей, которые не придется выискивать по разномастным источникам. Рекомендую.
Грустная правда...
Lightrun: инструмент для отладки производственных систем

Lightrun создан для отладки проблем прямо в продакшене. Вот что можно делать с его помощью:

🔹 динамически вставлять записи в журнал (во время выполнения);
🔹 делать снимки;
🔹 вводить метрики без изменение производственного кода.

Для примера — статья о том, как отлаживать с Lightrun коллекции на Java.
Brett D. McLaughlin, “Head First Object-Oriented Analysis and Design”
O'Reilly Head First Object-Oriented Design and Analysis.pdf
52 MB
Необходимый базис для анализа и проектирования качественного софта. Поможет разобраться, как реализовывать новые фичи, не ломая существующие, а еще:

🔸 как эффективно применять инкапсуляцию и делегирование;

🔸 как создавать гибкие приложения;

🔸 в каких случаях пригодятся шаблоны проектирования и UML.
И конечно, это всё происходит в пятницу…
Класс Optional: важное

Знали, что лучше не использовать Optional в качестве типа поля? Он предназначен в основном для применения в качестве возвращаемого типа. А еще при использовании Optional в сериализуемом классе появится исключение NotSerializableException.

Для детального изучения Optional и сериализации можно ознакомиться со статьями (attention: на английском):

📌 Optional как возвращаемый тип
📌 Использование Optional в Jackson

А здесь — объемное руководство по Optional (уже в переводе), где рассматриваются основные фичи класса.
В классе Dot, описывающем точку на плоскости, два целочисленных компонента – координаты точки: a и b. Какой из перечисленных конструкторов нельзя использовать в описании класса Dot?
Anonymous Quiz
5%
Dot() { a = 0; b = 0; }
48%
public static Dot (short x, short y) { a = x; b = y; }
25%
Dot (double x, double y) { a = x; b = y; }
7%
Dot (int x) { a = x; b = 0; }
15%
protected Dot () { a = 0; b = 0; }
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, “Introduction to Algorithms”
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 с описаниями компонентов экосистемы. Помогает сориентироваться и понять, что конкретно пригодится на твоем проекте. Хорошо структурирована, сохранил для удобства.