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

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

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

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

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

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

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

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

📌 Важнее всего отлично разбираться в стеке проекта – от софта до железа, без этого никакие хитрости не помогут.

📌 Проводить fault tree analysis, чтобы обнаружить самые уязвимые места системы, оценить потенциальный ущерб и подумать, как его предотвратить. Подробнее о fault tree analysis рассказывают здесь.

📌 Знать, какие функции включает в себя отказоустойчивость и какими средствами их можно реализовать. В помощь – обзор библиотек отказоустойчивости на JVM.
С момента обнаружения уязвимости Log4Shell прошло уже больше месяца (на всякий случай: здесь и здесь писал о способах устранения), но мы продолжаем открывать новые аспекты проблемы до сих пор. Вот, например, статья о том, как связаны Log4Shell и Security Manager, а еще о том, почему библиотекам, сборкам, идентификациям и функциям нельзя доверять. Пригодится, чтобы понять, какие дополнительные меры безопасности можно внедрить на своих проектах.
Дж. Хайнеман, Г. Поллис, С. Селков, «Алгоритмы. Справочник с примерами на C, C++, Java и Python»
Хайнеман_Д_,_Поллис_Г_,_Селков_С_Алгоритмы_Справочник_с_примерами.pdf
25.1 MB
Продолжаю делиться литературой по алгоритмам. Сегодня у нас очень прикладная книга, которой можно пользоваться прямо во время реализации проектов.

🔹 алгоритмы не просто разобраны, но и распределены по сложности;

🔹 авторы пишут, какие условия необходимы, чтобы добиться максимальной эффективности по каждому алгоритму;

🔹 указано, какие структуры данных лучше подойдут в том или ином случае.

Обратите внимание, что теории здесь почти нет – это именно справочник для практического применения.
Немного мудрости от нейросети ☝️
Всем поклонникам отечественного производства 👨‍💻

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

Кстати, про вердикт Сбера в отношении Эльбрусов я рассказывал здесь.
Работая на корпорацию, я не раз сталкивался с проблемами, которых можно было бы избежать, если бы команде удавалось поддерживать однотипность кода. Оно и понятно: огромное количество микросервисов, толпа разработчиков – в таких условиях проблемы неизбежны.

Часто правильным решением оказывается смена подхода. Вот, например, здесь пишут о том, как внедрить в backend-разработку Contract-First и какие бонусы это принесет (самый главный – экономия человеко-часов, конечно). Это не панацея, но повышения эффективности с помощью такого подхода добиться можно.
data-structures-into-Java.pdf
1.3 MB
Hilfinger P., Data Structures (into Java)

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

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

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

📝 много тщательно подобранных примеров.
Интересно, когда это он успевает ходить в спортзал?...
Продолжаю наблюдать за эпопеей импортозамещения: как оказалось, производительностью серверов на базе «Эльбрусов» недовольны не только в Сбере, но и в МВД. Однако паниковать (или злорадствовать) рано: уже в первом квартале 2022 года в ведомстве начнут устанавливать процессоры «Эльбрус-8СВ», в которых исправлены многие недоработки «Эльбруса-8С».

В статье – подробности и информация от производителя, а в комментариях – соответствующий ситуации мем.
Часто рассуждаем с коллегами о том, что означают понятия «качество», «поддерживаемость» и «выразительность» кода. Бывает даже, что на код-ревью мнения совершенно не сходятся. Зато именно во время разбора конкретной задачи становится ясно, что под этими терминами подразумевает каждая сторона.

В статье автор руководствуется этой же логикой и, используя конкретный пример, предлагает выбрать, какой способ решения кажется вам наиболее качественным. Интересно почитать и дискуссию в комментах: после нее невольно задумываешься, а насколько абстрактны твои собственные критерии качественного кода.
Выберите вариант, который вызовет ошибку компиляции:
Anonymous Quiz
5%
int $x = 5;
34%
int _x_ = 5;
56%
int $x# = 5;
5%
int $x_ = 5;