O'Reilly Head First Object-Oriented Design and Analysis.pdf
52 MB
Необходимый базис для анализа и проектирования качественного софта. Поможет разобраться, как реализовывать новые фичи, не ломая существующие, а еще:
🔸 как эффективно применять инкапсуляцию и делегирование;
🔸 как создавать гибкие приложения;
🔸 в каких случаях пригодятся шаблоны проектирования и UML.
🔸 как эффективно применять инкапсуляцию и делегирование;
🔸 как создавать гибкие приложения;
🔸 в каких случаях пригодятся шаблоны проектирования и UML.
Класс Optional: важное
Знали, что лучше не использовать Optional в качестве типа поля? Он предназначен в основном для применения в качестве возвращаемого типа. А еще при использовании Optional в сериализуемом классе появится исключение NotSerializableException.
Для детального изучения Optional и сериализации можно ознакомиться со статьями (attention: на английском):
📌 Optional как возвращаемый тип
📌 Использование Optional в Jackson
А здесь — объемное руководство по 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; }
Introduction_to_algorithms-3rd Edition.pdf
5.4 MB
Не очень люблю Кормена за тяжеловесный стиль объяснений, но читать его надо обязательно, чтобы выстроить в голове систему. Это не просто книга, а буквально энциклопедия по основным алгоритмам и структурам данных.
🔺 в третьем издании две новые главы: про дерево ван Эмде Боаса и многопоточку;
🔺 все фундаментально необходимые знания;
🔺 разнообразие примеров любого уровня сложности.
Кстати, по книге есть курс, писал о нем выше.
🔺 в третьем издании две новые главы: про дерево ван Эмде Боаса и многопоточку;
🔺 все фундаментально необходимые знания;
🔺 разнообразие примеров любого уровня сложности.
Кстати, по книге есть курс, писал о нем выше.
В дополнение к Кормену для более продуктивного изучения алгоритмов: плейлист с разбором основных алгоритмов на Java. Информативные и понятные видео с хорошей теоретической базой.
На канале есть и Java-туториалы по другим темам, а еще материалы по другим языкам, так что присмотритесь, если сейчас параллельно изучаете что-то еще.
Смотреть видео ➡️
На канале есть и Java-туториалы по другим темам, а еще материалы по другим языкам, так что присмотритесь, если сейчас параллельно изучаете что-то еще.
Смотреть видео ➡️
Бурная дискуссия развернулась вокруг советов для читаемости кода, которые касаются единиц измерения (точнее, их отсутствия). Вариантов два: вставлять единицу измерения в имя или использовать строгие типы. Кто-то считает советы избыточными, ведь можно пользоваться венгерской нотацией, а заморачиваться с типизацией не всегда имеет смысл. Кто-то думает, что венгерская нотация спасает не везде (а иногда только все запутывает), поэтому, чтобы избежать недопонимания и ошибок в документации, нужно ликвидировать неоднозначности или прибегнуть к строгим типам.
Какую сторону поддерживаете?
Anonymous Poll
30%
Не нужно изобретать велосипед, когда есть ВН
70%
ВН не панацея, а типы вообще надежнее
Какое значение получит элемент массива с индексом 10, если он заполнен следующим образом?
int a [] = new int [100];
for(int i = 0; i < 100; a[i] = i % 2, i++);
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_Metody_programmirovania.pdf
50.4 MB
Для тех, кто изучает или только начинает знакомиться с Java SE и JEE. Первую часть можно пропустить – про основы и концепции ООП вы и так уже все знаете. Что есть из интересного:
🔹 программирование распределенных информационных систем с применением сервлетов;
🔹 применение шаблонов проектирования;
🔹 дополнительная инфа о UML, SQL, Ant и XML.
🔹 программирование распределенных информационных систем с применением сервлетов;
🔹 применение шаблонов проектирования;
🔹 дополнительная инфа о UML, SQL, Ant и XML.
📑 Небольшая памятка для новичков в Spring Batch:
Job – задание, основное понятие в Spring Batch
Step – этап в составе задания
Tasklet – фрагмент произвольного кода
ItemReader – считыватель элементов
ItemProcessor – обработчик элементов
ItemWriter – записыватель элементов
Здесь можно почитать о применении 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
Три дня будем изучать многопоточность и закрепим знания на 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).
Все эти признаки детально описаны в статье, там же можно подробно почитать про основные плюсы и минусы микросервисов.
Обратите внимание вот на эти признаки. Если найдете больше двух – однозначно пора уходить от монолита.
🔸Активный рост нагрузки, приближающийся к пределу масштабирования монолита.
🔸 Рост системы, техдолга и кодовой базы.
🔸 Необходимость градации данных.
🔸 Появление новых задач (например, необходимость внедрения machine learning).
Все эти признаки детально описаны в статье, там же можно подробно почитать про основные плюсы и минусы микросервисов.