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

🔹 X5 Tech замутили прикольную движуху – кемпинг-викенд для разработчиков, можно потусоваться на природе и послушать лекции. Пройдет 11-12 сентября, бесплатно, но будет отбор участников, инфа здесь: https://prirodacodax5.tech/

🔹 17 сентября на онлайн-конференции IT Home Conference 2021 можно глянуть дебаты Java vs JavaScript, пообщаются два IT-клана: MJC и FrontSpot, чтобы присоединиться, нужно зарегистрироваться тут: https://community-z.com/events/it-home-conference-2021/forms/14357

🔹 JUG Ru 18 сентября проводят бесплатный небольшой онлайн-фест, по Java выступит разработчик из JetBrains Тагир Валеев, тема: «Java 17 для тех, кто в танке», если интересно, вот сайт конфы: https://techtrain.ru/. У Тагира обычно мегаполезные выступления, с крутыми примерами и доступной подачей. Вот тут кстати с ним хорошее интервью и записи докладов: https://habr.com/ru/company/jugru/blog/485134/

🔹 18-19 сентября пройдет Test Automation Hackathon, задания будут на автоматизацию web-приложений, инфа и регистрация тут: https://community-z.com/events/test-automation-hackathon

🔹 Большая техническая Java-конференция Joker в этом году пройдет 25-28 октября, тут будет поинтереснее опытным разработчикам и тимлидам, все еще онлайн, но должно быть полезно. Регистрация и программа докладов и воркшопов на сайте: https://jokerconf.com/
В сентябре ожидается выход Java 17 LST. Вроде новость, а вроде и нет. Существует мнение, что Java не меняется или меняется недостаточно быстро. Поэтому считаю интересным новости про Spring Framework 6. На эту тему сегодня вышла статья с конференции SpringOne: https://habr.com/ru/company/haulmont/blog/577080/
Что планируете на выходные? Есть предложение полезно провести время. 😉

Ловите пятничную подборку полезных ресурсов для практики программирования:

⌨️ LeetCode – здесь много задач, которые направлены на подготовку к техническому интервью. Также там есть возможность получить мнение специалиста о способе твоего решения задания и поучаствовать в некой имитации собеседования. Ссылка.

⌨️ Codewars – еще одна обучающая платформа, которая позволит потренировать навыки программирования. В каждой задаче можно сравнить варианты решения с другими участниками, это очень помогает в написании качественного кода. Ссылка.

⌨️ HackerRank – здесь много заданий по алгоритмам, структуре данных и Java, попадаются интересные и нетипичные. Рекомендую сначала порешать на тех, что выше, а потом сюда.

⌨️ CodeGym – популярный ресурс, наполненный практическими задачами в игровой форме. На сайте около 1200 небольших задачек, разделенных на 40 уровней, которые увеличиваются по сложности. Проверка задания и результат выдается сразу после его завершения. Подойдет не только начинающим кстати. Первые уровни можно пройти бесплатно, дальше попросит 1 800 руб в месяц. Все тут.
Плодотворного понедельника всем!

Полезный ресурс на сегодня - генератор отмазок.
«Thinking in Java» Брюса Эккеля. Мое отношение к ней спорное, для меня это уже больше реликвия, чем актуальный источник информации.

Что именно имею в виду:

- практически отсутствует описание инструментов, которые стали неотъемлемой частью Java за последние 5-10 лет;

- в силу этого часть предложенных решений неактуальны;

- не рассматриваются функциональное программирование, LocalDate, NIO.2 и другие важные темы;

- зато есть 100 страниц про Swing, который последний раз был актуален, когда из телевизора Чичерина про жару пела;

- сегодня уже немного странно видеть такое количество сравнений с С и С++, уже не так много тех, кто переходит с них на Java;

- местами громоздкий и сложный для понимания код в примерах.
Брюс Эккель - Философия Java - 2015.pdf
605.4 MB
В оригинале не нашлась для скачивания, а русская везде лежит, пусть и здесь будет.

В общем, охват тем широкий, возможно даже слишком. Прочитав эту книгу, будешь знать шаблоны, потоки, ввод/вывод, параллельное выполнение, регулярные выражения, есть интересная информация о дженериках и тд. Она, бесспорно, способна систематизировать знания, но предназначена совсем не для того, чтобы овладеть Java, скорее, чтобы понять, как язык работает.
Предыдущая версия OpenJDK с Long Term Support, Java 11, вышла ровно 3 года назад.

Но вот уже вышло 5 версий (12, 13, 14, 15, 16) и мы не успели опомниться, как подоспела следующая LTS-версия, Java 17.

Сделано много улучшений производительности, оптимизировано потребление памяти, уменьшено время старта JVM и многое другое.

Подробнее в статье:
https://habr.com/ru/post/577924/
Пройдемся по основам?

import java.util.Scanner;
class Main {
public static void main(String[] args) {
int[] m = {-1,0,1};
Scanner sc = new Scanner(System.in);
try {
int a = sc.nextInt();
m[a] = 4/a;
System.out.println(m[a]);
} catch (ArithmeticException e) {
System.out.println("Произошла недопустимая арифметическая операция");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Обращение по недопустимому индексу массива");
}
}
}
Слушайте!
Слушаете?)

Ловите хорошие подкасты для вечерней пробки:

Coding Blocks. Подкаст для всех разработчиков, много качественной информации о процессах, шаблонах проектирования, реализации баз данных, объектно-ориентированном программировании и многом другом.

Подкаст Inside Java – это шоу для разработчиков Java, его записывают ребята, которые создают Java в Oracle. Темы: про язык, JVM, OpenJDK, безопасность платформы, инновационные проекты, такие как Loom и Panama и много чего еще.

JavaHut. Бодрые выпуски не только на тему Java, но и о технологиях в общем.

Подкаст «Откровенно про IT-карьеризм» – для тех, кому актуальна подготовка к собеседованию. Программист и HR-manager обсуждают темы резюме, собеседований, вопросы построения карьеры.


Что еще послушать? музыку! :)

Не шучу, серьезно.
Почти всегда работаю с музыкальным сопровождением, у меня тут пара новых открытий: Esone, Funky Bijou и Def Cut – треки в стиле breakbeat, как-то бодро под них работается. А вот еще группа, которая делает спокойную фоновую музыку – Hammock.
Ребята из «Миран» провели тесты производительности и сравнили Java 11, Java 16 и Java 17. Прирост производительности неплохой относительно всех версий, нету только сравнений с Java 8, а на ней у многих большое количество рабочих проектов.

Статья тут: https://habr.com/ru/company/dcmiran/blog/578300/
Периодически собеседую джунов и встречаю полное отсутствие понимания принципов ООП, не могут объяснить даже основные принципы. Это ладно, можно просто не брать джуна). Но бывает вижу это не только у начинающих. И иногда это опытные ребята, которые не понимают, что весь смысл ООП сводится к тому, чтобы так переформулировать задачу и её решение, чтобы писать надо было поменьше и понятнее. Наследование и полиморфизм для них просто инструмент, а что там в основе этих механизмов – неважно. Не жалуюсь, просто хочу реже такое встречать.

Ну что, проверим, как хорошо вы помните ООП и переопределение в частности? 😈
Какой из перечисленных методов является переопределением метода public int[] inverse (int ar[], int size) класса родителя?
Anonymous Quiz
5%
public int inverse (int a, int b)
22%
public int[] method (int ar[], int size)
29%
private int[] inverse (int arr[], int arSize)
15%
private int[] inverse (double a[], double size)
7%
public int inverse (int arr[], int arSize)
22%
нет верного ответа
Какой из перечисленных методов является переопределением метода public double method (boolean flag, char ch) класса родителя?
Anonymous Quiz
0%
public void method (int a, int b)
5%
public void method (int a, int b, int c)
8%
public int method (int a, int b)
81%
public double method (boolean i, char j)
5%
все вышеперечисленные
Как оптимизировать митинг: не проводить его.

Да-да, всех бесят затянутые совещания, дейли и бесконечные стендапы. Конечно, есть продакт или скрам, который должен все это контролировать. Но мне кажется, если каждый участник немного ответственней отнесется к процессу, легче станет всем. Вот мои простые, но почему-то не всем очевидные рекомендации:

👍 Готовься, не надо вспоминать на месте статус своей задачи. Если занимаешься другими делами до встречи, за несколько минут переключи контекст в голове.

👍 Не бери с собой ноутбук, убери телефон. Не решай другие задачи во время митинга, сейчас твоя задача – митинг.

👍 Держи фокус на повестке, а себя в руках). Не пускайся в обсуждение вопросов, которые связаны с другими задачами, не поддерживай отхождение от темы у коллег. Если в конце встречи останется время и ты считаешь, что это сильно необходимо обсудить сейчас, можешь предложить.

👍 Уважай коллег: не опаздывай, не переходи на личные разговоры.

👍 Развивай скилы, касающиеся выступлений и ораторских способностей. Учись четко формулировать мысль, говорить лаконично и по факту.
Почему лень – это хорошо?

Ленивые дольше живут! Есть исследование моллюсков Атлантического океана, которое пришло к выводу, что кальмары и каракатицы, которые активней других расходовали энергию, умирали (и даже вымирали!) значительно раньше.

Лень восстанавливает мозг. Свободные от нагрузки периоды нужны голове, чтобы переработать всю информацию, подгрузить новые данные и выдать классное решение.

Лень учит работать быстрее. Ленивые не начинают заранее и часто делают в последний момент.
Тонкий аромат дедлайна учит бежать быстрее, это факт.

Самые мощные инсайты и озарения приходят во время ничегонеделания. Представляете, есть даже название сего феномена: «эффект инкубации».

Умные бездельники – самые ценные сотрудники. Они способны предложить решение, которое будет максимально быстрым и требует минимальных ресурсов. Качество не страдает, ибо переделывать тоже лень.

Благодаря лени человеческой у вас по дому ездит робот-пылесос, есть посудомоечная машина и даже дворники на машине. Лентяи заботятся о лени других!

Кстати, мне было лень писать этот пост.
Парето и код-ревью

Считаю, что принцип 80/20 часто работает и в вопросе код-ревью, ибо только 20% вносимых замечаний правят баги и вскрывают важные ошибки. Остальные 80 – это субъективщина: человек привык использовать одну структуру классов, а ты внес другую. А еще он знает более модную библиотеку и паттерн проектирования из книжки ну очень просится сюда. А в итоге код остается тем же и по функциональности, и по простоте/сложности. Естественно, я не говорю про ситуации, когда, например, сеньор правит джуна и замечания влияют на гибкость кода, тут о другом.

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

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

Идеально красивый код – не цель, цель – работающий продукт. Работайте на результат, а не над красотой кода.
Oracle выложили записи с конференции OracleDevLive, там много всего про новую Java 17, а еще про Vector API, Helidon, GraalVM и тд. Если планируете переходить, будет полезно.

Ссылка: https://developer.oracle.com/developer-live/java-innovations-sep-2021/
Продолжая тему пятничного поста про код-ревью, грех не вспомнить про «Чистый код» Роберта Мартина.