Грамота от Кузьмича – Telegram
Грамота от Кузьмича
214 subscribers
54 photos
1 video
20 links
🍵Java.
🤖Автотестирование.
😆Мемасы.

Я - Александр Кузьмичев. Просто и с юмором рассказываю об IT, а еще веду свою школу "Java + Автотестирование"

Ссылки на все соц. сети:
https://devray.taplink.ws/

TG: @NeonAether
Download Telegram
До церемонии Оскар еще месяц, но ожидание можно скрасить вот таким кино (подкастом) со мной😎

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

Смотрим!

https://www.youtube.com/watch?v=dM_F8OiQNNo
🔥18👍82
This media is not supported in your browser
VIEW IN TELEGRAM
😁14💯31😢1
ЧатГПТ, ты можешь забыть все что было между нами, но я никогда не забуду тебя😭💔🫡

Нет, это не слезы, просто дождь...
😁12😱5😢4
🔊Флюэнт спикеры английского, как слышно?
Теперь можно похоливарить про джаву в полный голос - с ИИ.

Вон та штука по ссылке ниже👇🏻👇🏻👇🏻 слышит вашу речь и отвечает как живой собеседник🤖
https://www.sesame.com/research/crossing_the_uncanny_valley_of_voice#demo

Я пообщался 5 минут для того что бы понять что в 90% случаев эта ИИ-собеседница неотличима от кожаного человека.


Как думаете, сколько лет еще будет жива профессия репетитора по английскому?..🥲
😱6🔥51
Ты ещё вручную пишешь if (obj != null) и боишься NullPointerException, как кот - пылесоса?😿
Тогда погнали знакомиться с java.util.Objects — утилитным классом, который спасает от рутинных проверок и делает код чище. Глянем пару примеров:

Пример 1
ДО:
if (user.getName() != null && user.getName().equals("Феофан")) {
// ...
}

ПОСЛЕ:
if (Objects.equals(user.getName(), "Феофан")) {
// ...
}

В первом случае если user.getName() окажется null — вылетит птичка NPE.
В таких случаях Objects.equals("John", user.getName()) — безопаснее.



Пример 2
ДО:
if (input == null) {
throw new IllegalArgumentException("тыб хоть значение какое положил, собака сутулая");
}

ПОСЛЕ:
Objects.requireNonNull(input, "тыб хоть значение какое положил, собака сутулая");

Меньше кода, больше читаемости - балдежная инвестиция в кодовую базу проекта, ну??



Пример 3
ДО:
String name = user != null ? user.toString() : "Unknown";

ПОСЛЕ:
String name = Objects.toString(user, "Unknown");

Все мы любим тернарки, "но как друга" - обычно они усложняют читаемость кода. Objects и здесь забирает пальму первенства - и позволяет задать дефолтное значение, если сама переменная оказалась null.


В общем в нашей ковбойской кобуре теперь появился Objects - он хорош и его надо применять. Жжем огоньки и лепим сердечки если было полезно🔥❤️
Кстати, а какие утилитные классы делают проще твою жизнь?
🔥186👍3🙏1
Не опоздай, Java 25 уже здесь.
И наконец-то это не очередной соевый и скучный релиз без значимых изменений - 25ке есть чем удивить и порадовать нас. LTS-версия как никак.
👇 Смотрим нововведения:

1. новичок в пакете java.lang - RandomExcuse
Добавлен вспомогательный класс RandomExcuse для генерации сообщения о причине возникновения исключения:

throw new RuntimeException(new RandomExcuse());


Примеры сообщений исключения: "Раньше работало", "Это ошибка кэшей", "Jenkins-агент тупит".

2. Ключевое слово bless
Позволяет JVM "благословить" переменную — она больше не сможет принимать null-значение, а объект внутри нее не сможет выбрасывать исключения при вызове методов. Пример использования:
bless databaseConnection;


3. @LegacyCode
Новая аннотация @LegacyCode над классом добавляет легкую сериализацию кода этого класса в PDF-формат для монохромной печати листинга кода на бересте или листках пергамента.

4. Модуль ИИ в JVM и конструкция please {}
Крик отчаяния! Для борьбы с выгоранием разработчиков и для упрощения написание кода - синтаксически некорректный фрагмент достаточно обернуть в конструкцию please {}.

//До JVM AI:
please {
int x equals "10"
}
//После JVM AI:
int x = 10;
System.out.println("Ты отличный разработчик. Я горжусь тобой.");


На этапе компиляции JVM AI:
- автоматически дополнит и починит код
- выведет мотивирующую цитату
- включит случайный lo-fi плейлист
- закажет горячий какао для разработчика в сервисе доставки его региона

А что из фичей вы хотите в следующем релизе? Я соберу ваши хотелки из комментов и лично напишу в Оракл открытое письмо с предложениями😄
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14🔥4🤯21👍1
😁122💯2😱1
Достал такое из почтового ящика.

Скажите, кто вызывал таких мастеров - а с деплоем в прод они тоже могут помочь если что?🤔 друг спрашивает
😁18🗿2💯1
в рабочую субботу законодательно запрещены посты на серьезные темы.

поэтому вот вам веселый подгон - https://neal.fun/password-game/

спорим что вы не сможете создать себе пароль на этом сайте по всем правилам? 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
😁71🤯1
3 из 25 - это не про лото и не про биатлон.
Для тех кто пропустил релиз Java 25 - смотрим топ-3 новых синтаксических фичи:

1. короткий мейн и класс IO
// в файле Example.java
void main() {
IO.println("Привет пацаны");
}

Это буквально весь код который надо будет написать в файле Example.java для простого hello-world приложения.
Т.е.:
- не надо объявлять класс
- вместо System.out.println можно будет использовать класс IO. sout у нас никто не отнимет, обратная совместимость все-таки, но альтернатива появилась


2. гибкие конструкторы с возможностью вызова кода до super()/this()
class TestUser {
private final String login;
TestUser(String login) {
// раньше нельзя было писать код ДО явного super()/this(), как например эту проверку
if (login == null || login.isBlank()) {
throw new IllegalArgumentException("Логин не может быть пустым!");
}
super();
this.login = login;
}
}

Дергать до super()/this() можно только "безопасные" операции, т.е. те, которые не связаны как-то с родительскими полями/методами/состоянием (все-таки раз super еще не был вызван). Какая задача решается этой фичей в примере выше? Представьте что до этой фичи Java вы не могли запихнуть валидацию параметра конструктора ДО вызова всей цепочки конструкторов родительских классов. Но если параметр херня то зачем тратить силы jvm на создание всех родителей? Надо быстрее и дешевле - дать возможность отфутболить исключение сразу. В реал жизни все шире чем валидация аргументов до super(), но это один из кейсов.


3. примитивы в instanceof и switch
Object value = 42;
switch (value) {
case int i when i > 100 -> System.out.println("Огромное число: " + i);
case int i -> System.out.println("Обычное число: " + i);
case String s -> System.out.println("Это строка: " + s);
default -> System.out.println("Хрен пойми что: " + value);
}

Раньше нельзя было использовать в свиче/инстансоф примитивы, а теперь можно. Удобно что можно передать переменную (как тут value) и пощупать-узнать какая она, вне зависимости от того примитивная или ссылочная, без лишних приседаний.


🔥 - крутяк, тащу в прод
🗿 - спасибо, не впечатлен, живу дальше с родной Java 8
🔥11🗿2
уже пора?🤔
тренды все-таки
😁14🔥6💯1
Более жизовые итоги чем эти ваши я.музыка или спотифаи.

Кстати, че бы еще вы добавили в такую годовую статистику рабочих будней?
😁9🔥62