Вместо обычных POJO-классов для DTO используйте record (Java 14+). Меньше кода, больше удобства.
Record автоматически создает иммутабельный класс с приватными финальными полями, конструктором, геттерами, а также переопределенными методами toString(), equals() и hashCode().
public class User {
private final String name;
private final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() { return name; }
public int getAge() { return age; }
@Override
public String toString() {
return "User{name='" + name + "', age=" + age + "}";
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
User user = (User) obj;
return age == user.age && Objects.equals(name, user.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
public record User(String name, int age) {}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 — Через IDE
👾 — Через терминал
🎉 — В Docker-контейнере
⚡️ — В облаке
🤔 — Ещё не понял, как запускать
Please open Telegram to view this post
VIEW IN TELEGRAM
State — это поведенческий паттерн, который позволяет объекту менять свое поведение в зависимости от внутреннего состояния. Вместо множества условных операторов (if-else или switch), каждое состояние представляется отдельным классом, а сам объект делегирует управление текущему состоянию.
Когда использовать
🔹 Когда у объекта есть несколько состояний, и его поведение зависит от текущего состояния.
🔹 Когда код с if-else или switch начинает разрастаться и усложняет поддержку.
🔹 Когда необходимо четко разделить логику различных состояний и сделать систему более гибкой.
Преимущества
Недостатки
State — мощный инструмент, когда объекту нужно динамически изменять свое поведение. Он особенно полезен в конечных автоматах, обработке пользовательских действий и моделировании процессов с четко определенными шагами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Swipe right or swipe left
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
Что делать, если твои мэтчи в жизни не такие точные, как твой код?
Спокойно, 14 февраля в 19:00 по МСК мы разберём, как ML анализирует speed dating и предсказывает match.
📌 Мы возьмем реальные данные со speed dating.
📌 Обучим модель, которая скажет: match или swipe left.
📌 Разберём, какие признаки реально важны (спойлер: работа в IT — не прям гарантия успеха (наши маркетологи подтверждают 😥).
💡 Приходи, если хочешь прокачать свой Python, ML и, возможно, станешь идеальной парой, как самый стильные форсы.
👉 Записаться
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Микросервисы — это
🔹 Ключевые принципы
—
—
—
—
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассматриваются такие утилиты, как jps, jstack, jinfo, jshell, jar, java, javac, javap и jcmd.
Эти инструменты помогают управлять процессами Java, анализировать состояние потоков, получать информацию о системных свойствах, интерактивно выполнять код и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
Разберем новую фичу Java 21 — Scoped Values, которая пришла на замену (а точнее, в дополнение) к старому доброму ThreadLocal. Если вы когда-либо мучились с ThreadLocal в многопоточных приложениях, этот пост для вас.
ThreadLocal — это механизм для хранения данных, привязанных к потоку. Но у него есть недостатки:
— Данные остаются в потоке, даже когда уже не нужны (утечки памяти).
— Передавать данные в дочерние потоки неудобно.
— Нужно очистить данные вручную.
Scoped Values решают эти проблемы без магии и костылей.
Scoped Values (ScopedValue<T>) создаются только один раз и не изменяются после инициализации. Они передаются вглубь стека вызовов через метод ScopedValue.where(), а не через хранение в потоке, как ThreadLocal.
▪️ Пример кода с потоками
Допустим, есть обработчик запросов, который передает идентификатор пользователя.
— С ThreadLocal код выглядел бы так:
public class ThreadLocalExample {
private static final ThreadLocal<String> USER = new ThreadLocal<>();
public static void main(String[] args) {
USER.set("Alice");
new Thread(ThreadLocalExample::process).start();
}
private static void process() {
System.out.println("User: " + USER.get()); // null: поток не видит значение
}
}
ThreadLocal привязан к потоку, а не к области выполнения. Значение не наследуется
Теперь переделаем на Scoped Values:
public class ScopedValueExample {
private static final ScopedValue<String> USER = ScopedValue.newInstance();
public static void main(String[] args) {
ScopedValue.where(USER, "Alice").run(() -> {
new Thread(ScopedValueExample::process).start();
});
}
private static void process() {
System.out.println("User: " + USER.get()); // ✅ Видит "Alice"
}
}
Scoped Values автоматически передают значение в новые потоки.
🎯 Где использовать Scoped Values
1. Контекст запроса (Request Context)
В веб-приложениях часто нужно передавать ID запроса или текущего пользователя через слои сервиса.
2. Логирование (Tracing & Logging)
Можно автоматически передавать traceId в логи.
3. Конфигурация временных параметров
Можно временно менять настройки для фрагмента кода.
— ScopedValue быстрее и безопаснее, так как нет необходимости очищать значения вручную.
— Отлично подходит для работы с виртуальными потоками.
— Ограничение: они неизменяемые (Immutable).
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет! 👋
Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.
Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.
Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙
👉 Пройти опрос
Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.
Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.
Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙
👉 Пройти опрос
Как классическая классификация ML помогает в реальном мире
🤖 Классификация в ML — это метод обучения, в котором модель обучается на размеченных данных и предсказывает, к какому классу относится новый объект.
✅ Фильтрация спама – чтобы в почте оставалось только важное.
✅ Рекомендации фильмов – Netflix знает, что ты любишь!
✅ Кредитный скоринг – банки решают, дать ли тебе займ.
✅ Предсказание мэтчей – как на нашем вебинаре по speed dating.
14 февраля мы разберём на практике задачу классификации:
- Как выбрать оптимальные признаки
- Что делать с несбалансированными данными
- Как интерпретировать результаты модели
🔥 Если уже работаешь с ML или только начинающий программист – приходи на наш вебинар, в котором мы разберем «как предсказывать мэтч на speed dating» .
Приходи!
🤖 Классификация в ML — это метод обучения, в котором модель обучается на размеченных данных и предсказывает, к какому классу относится новый объект.
✅ Фильтрация спама – чтобы в почте оставалось только важное.
✅ Рекомендации фильмов – Netflix знает, что ты любишь!
✅ Кредитный скоринг – банки решают, дать ли тебе займ.
✅ Предсказание мэтчей – как на нашем вебинаре по speed dating.
14 февраля мы разберём на практике задачу классификации:
- Как выбрать оптимальные признаки
- Что делать с несбалансированными данными
- Как интерпретировать результаты модели
🔥 Если уже работаешь с ML или только начинающий программист – приходи на наш вебинар, в котором мы разберем «как предсказывать мэтч на speed dating» .
Приходи!
Forwarded from Библиотека задач по Java | тесты, код, задания
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом кода?
Anonymous Quiz
58%
{"username":"john_doe","email":"[email protected]"}
20%
{"username":"john_doe"}
8%
{"username":"john_doe","email":null}
7%
Ошибка компиляции
7%
RuntimeException
С апреля прошлого года Amplicode радовал разработчиков бесплатными инструментами для работы со Spring Boot. Теперь команда объявила, что с 15 апреля часть функционала станет доступна по подписке.
Но не волнуйтесь: базовые возможности останутся бесплатными, а новые платные функции помогут сэкономить еще больше времени и сил.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Java Developer
Удалёнка, Prooftech IT
▪️ Java Developer
Гибрид (Санкт-Петербург), Юниверс Дата
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик
Гибрид (Москва) / Удалёнка (РФ), 1С
▪️ Java-разработчик
Удалёнка / Гибрид (Москва), Swordfish Security
Вакансии Java разработчиков уровня Senior
▪️ Java-разработчик
Удалёнка / Гибрид (Москва), Notamedia
▪️ Java Developer
Удалёнка, Клевертек
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️ Java Developer
Удалёнка, Prooftech IT
▪️ Java Developer
Гибрид (Санкт-Петербург), Юниверс Дата
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик
Гибрид (Москва) / Удалёнка (РФ), 1С
▪️ Java-разработчик
Удалёнка / Гибрид (Москва), Swordfish Security
Вакансии Java разработчиков уровня Senior
▪️ Java-разработчик
Удалёнка / Гибрид (Москва), Notamedia
▪️ Java Developer
Удалёнка, Клевертек
Понравились вакансии?
❤️ — да
🤔 — нет
spb.hh.ru
Вакансия Junior Java Developer в Санкт-Петербурге, работа в компании Prooftech IT (вакансия в архиве c 5 марта 2025)
Зарплата: не указана. Санкт-Петербург. Требуемый опыт: 1–3 года. Полная. Дата публикации: 02.03.2025.
В спецификации HTTP планируют добавить новый метод — QUERY. Его задача — решить проблему перегруженных GET-запросов, когда в URL передается слишком много параметров. Длина строки запроса при этом может достигать пределов, установленных сервером или клиентом.
Порой разработчики обходят ограничение, используя POST и передавая параметры в теле запроса, что нарушает семантику HTTP. QUERY предлагает альтернативу: он работает как GET, но позволяет передавать параметры в теле запроса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proglib.academy | IT-курсы
Как применять сторителлинг на IT-собеседовании
Чтобы выделиться среди других кандидатов, можно использовать сторителлинг — инструмент, который помогает не только запомниться работодателю, но и показать свои софт-скиллы и опыт в выгодном свете.
➡️ Что внутри статьи:
▪️ Почему сторителлинг работает лучше сухого перечисления навыков.
▪️ Советы по созданию историй для IT-собеседований.
▪️ Готовые примеры успешных историй.
🔗 Читать статью
🔵 Чтобы подготовиться к IT-собеседованию, попробуйте наш курс «Алгоритмы и структуры данных»
Чтобы выделиться среди других кандидатов, можно использовать сторителлинг — инструмент, который помогает не только запомниться работодателю, но и показать свои софт-скиллы и опыт в выгодном свете.
▪️ Почему сторителлинг работает лучше сухого перечисления навыков.
▪️ Советы по созданию историй для IT-собеседований.
▪️ Готовые примеры успешных историй.
🔗 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 — Да, это маст-хэв
🎉 — Иногда
⚡️ — Нет, пишу руками
🤔 — Что такое Lombok?
👾 — Был опыт, но отказался
Please open Telegram to view this post
VIEW IN TELEGRAM
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ