+
Все потоки
Поиск
Написать публикацию
Обновить
171.74

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Как не сойти с ума? IT рынок переполнен

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров11K

Сегодня я хотел бы поделиться опытом поиска работы Java-разработчиком в РФ.

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

Итак, я обычный парень без каких-либо связей. После 9-го класса пошёл в техникум, закончил его на «отлично», затем отдал год службы в армии. После армии, как и у многих, у меня не было возможности учиться очно, поэтому я поступил на заочное отделение в институт. Пошёл работать: перепробовал множество профессий — фильтровал пиво, работал на складах Wildberries, в горячем цеху сети «Сицилия». Всё это время, на протяжении 2–3 лет после армии, я стремился стать разработчиком.

Как и многие ребята, которые не знают, с чего начать, я изучал всё подряд, неструктурированно: то Python, то JS. Потом взял перерыв, потому что потерял веру.

В конце 2023 года я вернулся в IT в попытках найти возможность стать разработчиком. Тогда я прошёл курсы на SQL Academy (понял, что без SQL в бэкенде никуда), кое-как одолел их за 1–2 недели. Потом мне выпал шанс пройти стажировку в ЦФТ. Я успешно прошёл все этапы, и меня взяли на позицию инженера по сопровождению. Там я плотнее познакомился с SQL, начал делать запросы разной сложности в PL/SQL Developer. Затем я понял, что эта позиция мне не симпатизирует и это не тот опыт, который я хотел получить.

В начале мая 2024 года я решил, что надо плотно начать изучать какой-нибудь язык программирования, и остановился на Java. Купил себе книги.

Читать далее

Новости

Java vs Golang для крупных проектов с сложной бизнес-логикой

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров990

Неоднократно встречал мнение, что Golang не слишком хорош для сложной бизнес-логики на больших проектах. Я попробовал найти комментарии в сети по теме сложностей с реализацией бизнес-логики на Golang, составил из них список и попросил ИИ проверить их на актуальность. Решение сделать из этого отдельную статью возникло в результате спонтанной переписки по данной теме. Для большей объективности дополнительно проведено сравнение с Java. Кроме этого замечу, что, безусловно, оба языка достойны для того, чтобы их использовали в разработке современных сложных программных систем, что, собственно, уже было доказано временем. Статья в целом носит информационный характер и побуждает скорее к более глубокому изучению современных языков программирования, чем дает законченные ответы.

Читать далее

Сокращение времени на написание автотестов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров331

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

Привет, Хабр. Меня зовут Антон Нечаев. Я ведущий инженер обеспечения качества в MedTech-компании №1 в России — СберЗдоровье. В этой статье я расскажу, какие бывают нюансы при написании автотестов и как мы их решали, а также о том, как ускорили работу с тестами с помощью собственного плагина для IntelliJ IDEA.

Читать далее

Виртуальные потоки в Java: эволюция, практика, подводные камни

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.2K

Привет! Меня зовут Денис, я руковожу группой R&D в Naumen Service Management Platform. В этой статье — разбор виртуальных потоков (VT) в Java: почему исторически обычные потоки упирались в I/O, как и зачем появились виртуальные потоки, что пошло не так в Java 21, что исправили в JDK 24–25, а также когда виртуальные потоки необходимы, а когда — лучше от них отказаться.

Читать далее

Дорожная карта Java backend-разработчика: c Junior до Middle

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.3K

Привет! Меня зовут Бромбин Андрей. За последние годы у меня накопилось достаточно материалов, практик и ошибок — иногда красивых, но всё же ошибок. Этого хватило, чтобы собрать маршрут до грейда Middle.

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

Признаться, честно: тут и для меня нашлось, что подтянуть.

Выстроить маршрут

Много спрашиваю и откладываю встречи на последний момент: мой опыт прохождения собеседований

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров716

Любое собеседование — это стресс, особенно если ты джун без опыта в небольшом городе. Никто не застрахован от неудачных интервью, токсичных работодателей и собственных провалов. К счастью, всё это можно пережить.

Привет! Меня зовут Ярослав, я бэкенд-разработчик в компании «Синимекс» и ревьюер на курсе «Java-разработчик» в Яндекс Практикуме. Я расскажу, как проходил первые собеседования и что помогло мне получить офферы после двух интервью из трёх.

Читать далее

Что нового в JUnit 6: ключевые изменения и улучшения

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.6K

Спустя восемь лет после JUnit 5 выходит новая версия популярного фреймворка. JUnit 6 — это не просто обновление, а переход к современной экосистеме Java и Kotlin. В новом переводе от команды Spring АйО узнаем, что новая версия требует Java 17+, унифицирует версии компонентов, удаляет deprecated API и внедряет поддержку JSpecify для строгого null-safety.

Читать далее

От запахов к стабильности: рефакторим unit-тесты на JUnit

Время на прочтение5 мин
Количество просмотров693

"Запахи" в тестах — это полезные сигналы, которые важно уметь распознавать, чтобы писать удобные и легко поддерживаемые тесты. Мы уже писали про "запахи" в E2E-тестах; сейчас же рассмотрим распространённые ошибки, которые возникают при написании модульных тестов.

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

В книге Джерарда Месароша о паттернах в xUnit есть полезные главы о «запахах тестов», и в интернете можно найти много других полезных материалов по этой теме. Нам же показалось интересным подойти к этой проблеме не со стороны теории, а со стороны практики: какие частые ошибки можно встретить в тестах, как их исправлять, и почему именно тесты нужно писать так, а не иначе?

Мы разберём всё это на примере: напишем один модульный тест на JUnit, и по ходу дела будем исправлять возникающие ошибки. Код примера доступен на GitHub.

Читать далее

В поисках идеального стека для Enterprise проектов: почему Java плюс MACH

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров1.9K

На протяжении многих лет команда Compo Soft успешно создавала eCommerce‑решения, клиентские порталы, PIM‑системы и другие решения малого и среднего бизнеса. Для этих задач было достаточно привычного стека на PHP и связанных с ним технологий. Когда в 2018 компания приняла стратегическое решение о выходе в сегмент Enterprise — встал вопрос о новом стеке. Им стала Java. В этой статье решили поделиться своим пониманием и опытом — почему сделан такой выбор, и почему PHP «не вывозит» Enterprise‑решения.

Читать далее

Java Digest #29

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.7K

Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске обозреваем Java 25. Смотрим на новые числовые типы, которые появятся в языке. Узнаем, что лучше: verify или clean install. Наблюдаем, как Spring продолжает обрастать новыми фичами. Изучаем сборщик мусора Shenandoah. В очередной раз убеждаемся, что чтение кода занимает куда больше времени, чем его написание. И еще много всего интересного. Приятного чтения 🙂

Читать двадцать девятый выпуск

Крипта без костылей, профилирование без боли, многопоточность без хаоса: Axiom JDK 25 уже в OpenIDE

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров719

Синхронно с Oracle мы выпустили Axiom JDK Pro 25 — новый долгосрочный релиз российской Java-платформы. Это LTS-версия с поддержкой до 2034 года — на год дольше, чем Oracle JDK 25. Для бизнеса это гарантия, что инфраструктура и критичные сервисы будут жить спокойно много лет. Для разработчиков — шанс сразу прыгнуть в JDK 25 и работать с новыми инструментами без страха, что их скоро «снимут с поддержки».

Под капотом — больше 2800 изменений в ядре. Мы прогоняем каждую сборку через 160 тысяч тестов на десятках аппаратных конфигураций, так что релиз выходит не «как есть», а уже готовым к российским сценариям. И важно — Axiom JDK 25 доступен в OpenIDE.

Итак, что внутри:

Читать далее

MES-система глазами тестировщика

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.2K

Привет, дорогой читатель! Я, Владимир Зиновьев, ведущий тестировщик в ИТ-команде «Северстали». Если тебя заинтересовала эта статья, то скорее всего ты такой же тестировщик, как и я, и задаёшься вопросом, как эффективно выстроить свою работу. Здесь я поделюсь долгим путём нашей команды со всеми «шишками» и успехами тестирования наших систем в большом MES-проекте. Особенно я бы порекомендовал обратить внимание на раздел с тестированием «Legacy-системы», так как там применялись довольно нестандартные и интересные подходы, по-моему мнению, конечно. Давай погружаться.

Читать далее

Amplicode – идеальное дополнение к IntelliJ IDEA Ultimate. Огромный гайд для Spring-разработчика

Время на прочтение22 мин
Количество просмотров8.2K

Все уже прекрасно понимают, что Amplicode — неотъемлемая часть тулинга для разработки в OpenIDE, IntelliJ IDEA Community Edition и GigaIDE на Spring Boot. Но стоит установить Amplicode в IntelliJ IDEA Ultimate и ваша, казалось бы, идеальная IDE станет ещё мощнее и удобнее.

Читать далее

Ближайшие события

Байткод инструментация методов в Java: когда семплирования уже мало

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.4K

Семплирующие профили не показывают реальное число вызовов и их длительность — а значит, мимо может пролетать важная боль. В новом переводе от команды Spring АйО на примерах показано, как включить инструментальную трассировку в async-profiler и что даёт новая фича latency: от ловли неожиданного System.gc() и источников OutOfMemoryError до точного замера «долгих» вызовов с порогом и разбором в JMC через JFR-события. 

Разбираем накладные расходы, хитрости вроде interval, практичные кейсы (почему ArrayList.contains и AbstractSet.removeAll могут внезапно стать O(N*M) и как это починить), а ещё сравниваем подход async-profiler с нововведениями в рамках JDK 25 (JEP 520), где последний имеет ряд недостатков.

Если вам нужны точные пути выполнения и реальная latency без убийства продакшена — это must-read.

Читать далее

Масштабируемость под нагрузкой: как 400 RPS раскрывают потенциал B2B системы

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров863

В этой статье мы подробно рассмотрим одно из нагрузочных тестирований портала Compo B2B, проведенное совместно с компанией Лига Цифрой Экономики. Мы опишем какие инструменты и методики использовались, с какими проблемами столкнулись, как правильно интерпретировать результаты тестирования и почему даже небольшая нагрузка тесно связана с масштабированием.

Читать далее

Состояние HTTP-клиентов в Spring

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров1.8K

В новом переводе от команды Spring АйО команда Spring делает важное объявление — RestTemplate уходит в прошлое. С выходом Spring Framework 7.0 разработчики официально заявляют о плане поэтапного прекращения поддержки одного из самых популярных HTTP-клиентов в экосистеме. Его место занимает RestClient, современный fluent-клиент с расширенными возможностями: API-версионирование, гибкая конфигурация конвертеров, группы HTTP-интерфейсов и новый тестовый клиент RestTestClient.

Кроме того, в Spring Boot 4.0 появятся отдельные стартеры для каждого типа клиента, а RestClient теперь можно удобно переиспользовать с уже существующей инфраструктурой RestTemplate.

Читать далее

Разбираемся с Feature Toggle на примере Unleash

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.4K

Привет, хабр! Меня зовут Егор, я бэкенд разработчик в команде ЦФА в Альфа-Банке. 

Сейчас мы рассматриваем возможность внедрения фича-тоглов в наш проект и проводим исследование уже существующих решений. В рамках него мне удалось глубоко познакомиться с Unleash — самой популярной платформой для фича-тоглов на данный момент.

В статье пробежимся по основным понятиям и сущностям в Unleash, разберем примеры кода на Java и также с помощью метрик проверим, работает ли это на самом деле.

В конце будет ссылка на демо-проект, в котором можно одной командой поднять все окружение и поэкспериментировать с настройками Unleash.

Читать далее

Как Netflix сделал главную страницу по-настоящему динамичной с помощью GraphQL и триггеров

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров5.7K

Когда вы открываете Netflix, кажется, что всё уже готово — но на самом деле под капотом разворачивается сложная архитектура, которая адаптирует главную страницу в реальном времени. Команда Netflix перешла от статичной генерации страниц к умной системе, основанной на GraphQL-мутaциях, клиентской нормализации кэша и триггерах обновлений. Благодаря этому подходу, пользовательский опыт становится глубоко персонализированным, отзывчивым и масштабируемым.

В новом переводе от команды Spring АйО подробно рассказывается, как устроен API, как работают обновления, и почему Netflix выбрал именно мутации вместо подписок или обычных запросов.

Читать далее

Kotlin QA: как перейти с Java и писать тесты в 2 раза быстрее

Время на прочтение5 мин
Количество просмотров4.6K

С момента официального объявления Kotlin как предпочтительного языка для Android‑разработки в 2017 году язык стремительно завоевал популярность не только в мобильной сфере, но и в автоматизации тестирования.

Многие команды QA-инженеров сталкиваются с выбором: остаться на привычном Java‑стеке или перейти на Kotlin. В этой статье мы рассмотрим некоторые ключевые различия, преимущества и практические аспекты перехода на Kotlin в контексте автоматизации тестирования.

Читать далее

Тестирование процессов: как подружить Camunda и Cucumber

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров1.5K

Всем привет! Меня зовут Елена Пилюгина, я ведущий разработчик отдела автоматизации бизнес процессов складской логистики в Magnit Tech.

В этой статье я расскажу про свой опыт покрытия тестами процессов в приложении на Spring Boot с Camunda 7. Покажу, как можно создать конструктор для тестирования процессов, варианты тестирования процессов в динамике и статике, поделюсь конкретными примерами кода, покажу преимущества BDD тестирования. Конечно, в рамках одной статьи невозможно охватить все технические аспекты, но я постараюсь показать выбранный мной подход к тестированию. Также буду рада, если заодно получится показать, что создание тестов может быть увлекательным и творческим процессом.

Читать далее
1
23 ...

Вклад авторов

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载