TGViewer
Channel Public Channel
Чашечка Java

Чашечка Java

@a_cup_of_java

Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Subscribers
8.35K
Photos
3.9K
Videos
13
Links
6.4K

Showing posts older than #6271 · Back to latest

Older Posts 20 shown
Post #6270 1.65K
Автоматизация интеграционных и приемочных тестов с помощь 1001 велосипеда

Современное приложение на Java с использованием Spring Boot, включающее множество клиентов (веб, десктоп, мобильные), может столкнуться с проблемами в тестировании по мере его роста. Даже при хорошем покрытии тестами (80%+), увеличение объема интеграционных и приемочных тестов может привести к значительным задержкам в процессе разработки. Тесты могут занимать до 24 часов для выполнения, что снижает эффективность и увеличивает риск багов в продакшене. Не знаю кто сказал, но вполне четко описывает процесс разработки

Что делать

... кроме написания резюме в поисках более интересно проекта?

Пробуем понять, где в авто тестах тормоза. И понимаем что все интеграционные и приемочные зависят либо от скорости тестера, либо от скорости отклика клиента во время авто-тестов. И то и то в сотни и тысячи раз медленнее вашего апи.

После анализа ситуации остается одно: как-то все это автоматизировать, причем быстро и дешево.

Ускорить тестировщика, без незаконных препаратов, мы не можем, как и сделать UI который будет работать без задержек, на скорости api (но можно постараться, но дорого...).

Основные шаги для решения:


Читать: https://habr.com/ru/articles/832270/?utm_campaign=832270

@a_cup_of_java | Другие наши каналы
Post #6269 1.54K
Создание масштабируемых приложений при помощи Kafka и реактивного программирования Mahi Mullapudi




Введение

В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для распределённой потоковой обработки событий, особенно, если сочетать её с реактивным программированием. В данной статье будет рассказано, как создавать реактивные приложения при помощи этого инструментария.

Читать: https://habr.com/ru/companies/piter/articles/831772/?utm_campaign=831772

@a_cup_of_java | Другие наши каналы
  • 👍 3
  • 😁 2
Post #6268 1.46K
Использование алгоритма бинарного поиска для нахождения квадратного корня числа на Java

Наткнулась на leetcode на задачку с нахождением квадратного корня из неотрицального числа.

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

Итак, условие задачи здесь: https://leetcode.com/problems/sqrtx/description/

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

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

Акцентирую внимание еще раз: массив должен быть отсортирован по возрастанию.

Если массив не отсортирован, то сортировка потребует минимум O(log n * n) временной сложности, что нужно учитывать.

Поэтому, если массив небольшой и неупорядоченный, то, скорее всего, лучше будет линейный поиск со сложностью O(n).

Итак, теперь вернемся к нашей задачке. Нужно найти квадратный корень из неотрицательного числа, где само число может быть любым от 0 до 231 - 1. Если корень из числа извлекается с остатком, например, корень из 8 это 2.82842…, то нужно округлить в меньшую сторону до целого, т.е. в данном случае до 2.

Начнем, по порядку, ограничив краевые случаи. Так, если х = 0, то можно сразу вернуть 0.


Читать: https://habr.com/ru/articles/832212/?utm_campaign=832212

@a_cup_of_java | Другие наши каналы
  • ❤ 1
Post #6267 1.48K
Java News Roundup: WildFly 33, Spring Cloud Data Flow, Apache TomEE, LangChain4j, Micronaut

This week's Java roundup for July 22nd, 2024 features news highlighting: the release of WildFly 33; Spring Cloud Data Flow 2.11.4; the second milestone release of Apache TomEE 10.0; LangChain4j 0.33; Micronaut 4.5.1; Eclipse Store 1.4; and an update on Jakarta EE 11.
By Michael Redlich

Read: https://www.infoq.com/news/2024/07/java-news-roundup-jul22-2024/

@a_cup_of_java | Другие наши каналы
Post #6266 1.76K
К технологической сингулярности на примере Android продукта для смартчасов

Приведенный выше кейс подтверждает принципиальную возможность успешного использования инструментов ИИ в создании ключевых артефактов софтверного проекта на всех стадиях его жизненного цикла – от ТЗ и кода до документации, что позволило прийти к высочайшей для команды скорости разработки ПО.

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

Читать: https://habr.com/ru/articles/832050/?utm_campaign=832050

@a_cup_of_java | Другие наши каналы
  • 😁 2
Post #6265 1.75K
Как синхронизировать потоки в Java

Многопоточность — это не просто возможность приложения выполнять несколько задач одновременно, это его способность делать это эффективно и безопасно. В Java многопоточность неотделима от синхронизации, ведь именно она помогает управлять состоянием разделяемых ресурсов между потоками.

Всё начинается с потребности в быстродействии и масштабируемости. C несколькими потоками можно обрабатывать больше операций одновременно.

В этой статье мы рассмотрим, как синхронизировать потоки в Java.


Читать: https://habr.com/ru/companies/otus/articles/830356/?utm_campaign=830356

@a_cup_of_java | Другие наши каналы
  • ❤ 4
  • 👏 2
Post #6264 2.06K
Как разработать онлайновый компилятор кода при помощи Java и Docker




Вы когда-нибудь задумывались, как устроены такие платформы как Codeforces и LeetCode? Как именно они компилируют и выполняют код, поступающий от множества пользователей и проверяют его в тестовых кейсах? Как определяют эффективность алгоритмов?
В этой статье мы подробно разберём, как выстроить высокоэффективную платформу для решения задач.

Исходный код к этой статье выложен на Github в этом репозитории

Читать: https://habr.com/ru/companies/piter/articles/831704/?utm_campaign=831704

@a_cup_of_java | Другие наши каналы
  • ❤ 6
  • 😁 2
  • 👍 1
Post #6263 2.09K
Работа с геометрией в JPA и Spring Boot 3

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

Так как статей на эту тему на хабре раз и обчелся, то вот держите еще одну 😁

В этой статье мы разберем, что такое геометрия, как с ней можно работать в sql и no-sql базах данных. Приступим.


Читать: https://habr.com/ru/articles/831566/?utm_campaign=831566

@a_cup_of_java | Другие наши каналы
  • 👍 1
Post #6262 1.9K
Использование алгоритма Бойера-Мура-Хорспула в Java с примером решения задачи с LeetCode

Алгоритм Хорспула используется для нахождения подстроки в строке. Например, у нас есть строка «The game is over» и подстрока «over». Алгоритм Хорспула вернет значение первого вхождения подстроки «over» в строку «The game is over», а именно 12.

Фактически, данный алгоритм является упрощенным алгоритмом Бойера-Мура, который, считается работает лучше, чем стандартный алгоритм на случайных текстах, но в худшем случае его скорость равна |needle| * |haystack| вместо 3 х |haystack|.

Тем не менее, для восприятия, на мой взгляд, он гораздо проще.

Итак, погнали.

Условие задачи с leetcode: https://leetcode.com/problems/find-the-index-of-the-first-occurrence-in-a-string/description/

Как работает алгоритм?

Строка и подстрока совмещаются по первому символу, и начинаются сравниваться от последнего символа к первому.

Для примера возьмем строку: «aabcdadbc» и подстроку «adb»

Совмещаются строки следующим образом (слева направо):


Читать: https://habr.com/ru/articles/831562/?utm_campaign=831562

@a_cup_of_java | Другие наши каналы
  • ❤ 3
  • 🔥 2
Post #6261 1.98K
Быстрый старт: Docker + SMTP + Java/Go

Не так давно у меня появилась необходимость на нескольких проектах сделать регистрацию с подтверждением email, так же хотелось минимизировать затраты и исключить лишние телодвижения, так сказать методом ctrl+c ctrl+v, без танцев с бубном. Так же нам не нужно принимать почту и прочее, просто отправка, не более

P.s. Для прожженных отцов разработки ничего нового тут не будет

Итак, поехали ;-)


Читать: https://habr.com/ru/articles/831230/?utm_campaign=831230

@a_cup_of_java | Другие наши каналы
  • 🔥 6
  • ❤ 1
  • 👍 1
Post #6260 1.99K
Разница между Веб-сервером, Сервером приложений и Контейнером сервлетов

Статья объясняет различия между веб-сервером, сервером приложений и контейнером сервлетов. Веб-сервер обслуживает статические страницы, сервер приложений выполняет динамический код, а контейнер сервлетов управляет жизненным циклом сервлетов и JSP. Примеры: Apache для веб-сервера, JBoss для сервера приложений и Tomcat для контейнера сервлетов. Подготовка к интервью по Spring

Готовитесь к интервью? Статья предлагает список вопросов по Spring Boot, Cloud, MVC и микросервисам, а также полезные курсы. Узнайте, какие аннотации использовать и как лучше подготовиться. Подпишитесь, чтобы не пропустить обновления и скидки.

Подробности: http://www.java67.com/2016/06/3-difference-between-web-server-vs-application-server-vs-servlet-container.html

#en

@a_cup_of_java | Другие наши каналы
  • 🥰 4
  • 😁 2
Post #6259 1.94K
Flyway + Spring Boot: настройка и написание миграций баз данных

Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!

В этом гайде я расскажу как подключить и настроить Flyway в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы базы данных вместе с Amplicode!


Читать: https://habr.com/ru/companies/haulmont/articles/829782/?utm_campaign=829782

@a_cup_of_java | Другие наши каналы
  • ❤ 7
  • 🎉 4
  • ⚡ 2
Post #6258 1.96K
Основные принципы проектирования микросервисов

Микросервисы — это будущее разработки ПО. Они помогают создавать масштабируемые и независимые приложения. В статье обсуждаются 10 ключевых принципов проектирования микросервисов, таких как принцип единой ответственности и слабая связанность. Ознакомьтесь с подробностями для лучшего понимания! Лучшие принципы дизайна для микросервисов

Хотите узнать, как улучшить свою разработку микросервисов? В новой статье рассматриваются ключевые принципы дизайна и их оптимальное применение на разных этапах жизненного цикла ПО. Подробные примеры из IT-индустрии помогут вам лучше понять, как использовать эти принципы для повышения продуктивности.

Подробности: http://www.java67.com/2023/09/top-10-microservices-design-principles.html

#en

@a_cup_of_java | Другие наши каналы
  • 😁 4
  • 👍 1
Post #6256 1.58K
14 конференций осени и 14 видеозаписей докладов

Вот уже много лет мы каждую осень проводим серию конференций. Но в этот раз их впервые будет целых 14. Так что найти подходящее мероприятие смогут самые разные люди — от тех, кто пишет на Go, до тех, кто работает с машинным обучением. Некоторые конференции пройдут полностью в онлайне, но у большинства будет возможность и лично прийти на площадку.

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

Вот общий список, а дальше в посте — отдельно про каждую.

— SmartData (инженерия данных)
— DotNext (.NET)
— Flow (системный и бизнес-анализ)
— PiterPy (Python)
— VideoTech (видеотехнологии)
— GoFunc (Go)
— КаргоКульт (HR-практики)
— Joker (Java)
— Heisenbug (тестирование)
— Mobius (мобильная разработка)
— SafeCode (безопасность приложений)
— DevOops (девопс)
— HolyJS (JavaScript)
— I'ML (использование ML)


Читать: https://habr.com/ru/companies/jugru/articles/830768/?utm_campaign=830768

@a_cup_of_java | Другие наши каналы
Post #6255 1.78K
Топ 5 паттернов проектирования для Spring Boot приложений

В новом переводе от команды Spring АйО вы узнаете про 5 основных паттернов проектирования, которые часто применяются в Spring Boot приложениях:

1. Singleton

2. Factory Method

3. Repository

4. Service Layer

5. Facade

Эти паттерны, несмотря на их кажущуюся простоту и широкое распространение, играют ключевую роль в улучшении чистоты, упрощении и повышении поддерживаемости вашего кода.


Читать: https://habr.com/ru/companies/spring_aio/articles/830496/?utm_campaign=830496

@a_cup_of_java | Другие наши каналы
  • 🥰 5
Post #6254 1.64K
Java News Roundup: JDK 23 in Rampdown Phase Two, Graal Development Kit, Payara Platform, JSpecify

This week's Java roundup for July 15th, 2024 features news highlighting: JDK 23 in Rampdown Phase Two: the July 2024 Payara Platform release; Graal Development Kit for Micronaut 4.5.0; GraalVM for JDK 22 Community 22.0.2; JSpecify 1.0.0, MicroProfile 7.0-RC1, Open Liberty 24.0.0.7; and the July 2024 Oracle Critical Patch Update.
By Michael Redlich

Read: https://www.infoq.com/news/2024/07/java-news-roundup-jul15-2024/

@a_cup_of_java | Другие наши каналы
  • 👍 6
Post #6253 1.74K
Рекурсия в Java с примером решения задачи с LeetCode

Рекурсивные методы в Java — это методы, которые вызывают сами себя и требуют осторожности с их обращением.

Чтобы не увидеть «StackOverflowError» на экране, нужно помнить о двух штуках: базисе и шаге рекурсии.

Базис — это условие выхода из рекурсии, а шаг — это вызов методом самого себя с измененными параметрами.

Самый частый пример, который можно встретить в интернете при попытке найти информацию о рекурсии — нахождение факториала числа. Быстренько пройдемся по нему перед рассмотрением более интересной задачки с leetCode.


Читать: https://habr.com/ru/articles/830620/?utm_campaign=830620

@a_cup_of_java | Другие наши каналы
  • ❤ 4
Post #6252 1.61K
Разбираемся с MavenGate. Настолько ли он страшен на самом деле

Привет, Хабр!

Меня зовут Михаил, я исследователь Центра научных исследований и перспективных разработок, в круг моих обязанностей входит разработка мобильных приложений Android и исследование безопасности разрабатываемых решений. Сегодня рассмотрим, так ли страшен "черт", как его малюют, или насколько страшен MavenGate на самом деле.


Читать: https://habr.com/ru/companies/infotecs_official/articles/830600/?utm_campaign=830600

@a_cup_of_java | Другие наши каналы
  • 👏 2
Post #6251 1.52K
JEP 481: Third Preview of Scoped Values API Brings Key Enhancements in JDK 23

JEP 481, Scoped Values (Third Preview), formerly known as Extent-Local Variables (Incubator), offers a third preview, with one change, to gain additional experience and feedback from one round of incubation and two rounds of preview. This feature enables the sharing of immutable data within and across threads.
By A N M Bazlur Rahman

Read: https://www.infoq.com/news/2024/07/jep-481-enhanced-scoped-values/

@a_cup_of_java | Другие наши каналы
  • 🔥 2
Post #6250 1.69K
Тестируем качественные характеристики. Как сделать сложное простым

Привет, Хабр! Меня зовут Юрий Заковряшин. Я занимаюсь разработкой ПО более 40 лет, преподаю курсы по технологиям разработки программного обеспечения и программированию на платформе Java в СПбПУ Петра Великого.

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


Читать: https://habr.com/ru/companies/beeline_cloud/articles/830560/?utm_campaign=830560

@a_cup_of_java | Другие наши каналы
  • 👍 3
  • 🎉 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →