Тут вышел краткий обзор новых функций, которые появятся при обновлении с Java 11 до Java 17, рекомендую глянуть. В статье не все улучшения, собраны самые востребованные у большинства разработчиков функции.
Ссылка: https://habr.com/ru/post/575392/
Ссылка: https://habr.com/ru/post/575392/
Хабр
Новые возможности в Java версий 12 — 17
Быстрый тур по новым, готовым к работе функциям при обновлении с Java 11 до Java 17.Через три года после Java 11 - на данный момент последней версии с долгосрочной поддержкой (LTS), Java 17 LTS будет...
Минутка ностальгии. Вспомнилась тут Head First in Java. Вы скорее всего про нее слышали.
Сегодня с коллегой обсуждали траблы нашей локализации. А в Head First in Java в переводе оказывается куча фана: русские слова в кроссворде заканчиваются английскими буквами, шутки не адаптированы. Коллега не парился и читал на русском, книжка, как вы можете понимать, не зашла :)
На всякий, делюсь ссылкой на оригинал: https://www.pdfdrive.com/head-first-java-2nd-d19984272.html
Сегодня с коллегой обсуждали траблы нашей локализации. А в Head First in Java в переводе оказывается куча фана: русские слова в кроссворде заканчиваются английскими буквами, шутки не адаптированы. Коллега не парился и читал на русском, книжка, как вы можете понимать, не зашла :)
На всякий, делюсь ссылкой на оригинал: https://www.pdfdrive.com/head-first-java-2nd-d19984272.html
Если решить даже небольшую задачку и увидеть, что дал правильный ответ, в мозге произойдет выброс дофамина (он у нас для радости и мотивации между прочим!).
С заботой о вашем ментальном здоровье, несложный вопрос: какое ключевое слово для наследования класса?
Anonymous Quiz
5%
override
85%
extends
5%
inheritance
5%
implements
Всегда радует, когда код прост, функционален и понятен. Еще больше радует, когда такой подход используется и в других рабочих процессах.
Принцип KISS достаточно популярен, но применять можно и нужно всем: дизайнерам, аналитикам, маркетологам, копирайтерам, руководителям в особенности. Неважно, над чем идет работа, формулировки и процессы должны быть понятны всем причастным.
Что делать?
➡️ Перенеси внимание с рабочего процесса на результат. Определи цель и список конкретных шагов и инструментов для ее достижения. Это поможет с самого начала не сдвигать фокус с ожидаемого финального результата и не усложнять его.
➡️ Разберись в задаче и чётко пойми, когда работу можно считать выполненной.
➡️ Надо сделать только то, что стоит в задаче.
➡️ Заумные способы не повышают качество финального результата. «Ничего не понятно, но очень интересно» не катит.
➡️ Не используй более сложные средства, чем необходимо. А еще слова и фразы. Не пиши с использованием сленга, замени «фичу» и «флоу» на понятные термины.
➡️ Если пишешь код, представь, что цель – чтобы его смогли понять даже через десять лет. Представил? Теперь пиши.
Конечно, есть и другая сторона, например, современные ОС, новые версии которых начинают тормозить там, где предыдущая версия работала. Так бывает, когда разработчики пренебрегают оптимизацией и увлекаются повышением скорости разработки, понятностью кода и простотой. За это пользователям приходится платить производительностью, а иногда необходимостью заменять работающий ПК новым. Упрощайте, но грамотно и все будет ок.
Принцип KISS достаточно популярен, но применять можно и нужно всем: дизайнерам, аналитикам, маркетологам, копирайтерам, руководителям в особенности. Неважно, над чем идет работа, формулировки и процессы должны быть понятны всем причастным.
Что делать?
➡️ Перенеси внимание с рабочего процесса на результат. Определи цель и список конкретных шагов и инструментов для ее достижения. Это поможет с самого начала не сдвигать фокус с ожидаемого финального результата и не усложнять его.
➡️ Разберись в задаче и чётко пойми, когда работу можно считать выполненной.
➡️ Надо сделать только то, что стоит в задаче.
➡️ Заумные способы не повышают качество финального результата. «Ничего не понятно, но очень интересно» не катит.
➡️ Не используй более сложные средства, чем необходимо. А еще слова и фразы. Не пиши с использованием сленга, замени «фичу» и «флоу» на понятные термины.
➡️ Если пишешь код, представь, что цель – чтобы его смогли понять даже через десять лет. Представил? Теперь пиши.
Конечно, есть и другая сторона, например, современные ОС, новые версии которых начинают тормозить там, где предыдущая версия работала. Так бывает, когда разработчики пренебрегают оптимизацией и увлекаются повышением скорости разработки, понятностью кода и простотой. За это пользователям приходится платить производительностью, а иногда необходимостью заменять работающий ПК новым. Упрощайте, но грамотно и все будет ок.
Мне айти-события помогают быть в контексте происходящего, узнавать чужой опыт в удобном формате, участвовать в полезных обсуждениях, заводить новые контакты. Делюсь тем, что пройдет в ближайшие пару месяцев:
🔹 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/
🔹 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/
Хабр
Java 17 и Jakarta EE 9 — минимальные требования для Spring Framework 6
От переводчика: на конференции SpringOne были сделаны довольно важные анонсы относительно нового поколения Spring Framework, на Хабре это почему-то это прошло незамеченным. Судя по всему, в...
Что планируете на выходные? Есть предложение полезно провести время. 😉
Ловите пятничную подборку полезных ресурсов для практики программирования:
⌨️ LeetCode – здесь много задач, которые направлены на подготовку к техническому интервью. Также там есть возможность получить мнение специалиста о способе твоего решения задания и поучаствовать в некой имитации собеседования. Ссылка.
⌨️ Codewars – еще одна обучающая платформа, которая позволит потренировать навыки программирования. В каждой задаче можно сравнить варианты решения с другими участниками, это очень помогает в написании качественного кода. Ссылка.
⌨️ HackerRank – здесь много заданий по алгоритмам, структуре данных и Java, попадаются интересные и нетипичные. Рекомендую сначала порешать на тех, что выше, а потом сюда.
⌨️ CodeGym – популярный ресурс, наполненный практическими задачами в игровой форме. На сайте около 1200 небольших задачек, разделенных на 40 уровней, которые увеличиваются по сложности. Проверка задания и результат выдается сразу после его завершения. Подойдет не только начинающим кстати. Первые уровни можно пройти бесплатно, дальше попросит 1 800 руб в месяц. Все тут.
Ловите пятничную подборку полезных ресурсов для практики программирования:
⌨️ LeetCode – здесь много задач, которые направлены на подготовку к техническому интервью. Также там есть возможность получить мнение специалиста о способе твоего решения задания и поучаствовать в некой имитации собеседования. Ссылка.
⌨️ Codewars – еще одна обучающая платформа, которая позволит потренировать навыки программирования. В каждой задаче можно сравнить варианты решения с другими участниками, это очень помогает в написании качественного кода. Ссылка.
⌨️ HackerRank – здесь много заданий по алгоритмам, структуре данных и Java, попадаются интересные и нетипичные. Рекомендую сначала порешать на тех, что выше, а потом сюда.
⌨️ CodeGym – популярный ресурс, наполненный практическими задачами в игровой форме. На сайте около 1200 небольших задачек, разделенных на 40 уровней, которые увеличиваются по сложности. Проверка задания и результат выдается сразу после его завершения. Подойдет не только начинающим кстати. Первые уровни можно пройти бесплатно, дальше попросит 1 800 руб в месяц. Все тут.
Leetcode
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
«Thinking in Java» Брюса Эккеля. Мое отношение к ней спорное, для меня это уже больше реликвия, чем актуальный источник информации.
Что именно имею в виду:
- практически отсутствует описание инструментов, которые стали неотъемлемой частью Java за последние 5-10 лет;
- в силу этого часть предложенных решений неактуальны;
- не рассматриваются функциональное программирование, LocalDate, NIO.2 и другие важные темы;
- зато есть 100 страниц про Swing, который последний раз был актуален, когда из телевизора Чичерина про жару пела;
- сегодня уже немного странно видеть такое количество сравнений с С и С++, уже не так много тех, кто переходит с них на Java;
- местами громоздкий и сложный для понимания код в примерах.
Что именно имею в виду:
- практически отсутствует описание инструментов, которые стали неотъемлемой частью Java за последние 5-10 лет;
- в силу этого часть предложенных решений неактуальны;
- не рассматриваются функциональное программирование, LocalDate, NIO.2 и другие важные темы;
- зато есть 100 страниц про Swing, который последний раз был актуален, когда из телевизора Чичерина про жару пела;
- сегодня уже немного странно видеть такое количество сравнений с С и С++, уже не так много тех, кто переходит с них на Java;
- местами громоздкий и сложный для понимания код в примерах.
Брюс Эккель - Философия Java - 2015.pdf
605.4 MB
В оригинале не нашлась для скачивания, а русская везде лежит, пусть и здесь будет.
В общем, охват тем широкий, возможно даже слишком. Прочитав эту книгу, будешь знать шаблоны, потоки, ввод/вывод, параллельное выполнение, регулярные выражения, есть интересная информация о дженериках и тд. Она, бесспорно, способна систематизировать знания, но предназначена совсем не для того, чтобы овладеть Java, скорее, чтобы понять, как язык работает.
В общем, охват тем широкий, возможно даже слишком. Прочитав эту книгу, будешь знать шаблоны, потоки, ввод/вывод, параллельное выполнение, регулярные выражения, есть интересная информация о дженериках и тд. Она, бесспорно, способна систематизировать знания, но предназначена совсем не для того, чтобы овладеть Java, скорее, чтобы понять, как язык работает.
Предыдущая версия OpenJDK с Long Term Support, Java 11, вышла ровно 3 года назад.
Но вот уже вышло 5 версий (12, 13, 14, 15, 16) и мы не успели опомниться, как подоспела следующая LTS-версия, Java 17.
Сделано много улучшений производительности, оптимизировано потребление памяти, уменьшено время старта JVM и многое другое.
Подробнее в статье:
https://habr.com/ru/post/577924/
Но вот уже вышло 5 версий (12, 13, 14, 15, 16) и мы не успели опомниться, как подоспела следующая LTS-версия, Java 17.
Сделано много улучшений производительности, оптимизировано потребление памяти, уменьшено время старта JVM и многое другое.
Подробнее в статье:
https://habr.com/ru/post/577924/
Хабр
Вышла Java 17
Вышла общедоступная версия Java 17. В этот релиз попало более 2700 закрытых задач и 14 JEP'ов. Изменения API можно посмотреть по этой ссылке. Ссылки на скачивание: Oracle...
Пройдемся по основам?
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("Обращение по недопустимому индексу массива");
}
}
}
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("Обращение по недопустимому индексу массива");
}
}
}
Что будет, если ввести с клавиатуры 0?
Anonymous Quiz
24%
программа отработает без создания каких-либо исключений
12%
возникнет исключение класса InputMismatchException (несоответствие типа вводимого значение)
6%
возникнет исключение класса ArrayIndexOutOfBoundsException (выход за пределы массива)
58%
возникнет исключение класса ArithmeticException
Слушайте!
Слушаете?)
Ловите хорошие подкасты для вечерней пробки:
⏯ Coding Blocks. Подкаст для всех разработчиков, много качественной информации о процессах, шаблонах проектирования, реализации баз данных, объектно-ориентированном программировании и многом другом.
⏯ Подкаст Inside Java – это шоу для разработчиков Java, его записывают ребята, которые создают Java в Oracle. Темы: про язык, JVM, OpenJDK, безопасность платформы, инновационные проекты, такие как Loom и Panama и много чего еще.
⏯ JavaHut. Бодрые выпуски не только на тему Java, но и о технологиях в общем.
⏯ Подкаст «Откровенно про IT-карьеризм» – для тех, кому актуальна подготовка к собеседованию. Программист и HR-manager обсуждают темы резюме, собеседований, вопросы построения карьеры.
Что еще послушать? музыку! :)
Не шучу, серьезно.
Почти всегда работаю с музыкальным сопровождением, у меня тут пара новых открытий: Esone, Funky Bijou и Def Cut – треки в стиле breakbeat, как-то бодро под них работается. А вот еще группа, которая делает спокойную фоновую музыку – Hammock.
Слушаете?)
Ловите хорошие подкасты для вечерней пробки:
⏯ 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/
Статья тут: https://habr.com/ru/company/dcmiran/blog/578300/
Хабр
Насколько быстрее Java 17?
Решение задачи по составлению расписания турнира с разъездами (TTP) — один из вычислительных тестов в нашем наборе Позавчера вышла Java 17 с кучей новых функций и усовершенствований. Большинство из...
Периодически собеседую джунов и встречаю полное отсутствие понимания принципов ООП, не могут объяснить даже основные принципы. Это ладно, можно просто не брать джуна). Но бывает вижу это не только у начинающих. И иногда это опытные ребята, которые не понимают, что весь смысл ООП сводится к тому, чтобы так переформулировать задачу и её решение, чтобы писать надо было поменьше и понятнее. Наследование и полиморфизм для них просто инструмент, а что там в основе этих механизмов – неважно. Не жалуюсь, просто хочу реже такое встречать.
Ну что, проверим, как хорошо вы помните ООП и переопределение в частности? 😈
Ну что, проверим, как хорошо вы помните ООП и переопределение в частности? 😈
Какой из перечисленных методов является переопределением метода 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%
все вышеперечисленные
Как оптимизировать митинг: не проводить его.
Да-да, всех бесят затянутые совещания, дейли и бесконечные стендапы. Конечно, есть продакт или скрам, который должен все это контролировать. Но мне кажется, если каждый участник немного ответственней отнесется к процессу, легче станет всем. Вот мои простые, но почему-то не всем очевидные рекомендации:
👍 Готовься, не надо вспоминать на месте статус своей задачи. Если занимаешься другими делами до встречи, за несколько минут переключи контекст в голове.
👍 Не бери с собой ноутбук, убери телефон. Не решай другие задачи во время митинга, сейчас твоя задача – митинг.
👍 Держи фокус на повестке, а себя в руках). Не пускайся в обсуждение вопросов, которые связаны с другими задачами, не поддерживай отхождение от темы у коллег. Если в конце встречи останется время и ты считаешь, что это сильно необходимо обсудить сейчас, можешь предложить.
👍 Уважай коллег: не опаздывай, не переходи на личные разговоры.
👍 Развивай скилы, касающиеся выступлений и ораторских способностей. Учись четко формулировать мысль, говорить лаконично и по факту.
Да-да, всех бесят затянутые совещания, дейли и бесконечные стендапы. Конечно, есть продакт или скрам, который должен все это контролировать. Но мне кажется, если каждый участник немного ответственней отнесется к процессу, легче станет всем. Вот мои простые, но почему-то не всем очевидные рекомендации:
👍 Готовься, не надо вспоминать на месте статус своей задачи. Если занимаешься другими делами до встречи, за несколько минут переключи контекст в голове.
👍 Не бери с собой ноутбук, убери телефон. Не решай другие задачи во время митинга, сейчас твоя задача – митинг.
👍 Держи фокус на повестке, а себя в руках). Не пускайся в обсуждение вопросов, которые связаны с другими задачами, не поддерживай отхождение от темы у коллег. Если в конце встречи останется время и ты считаешь, что это сильно необходимо обсудить сейчас, можешь предложить.
👍 Уважай коллег: не опаздывай, не переходи на личные разговоры.
👍 Развивай скилы, касающиеся выступлений и ораторских способностей. Учись четко формулировать мысль, говорить лаконично и по факту.