453 subscribers
69 photos
25 files
83 links
Пишу иногда интересно, а иногда не очень. Предложения, сотрудничество @Javacoding_bot
加入频道
А ведь сегодня только вторник.
Продолжаю делиться литературой. Pat Morin, Open Data Structures.
ods-java-pat-morin.pdf
1.4 MB
Книга позиционируется как введение в структуры данных, но на деле не так проста.

Читайте, если вы:

уже знакомы с базой по структурам данных (с работами Лафоре, например);

хотите подробнее углубиться в тему или освежить знания;

любите максимально подробные (местами даже душные) разборы примеров.

Вам не подойдет, если:

⛔️ только начинаете изучать вопрос. Для этого можно познакомиться с Лафоре, на канале я делился книгой, пару курсов тоже рекомендовал).
Чему равен элемент массива a с индексом [51]?

int a []= new int [100];
for (int i = 0, j = 100; i < 100; i++, j--){
a[i] = i + j;
System.out.print(a[i]);
}
Чему равен элемент массива a с индексом [51]?
Anonymous Quiz
16%
50
7%
51
55%
100
15%
программа завершится ошибкой
7%
101
Кстати, я отлично завариваю чай.
Из интересных событий в индустрии:

Онлайн-конференция IT Nights 3.0

🗓10 декабря, 19:00
Стоимость билета: 990 ₽

Обещают много инфы про:

☑️ изменения в IT;
☑️ софт скилы;
☑️ собесы и построение карьеры;
возможности для обучения.

Что особенно полезного: доклады Тагира Валеева и Паши Финкельштейна, где они будут сравнивать Java и Kotlin.

Посмотреть полную программу конференции и купить билеты можно здесь.
Важнейшие принципы разработки ПО

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

Их суть сводится к одному – не усложнять и не халтурить. Невнимательность к требованиям, попытки реализовать все функции сразу или провести оптимизацию на начальном этапе разработки приведут только к бессмысленной трате времени и сил.

В статье подробно описаны 10 принципов разработки, которые помогут улучшить ваш код. Если придерживаться хотя бы нескольких, эффективность работы точно повысится. Кстати, про мой любимый (и, я считаю, важнейший) принцип KISS я рассказывал здесь.
Какой из перечисленных методов и операций может быть использован для замены символов в строках String или StringBuffer в Java-программах?
Anonymous Quiz
10%
substring()
78%
replace()
6%
getChars()
2%
concat()
3%
charAt()
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 находятся в одном пакете