453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
Немного мудрости от нейросети ☝️
Всем поклонникам отечественного производства 👨‍💻

Вышел подробный разбор строения российского процессора «Эльбрус-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 на текущем проекте.
А вот и вторая статья из серии про JNI. Если не успели ознакомиться с первой, то лучше начните с нее (ссылка в посте выше), чтобы точно во всем разобраться.

Тут автор уже подбирается к самому интересному и рассказывает про JNI-типы и Return в нативном методе.

Узнаете, как передать List<List>, как пройтись по циклу в нативе и вызвать Java-метод из C++.
Что из перечисленного вызовет ошибку компиляции?
Anonymous Quiz
35%
double a = 5f+3d;
7%
double a = 5d+3e-1;
13%
double a = 5e+3e-1;
30%
double a = 5e+1+3e-1;
15%
double a = 5d+3e+1;