453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Радует, когда выходят переводы по-настоящему годных материалов.

Появился неплохой перевод статьи о создании нативных образов при помощи 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. Можно полистать, посмеяться (или поплакать) и даже отправить свой мем по теме.

Мой любимый пока вот этот.
(источник)
Трудности импортозамещения: Сбер отказался от серверов на базе российских процессоров «Эльбрус-8С» после предварительного тестирования. Причина – абсолютное техническое несоответствие требованиям. Из 44 параметров предоставленные на тестирование серверы соответствовали лишь 7.

На данном этапе российское железо настолько не вызывает доверия, что фраза: «Мы приятно удивлены, что это вообще работает» никого не смущает. Вокруг «Эльбруса» много негатива, но на текущей стадии ожидать конкуренции с тем же Intel Xeon как минимум странно. Посмотрим, что будет, когда поступят в массовое использование «Эльбрус-8СВ», которые по характеристикам обещают быть значительно лучше.

А еще отбракованные «Эльбрусы» можно было купить как магнит на холодильник. Теперь такой раритет разве что на авито искать.
Ситуация с Log4j меняется стремительно, лучше обновлять до версии 2.17.0 и следить за новостями. А пока вот хорошая статья о том, как определить, зависит ли ваш Java-проект от уязвимой версии Log4j.

P.S. Друзья и коллеги, скоро вернусь к прежнему формату, буду делиться полезным контентом и мемами, но пока, сами понимаете, пишу о том, что волнует больше всего.
При условии,что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?

char ch1 = 'a';
char ch2 = 'b';
System.out.print(ch1 * ch2);
System.out.print(ch1 + ch2);
При условии,что коды символов 'a' и 'b' равны 97 и 98 соответственно, укажите, что будет выведено на экран в результате выполнения следующего фрагмента программы?
Anonymous Quiz
32%
сообщение об ошибке
44%
9506195
5%
a + b
11%
9506a + b
8%
NaNNaN
Jon Kleinberg, Eva Tardos, “Algorithm Design”
Algorithm_design_Pearson_Kleinberg,_Jon_Tardos,_Éva_2013_2014.pdf
4.6 MB
Jon Kleinberg, Eva Tardos, “Algorithm Design”

Чем книга хороша:

прекрасно разобраны назначения алгоритмов: зачем вообще изучать их особенности и какую проблему/задачу помогает решить каждый алгоритм;

подробно расписаны примеры, даны задачи для самостоятельной работы;

материал четко структурирован, никакой путаницы и перескакивания с темы на тему.

Что не очень классно:

❗️мало инфы про анализ алгоритмов, потребуются дополнительные источники;

❗️не подойдет для начинающих: авторы не объясняют вещи, которые считают очевидными, и не всем терминам дают определение. Хотя, если вам не лень постоянно гуглить, можете попробовать.
Меня часто спрашивают, в чем главное отличие опытных разрабов от начинающих...
Обсуждения Log4j не утихают, а мы и рады почитать что-нибудь интересное. Вот, например, подробный разбор уязвимости. Автор пошел длинным изощренным путем, но статья как минимум расширяет кругозор (знали, как можно легко поднять LDAP?), и дискуссия в комментариях увлекательная.
Martin Fowler et al., “Refactoring: Improving the Design of Existing Code”
Fowler_et_al_Refactoring_Improving_the_Design_of_Existing_Code337s.pdf
1.9 MB
Все основное, что нужно знать о рефакторинге – здесь.

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

🔸 задумаетесь, а так уж ли верен принцип: «работает – не трогай»;

🔸 поймете, как эффективнее проводить анализ некачественного кода;

🔸 узнаете, как разгрести беды в легаси коде.

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

Материал повторяет содержание доклада с прошлогодней конфы SnowOne, посмотреть его можно здесь.

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

К чему это я? Появилась статья про полезные, но не самые популярные функции Java. Очень рекомендую, наверняка и у вас будет мысль в стиле: «А что, так можно было?», когда, например, будете читать про функции, связанные с Java Concurrency.
Benjamin J Evans, David Flanagan, “Java in a Nutshell”
Java in a Nutshell, 7th Edition.pdf
12.1 MB
Подойдет начинающим и всем, кому под рукой нужен универсальный справочник. Соглашусь с теми, кто считает эту книгу подходящей альтернативой работам Хорстманна – действительно хорошее пособие.

🔺 никакой воды и заумных описаний, все четко и по делу;

🔺 много наглядных примеров;

🔺понятно рассказывается обо всех необходимых инструментальных средствах.

Опытным разрабам книга покажется скучноватой, но в качестве справочника пригодится.
Искусство общения с пользователями