Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Младший Java-разработчик
Офис (Новосибирск), Интабия
Подробнее
▪️ Junior Java-разработчик
Офис (Москва), Gridnine
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик (middle)
Гибрид (Санкт-Петербург, Томск), SL Soft
Подробнее
▪️ Middle Java Developer
Удалёнка / Офис (Москва), Адвантум
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Senior Java Developer. Custom Solutions
Удалёнка / Офис (Тольятти), Haulmont
Подробнее
▪️ Ведущий Java разработчик
Гибрид (Москва) / Удалёнка (РФ), 1С:Предприятие
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️ Младший Java-разработчик
Офис (Новосибирск), Интабия
Подробнее
▪️ Junior Java-разработчик
Офис (Москва), Gridnine
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java-разработчик (middle)
Гибрид (Санкт-Петербург, Томск), SL Soft
Подробнее
▪️ Middle Java Developer
Удалёнка / Офис (Москва), Адвантум
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Senior Java Developer. Custom Solutions
Удалёнка / Офис (Тольятти), Haulmont
Подробнее
▪️ Ведущий Java разработчик
Гибрид (Москва) / Удалёнка (РФ), 1С:Предприятие
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
novosibirsk.hh.ru
Вакансия Младший Java-разработчик в Новосибирске, работа в компании Интабия (вакансия в архиве c 8 февраля 2025)
Зарплата: не указана. Новосибирск. Требуемый опыт: 1–3 года. Полная. Дата публикации: 05.02.2025.
Forwarded from Библиотека собеса по Java | вопросы с собеседований
MVP (Minimum Viable Product) — это
Ключевые аспекты MVP:
— MVP содержит только
— MVP создаётся для тестирования
— После выпуска MVP собираются
Важно: MVP — это не просто "сырой" продукт, он должен решать основную задачу, при этом быть полезным и функциональным.
Please open Telegram to view this post
VIEW IN TELEGRAM
ConcurrentSkipListSet — это потокобезопасная и отсортированная реализация интерфейса NavigableSet. Она построена на основе ConcurrentSkipListMap, что позволяет ей быть не только упорядоченной, но и эффективной для параллельного доступа. В основе её работы лежит структура данных skip list (список с пропусками).
Skip list — это многослойная структура данных, состоящая из нескольких уровней связных списков. На нижнем уровне содержатся все элементы в отсортированном порядке, а верхние уровни хранят лишь часть элементов для ускорения операций поиска. Благодаря этому достигается логарифмическая сложность операций add, remove и contains — O(log n).
Пример структуры:
lvl 3: A ------- H
lvl 2: A --- D -- H
lvl 1: A - B - D - F - H - J
🔹 Skip List: Многослойная структура, где верхние уровни позволяют быстро "перепрыгивать" через диапазоны элементов. Это минимизирует количество переходов по связным спискам.
🔹 Под капотом ConcurrentSkipListSet использует ConcurrentSkipListMap, где ключи — это элементы множества, а значения — фиктивные объекты.
🔹 Потокобезопасность достигается благодаря минимальному блокированию и использованию атомарных операций (CAS — Compare-And-Swap).
🔹 Элементы всегда упорядочены в соответствии с их натуральным порядком или компаратором, переданным в конструктор.
▪️ Эффективен для операций чтения (contains, iterators), так как они выполняются без блокировок.
▪️ Операции модификации (add, remove) потокобезопасны, но слегка дороже из-за использования CAS.
▪️ Поддерживает сортировку элементов в натуральном порядке или порядке, определённом компаратором.
▪️ Высокая производительность для сценариев с преобладанием чтений и умеренным количеством обновлений.
🚀 Когда использовать ConcurrentSkipListSet?
- Если нужен потокобезопасный доступ к отсортированному множеству.
- При необходимости частого чтения упорядоченных данных (например, для диапазонов).
- Для сценариев с конкурентным доступом, где важна производительность операций чтения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 JOOQ против Hibernate: что выбрать для вашего проекта?
JOOQ — это «замена» Hibernate? На первый взгляд кажется, что да: compile-time проверки, прозрачные SQL-запросы и отсутствие магии аннотаций делают его заманчивым. Но так ли всё просто?
Эта статья раскрывает, почему JOOQ и Hibernate решают совершенно разные задачи и как их можно использовать вместе. Узнайте:
▪️ В чём сила JOOQ как библиотеки.
▪️ Почему Hibernate — это больше, чем инструмент ORM.
▪️ Какие подходы помогут избежать хаоса в коде.
🔗 Читайте на Хабре
JOOQ — это «замена» Hibernate? На первый взгляд кажется, что да: compile-time проверки, прозрачные SQL-запросы и отсутствие магии аннотаций делают его заманчивым. Но так ли всё просто?
Эта статья раскрывает, почему JOOQ и Hibernate решают совершенно разные задачи и как их можно использовать вместе. Узнайте:
▪️ В чём сила JOOQ как библиотеки.
▪️ Почему Hibernate — это больше, чем инструмент ORM.
▪️ Какие подходы помогут избежать хаоса в коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
В 2024 году экосистема Java продемонстрировала значительные изменения, которые отразили в своем отчёте InfoQ.
Основные тенденции:
🔹 Адаптация новых версий Java: Согласно данным New Relic, Java 17 стала наиболее используемой версией, однако её доля составляет лишь 35%, с близкими показателями у Java 11 (33%) и Java 8 (29%). Интересно, что Java 21, выпущенная в 2024 году, достигла 1,4% использования, что является самым быстрым уровнем адаптации среди LTS-версий после Java 8.
🔹 Переход к OpenJDK: Доля Oracle JDK продолжает снижаться, уступая место дистрибутивам OpenJDK, таким как Eclipse Adoptium и Amazon Corretto. Хотя Oracle остаётся лидером, его преимущество сократилось до нескольких процентов.
🔹 Использование сборщиков мусора: G1 остаётся наиболее популярным сборщиком мусора, используемым более чем в 70% случаев, что обусловлено его статусом сборщика по умолчанию в версиях Java 9 и выше. Однако в однопоточных контейнерах G1 заменяется на Serial, что может приводить к переоценке его использования.
🔹 Размеры heap-памяти: Более 30% JVM используют heap размером до 1 ГБ, а ещё 27% — от 1 до 2 ГБ, отражая тенденцию к микросервисной архитектуре с меньшими объёмами памяти.
Для более детального ознакомления с этими и другими трендами рекомендуем прочитать полный отчёт InfoQ.
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы ищем участников для интервью на тему «Обучение навыкам в IT»!
Кто нам нужен?
🔹 Вы недавно (в последние 6 месяцев) проходили курсы по техническим специальностям или математике.
🔹 Вы разработчик, стремящийся освоить Data Science или Machine Learning.
Что вас ждет?
Участие в интервью по Zoom, которое займет не больше 45 минут.
1500 рублей на карту за ваше время.
Уникальный шанс пообщаться с нашим CEO.
Как откликнуться?
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
👔💼 Как ответить на собеседовании, почему вы уволились с прошлого места работы: 9 вариантов ответа
А также примеры того, как говорить точно не надо 🌚
👉Читать
А также примеры того, как говорить точно не надо 🌚
👉Читать
JMH — это фреймворк от команды разработчиков JVM (Oracle), который помогает создавать и запускать микробенчмарки для измерения производительности Java-кода. Если вы хотите точно понять, насколько быстро работает ваш код (например, сравнить эффективность разных алгоритмов или подходов), JMH — ваш незаменимый помощник.
— Точные измерения:
JMH учитывает влияние JIT-компиляции, прогрева JVM и других факторов, которые могут искажать результаты.
— Простота использования:
Написание бенчмарков интуитивно, и вы сразу видите, что влияет на производительность.
— Гибкость настройки:
Вы можете задавать параметры для тестов, такие как число итераций, потоков, warm-up период и другие.
— Добавьте зависимость JMH в ваш проект:
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.38</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.38</version>
</dependency>
или
implementation 'org.openjdk.jmh:jmh-core:1.38'
annotationProcessor 'org.openjdk.jmh:jmh-generator-annprocess:1.38'
— Создайте бенчмарк-класс:
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@State(Scope.Thread)
public class MyBenchmark {
@Benchmark
public int testMethod() {
return calculate(1000);
}
private int calculate(int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += i;
}
return sum;
}
}
— Запустите тесты:
Используйте mvn package или gradle build, чтобы собрать проект, и запустите JMH-тесты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
Что внутри:
• 9 уровней, где сложность растёт по экспоненте.
• Полезное: отличная возможность поднять скилл SQL.
• Для новичков: на платформе есть 33 урока, чтобы подтянуть теорию перед игрой.
Готовы к челленджу?
#тренажер
Please open Telegram to view this post
VIEW IN TELEGRAM
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
👉Переводчик и автор оригинальных статей
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Представьте, вы попали на собеседование мечты. Всё идёт гладко, но пара неудачных фраз могут свести на нет все ваши старания. Например, если вы слишком скромны или, наоборот, перегибаете с самоуверенностью, это может вызвать недоверие. Или фраза, которая должна показать вашу гибкость, внезапно делает акцент на недостатке опыта. Знакомо?
Есть проверенные подходы, которые помогут избежать таких ситуаций, выстроить грамотное общение и оставить положительное впечатление. Готовы узнать больше? 🌟
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 — Maven
🎉 — Gradle
👍 — Использую оба, в зависимости от проекта
👾 — Другой инструмент, напишу в комментах
😁 — Я ЗОЖ, у меня нет зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Java разработчик
Офис (Саранск), Инфомаксимум
Подробнее
▪️ Java разработчик
Гибрид (Москва), ВБЦ
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java разработчик
Гибрид (Ижевск) / Удалёнка, Ardecs
Подробнее
▪️ Java разработчик
Гибрид (Москва) / Удалёнка, FINTECH SERVICE
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Java разработчик
Удалёнка, Бэнкс Софт Системс
Подробнее
▪️ Java разработчик
Удалёнка / Гибрид (Москва), S8.Capital
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
Вакансии Java разработчиков уровня Junior
▪️ Java разработчик
Офис (Саранск), Инфомаксимум
Подробнее
▪️ Java разработчик
Гибрид (Москва), ВБЦ
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Java разработчик
Гибрид (Ижевск) / Удалёнка, Ardecs
Подробнее
▪️ Java разработчик
Гибрид (Москва) / Удалёнка, FINTECH SERVICE
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Java разработчик
Удалёнка, Бэнкс Софт Системс
Подробнее
▪️ Java разработчик
Удалёнка / Гибрид (Москва), S8.Capital
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
saransk.hh.ru
Вакансия Java Junior Developer в Саранске, работа в компании Инфомаксимум
Зарплата: не указана. Саранск. Требуемый опыт: не требуется. Полная. Дата публикации: 08.02.2025.
— NLB (Network Load Balancer) – распределяет трафик на уровне IP. Он работает на более низком уровне и не анализирует HTTP-запросы.
— ALB (Application Load Balancer) – маршрутизирует запросы на основе HTTP-заголовков или URL. ALB предлагает более сложные правила маршрутизации. Выбор между NLB и ALB зависит от ваших потребностей. Для простых сервисов в небольших масштабах одного балансировщика нагрузки может быть достаточно.
— API Gateway – работает на уровне приложений и берет на себя задачи, такие как аутентификация, ограничение скорости запросов, кэширование и другие. Его функции отличаются от Load Balancer.
Схема иллюстрирует детали работы этих компонентов. Чаще всего Load Balancer и API Gateway используются вместе, чтобы создать масштабируемую и безопасную архитектуру для современных веб-приложений.
🔹 Два подхода к архитектуре:
— Опция A: ALB + сервисы
ALB распределяет запросы между различными сервисами. Ограничение запросов, аутентификация и другие функции реализуются на уровне сервисов. Это более гибкий подход, но требует больше работы при разработке.
— Опция B: API Gateway + сервисы
API Gateway берет на себя функции аутентификации, ограничения запросов, кэширования и других задач. Это упрощает разработку сервисов, но уменьшает гибкость по сравнению с первым вариантом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы активно используете Stream API, стоит посмотреть на библиотеку JOOλ (jOOL). Она расширяет стандартные возможности потоков, добавляя удобные методы для более гибкой обработки данных.
🔹 Что умеет:
— Операции с парами и кортежами
— Группировка с несколькими уровнями (groupBy c несколькими ключами).
— Трансформации коллекций через удобные методы (например, zip, window, cartesianProduct).
— Функции SQL-подобного стиля, позволяющие писать более декларативный и читабельный код.
JOOλ упрощает работу с потоками и делает код более лаконичным и читаемым.
Please open Telegram to view this post
VIEW IN TELEGRAM