Чашечка Java
Відкрити в Telegram
Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Показати більше8 568
Підписники
-224 години
-107 днів
-2730 день
Архів дописів
8 568
Мой путь новичка в разработке: FreeSpace — мобильное приложение для любителей космоса
Меня зовут Маша, я ученица «IT Школы Samsung». Хочу рассказать о своём проекте — мобильном приложении FreeSpace, которое объединяет новости о космосе, интерактивную карту и сообщество энтузиастов. Это не просто рассказ о коде, но и история моего пути в Android-разработке.
Читать: https://habr.com/ru/companies/samsung/articles/943884/?utm_campaign=943884
@a_cup_of_java | Другие наши каналы
8 568
Зацените как похорошели транскрибации при Войси!
Вайб-кодинг вайб-кодингом, но как же не хватает простого человеческого «расшифруй мне созвон, только качественно!!». С этим вам поможет Войси.
🤯Этот ИИ-агент может с легкостью сделать из созвона текст, подвести итоги встречи и составить саммари. Войси переводит с 54 языков на русский без всяких артефактов и составляет текст в аккуратные абзацы с выделенными тезисами.
Самое удобное, что далеко ходить не надо — всё это делается прямо в «телеге». Экономьте своё время, превращая часы в минуты.
🔥А новичкам доступны 1,5 часа бесплатной транскрибации. Забирайте: https://tprg.ru/9xQo
8 568
Когда дело не в коде: как мы ловили мистические пропажи аукционов на сетевом уровне
Привет, меня зовут Анатолий, я ведущий разработчик в ITFB Group. У нас высоконагруженный сервис аукционов. И раз в неделю, как по расписанию, раздавался панический звонок: «Опять пропали аукционы!». Мы неслись смотреть логи — а там... ничего. Ни ошибок, ни падений. Никаких пятисотых, только стабильные двухсотые. Стенды dev и prod молчали, как рыбы. Аукционы загадочным образом появлялись через некоторое время, и всё работало, пока история не повторялась снова. Это был не баг, это был призрак. Призрак в сети.
Сегодня я расскажу, как мы его поймали.
Читать: https://habr.com/ru/companies/itfb/articles/943482/?utm_campaign=943482
@a_cup_of_java | Другие наши каналы
8 568
Рынок труда тестировщиков-автоматизаторов в России (2025)
Спрос на QA-специалистов в России продолжает расти, однако конкуренция в этой нише очень высокая. Так, по данным Computerra, в числе наиболее востребованных ИТ-специалистов в 2025 году оказались именно тестировщики и специалисты по написанию автотестов. При этом работодатели всё чаще требуют от тестировщиков навыков уровня начинающего разработчика: знания бэкенда, фронтенда, работы с БД и умения писать скрипты для автотестов. В этой статье мы подробно рассмотрим актуальные языки программирования, фреймворки и инструменты в автоматизации тестирования, требования работодателей, типичные этапы собеседований, а также рекомендации по подготовке.
Читать: https://habr.com/ru/articles/943414/?utm_campaign=943414
@a_cup_of_java | Другие наши каналы
8 568
Запуск бинарных файлов из data/data на Android 10+ (Обход SELinux)
Всем привет! Как многие знают, с Android 10 (Target sdk 29) google ввели новую политику безопасности. Новая политика SELinux звучит просто: "Нельзя исполнять файлы из той директории, в которую можно записывать". Всё это очень хорошо, но многие проекты сломались (В том числе и мой). Termux из google play УМЕЕТ запускать бинарные файлы на target sdk 29+. Я решил поделится как выполнить бинарный файл из data/data/com.ваш.пакет/files на новых версиях sdk БЕЗ полного клонирования Termux и БЕЗ С/C++ части. Сам метод запуска будет именно на java. Репозиторий termux, откуда был взят способ: https://github.com/termux-play-store/termux-apps
В чём суть, любой бинарный файла который вы запускаете имеет свой контекст. Если вы запускаете через нативную директорию (data/app/и так далее) перед этим положив бинарные файлы в jniLins - контекст у такого бинарного файла будет правильным и SELinux даст разрешение на запуск (Granted), но в случае с data/data другой случай, оттуда SELinux УЖЕ ОТКАЖЕТСЯ запускать бинарный файл (Denied). Разрешил SELinux запуск или отклонил можно смотреть в logcat. Однако, в системе существует системная утилита которая может запустить бинарник, а самое главное - SELinux РАЗРЕШИТ ей запустится, так как она системная. Её имя - linker или linker64 (Зависит от разрядности, 32 бита или 64)
Запустив линкер и передав ему наш бинарный файл из data/data - SELinux разрешит ему выполнится и сразу разрешит исполнение нашего бинарного файла. Тут сразу возникает вопрос, а если бинарный файл попробует подключить so библиотеку? Ей будет отказано? Здесь тоже есть решение, существует termux-exec. Это бинарный файл, который перехватывает попытку подключения чего либо и выполняет трюк с линкером. (linker или linker64 определяет автоматически). Вы можете собрать его из исходников (https://github.com/termux-play-store/termux-exec), но лично я полностью скопировал среду (Где этот уже собранный файл идёт в usr/lib) termux, так как мне нужно было запускать OpenJDK 17 под termux.
Читать: https://habr.com/ru/articles/943188/?utm_campaign=943188
@a_cup_of_java | Другие наши каналы
8 568
Shift-Left тестирование с Testcontainers: ловим баги на ранних этапах локальными интеграционными тестами
Баги, пойманные на проде, всегда стоят слишком дорого — и времени, и нервов, и репутации. Юнит-тесты не видят проблем с реальными зависимостями, моки быстро устаревают, а интеграционные среды тормозят разработку. Выход ищут в подходе shift-left: проверять критичную бизнес-логику раньше, прямо в IDE, без ожидания CI. В этой статье разберём, как библиотека Testcontainers позволяет поднимать реальные сервисы в контейнерах, писать интеграционные тесты так же просто, как юнит-тесты, и что это даёт с точки зрения скорости и качества по метрикам DORA.
Читать: https://habr.com/ru/companies/otus/articles/943098/?utm_campaign=943098
@a_cup_of_java | Другие наши каналы
8 568
Explyt 4.1: поддержка Python и MCP, пользовательские Rules и Workflows
Привет, Хабр! Отправив детей в школы и детские сады (а кто-то из нас сам идет преподавать в ИТМО и СПбГУ), делимся первым релизом этой осени. Теперь вы можете использовать возможности ассистента в
PyCharm. С поддержкой MCPсерверов больше не нужно реализовывать отдельные интеграции для каждого инструмента. Пользовательские Rules и Workflkows помогут сделать работу агента более удобной и корректной.
Другие улучшения + поддержка OpenAI GPT-5
Читать: https://habr.com/ru/companies/explyt/articles/943132/?utm_campaign=943132
@a_cup_of_java | Другие наши каналы8 568
Почему параметр cursor_tuple_fraction не работает с JDBC драйвером PostgreSQL
Эта статья, своего рода, история фэйла. Изначально Лоренс Альбе хотел написать статью о параметре PostgreSQL cursor_tuple_fraction, но обнаружил, что про это уже писали. Тогда Лоренс подумал, что мог бы изучить влияние этого параметра на драйвер JDBC. Это привело его к невероятно долгой борьбе с библиотекой auto_explain, которая в итоге ничего не дала. Хабр полон историями успеха, почему бы не поделиться историей фэйла? Также есть пара интересных наблюдений о работе JDBC-драйвера, которые стоят вашего внимания.
Читать: https://habr.com/ru/articles/942938/?utm_campaign=942938
@a_cup_of_java | Другие наши каналы
8 568
Как развивалась наблюдаемость в Java и почему OpenTelemetry становится стандартом? В подкасте эксперт Марцин Гжейщак раскрывает важность правильной инструментализации и объясняет, как наблюдаемость помогает контролировать производительность как монолитов, так и микросервисов. Micrometer: новый взгляд на метрики и трассировку в Java
Micrometer предлагает зрелое решение для мониторинга Java-приложений с поддержкой интеграции OpenTelemetry и стандартизированной передачей контекста. Особенность — упор на бизнес-метрики и прозрачность в гетерогенной среде. Micrometer и Spring обеспечивают удобную и надёжную инструментализацию приложений, включая реактивные. Главная идея — встроенная в проект телеметрия позволяет быстро выявлять проблемы и снижать расходы на наблюдаемость без сложностей с настройкой.
Подробности: https://www.infoq.com/podcasts/observability-java-micrometer/
#en
@a_cup_of_java | Другие наши каналы
8 568
Kotlin Multiplatform: гибкость и нативная производительность для кроссплатформенной разработки.
KMP позволяет разделять бизнес-логику между iOS, Android и другими платформами, сохраняя при этом возможность создавать нативные интерфейсы. Это снижает затраты и ускоряет разработку без потери качества. Kotlin Multiplatform в действии: как McDonald’s и Philips объединяют команды и код для создания кроссплатформенных приложений. Несмотря на сложности с Bluetooth и ограниченную экосистему, KMP помогает ускорить разработку без потери производительности и нативного опыта.
Подробности: https://www.infoq.com/articles/kotlin-multiplatform-evaluation/
#en
@a_cup_of_java | Другие наши каналы
8 568
Разработка на Java без всего
Снова показываю как можно вести разработку «голыми руками» — без IDE, документации и даже интернета. На этот раз с помощью «пользовательской» Ubuntu Linux и OpenJDK.
Читать: https://habr.com/ru/articles/942674/?utm_campaign=942674
@a_cup_of_java | Другие наши каналы
8 568
Новинки Java: Groovy 5.0 и Project Leyden
Вышли Groovy 5.0 с поддержкой JDK 11–25 и Project Leyden с улучшениями старта и производительности Java. Также обновились Helidon MCP, Open Liberty, JReleaser и другие инструменты. Подробности в свежем обзоре Java-новостей.
Подробности: https://www.infoq.com/news/2025/09/java-news-roundup-aug25-2025/
#en
@a_cup_of_java | Другие наши каналы
8 568
Repost from Типичный программист
📎 Подборка из 15 статей, чтобы изучить 15 паттернов проектирования:
🔘Singleton (Одиночка) 🔘Factory Method (Фабричный метод) 🔘Abstract Factory (Абстрактная фабрика) 🔘Builder (Строитель) 🔘Adapter (Адаптер) 🔘Facade (Фасад) 🔘Decorator (Декоратор) 🔘Composite (Компоновщик) 🔘Proxy (Заместитель) 🔘Iterator (Итератор) 🔘Observer (Наблюдатель) 🔘Strategy (Стратегия) 🔘Command (Команда) 🔘State (Состояние) 🔘Template Method (Шаблонный метод)Сохраняйте и не пугайтесь их названий на русском 😁
8 568
Контрактные тесты CDC на Pact
Привет, Хабр!
Сегодня рассмотрим контрактные тесты потребитель-управляемого формата на Pact.
Consumer-Driven Contracts фиксируют минимальный набор ожиданий клиента к API сервиса. Контракт рождается из автотеста на стороне потребителя. Потом провайдер прогоняет этот контракт против своей реализации и публикует результат в Broker. Выигрыш понятный: проверяем не всё API, а только то, что использует потребитель, и фиксируем совместимость версий до выката. Это основная идея Pact и базовая модель его работы.
Сам по себе CDC закрывает разрыв между быстрыми юнитами и медленными e2e. Контракт не заменяет e2e, но даёт дешёвую гарантию «не сломаем потребителя» на каждом изменении провайдера. CDC эффективнее всего на сетях сервисов с явными границами и стабильными интеграциями.
Читать: https://habr.com/ru/companies/otus/articles/941366/?utm_campaign=941366
@a_cup_of_java | Другие наши каналы
8 568
Обратная совместимость в Java-мире
От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт.
Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.
Читать: https://habr.com/ru/companies/axiomjdk/articles/941808/?utm_campaign=941808
@a_cup_of_java | Другие наши каналы
8 568
Статистика футбольных матчей
Недавно рассказывал о многомерном анализе данных временных рядов с помощью Dimension-UI, упоминая простой и удобный интерфейс для доступа к данным, гибкость, интерактивность и другие преимущества. Пришло время проверить, как это работает на практике. В качестве полигона для анализа мы используем статистику футбольных матчей: посмотрим данные по голам, детализированные по командам, статистику по счёту, а также сравним результативность в домашних и гостевых матчах.
Читать: https://habr.com/ru/articles/942352/?utm_campaign=942352
@a_cup_of_java | Другие наши каналы
8 568
vm5277, пример компиляции для AVR
Пишем один код - собираем на разные 8 бит МК!
https://vm5277.ru- это универсальное решение для embedded-разработки, которое позволяет сократить время создания прошивки для 8 бит микроконтроллеров в разы.
Как это работает:
Пишешь код на Java подобном языке (чистое ООП, без головной боли с указателями и не читабельным кодом)
Компилятор автоматически генерирует оптимизированный ассемблерный код под выбранную платформу
Код работает поверх легковесной RTOS, написанной на ассемблере для максимальной производительности
Ассемблер-сборщик финализирует проект в бинарный файл прошивки
Читать: https://habr.com/ru/articles/942258/?utm_campaign=942258
@a_cup_of_java | Другие наши каналы
8 568
Просто о сложном: Нейросети, Графы
Просто о сложном: нейросети
Введение
В этой статье я хочу простыми словами объяснить практическое применение нейронных сетей для решения конкретных задач. Важно отметить, что мы не будем подробно разбирать, как устроены нейросети изнутри – об этом уже написано множество материалов. Вместо этого сосредоточимся на том, как применить нейросеть к конкретной задаче, как подобрать под неё данные и параметры. Мы не будем использовать готовые библиотеки машинного обучения – весь функционал реализован самостоятельно, чтобы наглядно разобраться, как можно написать нейросеть под свою задачу. Первое, с чего начнём: нейросеть имеет смысл применять только там, где действительно существуют закономерности в данных. Простой пример – домашний питомец, услышав будильник утром, с большой вероятностью понимает, что скоро получит свежую еду. Это примитивная закономерность (звук будильника → завтрак). Но бывают и очень сложные закономерности, которые не лежат на поверхности. То, что мы называем интуицией, по сути является распознаванием подобных скрытых закономерностей нашим мозгом. Итак, если в вашей задаче нет никаких паттернов или повторяющихся зависимостей, нейросеть не поможет – она просто будет гадать наугад. Если же вы предполагаете наличие закономерностей, можно попытаться их выявить с помощью обучения сети. Правда, будьте готовы к ситуации: если результат плохой, непонятно, то ли закономерностей нет, то ли вы неправильно обучили модель. В этой статье на конкретном примере мы рассмотрим весь путь: от зарождения идеи до реализации и обучения нейросети, а также разберём сложности, с которыми можно столкнуться. Примером послужит задача прогнозирования исхода спортивного события – будем пытаться угадать, выиграет ли первая команда первую четверть баскетбольного матча по ходу игры, используя нейросеть. Это своего рода модель для ставок на спорт, но сразу подчеркну: цель исключительно научная, а не научиться обыгрывать букмекеров (позже станет ясно почему).
Постановка задачи: нейросеть для ставок на спорт
Читать: https://habr.com/ru/articles/942228/?utm_campaign=942228
@a_cup_of_java | Другие наши каналы
8 568
GRPC в деле: проблемы реального сервиса
Привет, Хабр! Я Владислав Кислый, разработчик отказоустойчивых нагруженных сервисов в Т-Банке. Расскажу страшную сказку о том, как в одной компании взялись разрабатывать сервис.
В качестве протокола взаимодействия выбрали gRPC. Что из этого вышло, с какими сетевыми проблемами пришлось столкнуться и как мы их решили — читайте в статье. Описанные проблемы можно потрогать руками с помощью тестового проекта, докера и темной магии Toxiproxy, который будет портить нам жизнь.
Читать: https://habr.com/ru/companies/tbank/articles/942014/?utm_campaign=942014
@a_cup_of_java | Другие наши каналы
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
