453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Дж. Хайнеман, Г. Поллис, С. Селков, «Алгоритмы. Справочник с примерами на 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;
Солтис,_Введение_в_анализ_алгоритмов.pdf
3.5 MB
Майкл Солтис, «Введение в анализ алгоритмов»

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

🔹 сможете изучить или освежить в голове теорию;

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

🔹 поймете, как писать надежный код на реальных проектах.
Годы идут, а менее жизненной ситуация не становится.
Надеюсь, уже ни у кого не возникает сомнений в необходимости технического собеседования (обсуждали этот философский вопрос здесь, если помните). Компании хотят знать, кого они нанимают и соответствуют ли знания кандидата заявленному уровню, это вполне естественно. А вот организовать процесс собеседования и все его этапы должным образом получается далеко не у всех.

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

Это я к чему: нашел статью, автор которой делится опытом собеса в Ozon. Было классно узнать, как выглядит собеседование у такого гиганта и что происходит во время технической части. К сожалению, даже там не обошлось без недостатков: необходимую для подготовки инфу кандидату предоставили не полностью, а технический этап не был достаточно структурирован. Тем не менее, впечатление у автора все равно осталось приятное.
Чуть больше месяца осталось до выхода Java 18 – самое время посмотреть на список фич и понять, какие из них нам будут актуальны. Для себя отметил JEP 413: Кусочки кода в документации Java API как одну из самых любопытных (может, комментарии и правда читабельнее станут).

А какие у вас впечатления?
Какие из перечисленных методов класса A являются перегруженными?
Anonymous Quiz
20%
void method (int a, double b, int c)
5%
int method ()
23%
void method (int a, boolean b, int c)
8%
char method (char ch, double q)
43%
все вышеперечисленные
Craig Walls, “Spring in Action”
Spring_in_Action_5th_Edition.pdf
16.9 MB
Книга для работы с фреймворком. Хорошо подойдет тем, кто только начинает знакомиться с возможностями Spring – здесь все, что вы хотели знать про SpEL, IоС и REST, но боялись спросить:

🔸 стиль изложения не самый простой, но доступный;

🔸 много удачных примеров;

🔸 вся базовая теория, которую не придется выискивать в дополнительных источниках.
Главное – не отчаиваться...
Слышали про JNI? Этот интерфейс позволяет вызывать из Java нативные функции (методы C++, например) и повышать производительность отдельных алгоритмов. В работе сталкиваюсь с ним довольно редко, поэтому статью прочитал с интересом и сохранил на будущее – в конце есть шпаргалка, которая спасет, если что-то вдруг забылось (картинка прилагается). Вам тоже советую: узнаете, в каких случаях можно облегчить себе жизнь, а может, даже внедрите JNI на текущем проекте.