453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Tim Roughgarden, Algorithms Illuminated: Part 1: The Basics
algorithms-illuminated-part-1.pdf
5.5 MB
Если хочется лучше разбираться в алгоритмах, читайте Рафгардена. Это первая часть четырехтомника, посвящена введению в основы.

Из плюсов:

максимально понятный язык;
баланс между теорией и разбором конкретных примеров;
все необходимое для хорошей базы: MergeSort, QuickSort, асимптотический анализ, “разделяй и властвуй”, алгоритмы сортировки.

Из минусов:

к некоторым задачам нет ответов, а чтобы их узнать, нужно пройти курс автора на Coursera. Хитро, но, справедливости ради, курс и правда годный. Найти его можно по ссылке.
Каждый раз.
Декабрь оказался богат на полезные мероприятия.

Online Java Meetup от Haulmont

🗓 9 декабря, 18:00

Небольшой, но информативный митап, где будут обсуждать проблемы доступа к данным.

🔹 «Данные и микросервисы: проблемы и решения»

Developer Advocate Андрей Беляев расскажет о переходе от монолита к микросервисам, микрофреймворках (с подробностями про Micronaut Data, Panache и Helidon DB Client) и реактивном программировании.

🔹 «Удалять, чтобы осталось: решение от Hibernate и его последствия»

Developer Advocate Андрей Оганесян выступит с докладом о мягком удалении и разберет неочевидные факты на конкретных примерах. Заявлено, что доклад будет полезен опытным разработчикам. Учитывая, что большинство моих коллег относятся к soft delete скептически, послушать будет интересно.

Участие бесплатное, нужно только зарегистрироваться на Timepad. За час до начала вам пришлют ссылку на трансляцию.
Что будет выведено на экран следующим кодом?

int a = 15;
System.out.print(a);
{
a ++;
System.out.print(a);
}
System.out.print(a);
Что будет выведено на экран следующим кодом?
Anonymous Quiz
24%
сообщение об ошибке
16%
151615
49%
151616
11%
151516
Не всегда понятно, действительно ли для вашей задачи Hibernate Reactive подойдет лучше, чем классический Hibernate ORM, и стоит ли использовать его вообще. В статье, кроме логичного ответа (стоит, если ваше приложение уже по сути является реактивным), даны метрики производительности, по которым можно судить об эффективности. Стоит почитать, чтобы понять, на что обращать внимание при анализе сценария.

А еще приятно, что во всех случаях учитывается контекст и нет попытки сделать единый далеко идущий вывод.
Роберт Седжвик, «Алгоритмы на Java»
Алгоритмы_на_Java_by_Седжвик_Р_Уэйн_К_Sedgewick_Wayne_z_lib_org.pdf
186.6 MB
Наряду с Корменом, это классика, которую надо знать.

вся необходимая база описана с учетом особенностей Java;
даны реальные примеры, а не псевдокод (всегда ценю такое);
написано легко и доступно: в свое время с трудом продирался сквозь Кнута и Скиену, а вот Седжвик зашел прекрасно.

К сожалению, под рукой оказался только перевод, но если у вас есть возможность – читайте в оригинале. В русскоязычном издании при оформлении почему-то решили переносить вложенные циклы на следующую страницу – читать, мягко говоря, неудобно.
А техническое собеседование, наверное, на стрельбище проводится?
Полезный ресурс для работы с TLS 🔐

Рано или поздно с протоколом TLS сталкивается каждый: например, если нужно настроить протокол в приложении на Spring Boot. И к такой встрече лучше подготовиться.

На этом сайте в полуинтерактивной форме демонстрируются все этапы TLS-хендшейка. Можно подробно изучить, как работает соединение, и посмотреть код на GitHub. Будет интересно даже тем, кто совсем не представляет, как функционируют криптографические протоколы.
Какой из перечисленных компонентов класса А не будет доступен расширяющему его классу B?
Anonymous Quiz
2%
public short a;
2%
protected void summ (int a, int b)
87%
private void pow (int a, double b)
2%
protected int summ (double x1, double x2)
7%
void mult (float a) при условии, что классы А и B находятся в одном пакете
Замечал, что даже вполне опытные разработчики временами путаются в определениях многопоточности, параллелизма и асинхронности. Ничего удивительного, вопрос и правда сложный, но разрешимый – нужно только упорство и желание разобраться.

Прочитав статью, можно увидеть отчетливую разницу между тремя понятиями. Только не поддавайтесь на уловку автора: он нахваливает преимущества асинхронной модели перед синхронной, но на графиках нет привязки ни ко времени, ни к размеру задач.

Каждая модель хороша для своих целей, а наша задача – не путаться в способах их достижения. С этим статья точно поможет.
Brian Goetz, Java Concurrency in Practice
Java_Concurrency_In_Practice_Brian_Goetz_with_Tim_Peierls,_Joshua.pdf
6.3 MB
Базовая книга про concurrency, считается классикой. Стоит прочесть, если:

вам надо разобраться в основах работы с потоками;

вы хотите понять, как избежать распространенных ошибок компиляции при работе с многопоточностью;

вы уже не новичок, но немного «плаваете» в терминологии.

Есть значительный недостаток:

книга 2006 года выпуска, так что про новые фичи никакой инфы оттуда вы не почерпнете. Автор говорил, что даже с учетом обновлений Java перерабатывать материал не собирается. Но если вам нужна только база – смело читайте.
Сегодняшнее настроение.
Радует, когда выходят переводы по-настоящему годных материалов.

Появился неплохой перевод статьи о создании нативных образов при помощи Spring Boot. Рассматриваются все аспекты: создание нового проекта, конфигурирование компонента и контроллера, неблокирующий HTTP-клиент, параметризация, тестирование и многое другое.

Можно сохранить и использовать как туториал 📝
Недавняя уязвимость Apache Log4j для пользователей Spring Boot может быть деликатно устранена переходом на версию Log4j 2.15.0. Например, при использовании системы сборки Maven, изменить версию можно, добавив в pom-файл в раздел Properties следующую строку: <log4j2.version>2.15.0</log4j2.version>.
Появилась подробная статья об уязвимости Apache Log4j. Информативный обзор, где собрали все необходимые данные и рассказали о способах защиты (описанный мной в прошлом посте тоже упоминают), за что авторам отдельное спасибо.
Это должно было случиться: неравнодушные из Intruder создали сайт с мемами про уязвимость Apache Log4j. Можно полистать, посмеяться (или поплакать) и даже отправить свой мем по теме.

Мой любимый пока вот этот.
(источник)