Онлайн-сессия вопросов и ответов по фреймворку автотестирования Kaspersso

В прошлом году наши эксперты, занимающиеся автотестами под Android, объединились с коллегами из других компаний и создали фреймворк для автотестирования Kaspresso. В сентябре они представили его на «Хабре» (пост, в котором они объясняют, что сделали и зачем). За полгода существования Kaspresso воспользовались тысячи людей, и у многих возникали те или …

[Из песочницы] Консольная утилита на Kotlin/Java с помощью библиотеки args4j

Привет, Habr! Я учусь на программиста в Питерском Политехе. Одно из моих заданий в курсовой работе было написание консольной утилиты. Решил поделиться своим небольшим опытом. Для начала представлю вам саму формулировку задания, которое мне необходимо было выполнить: Реализовать сжатие RLE (run-length encoding). Продумать алгоритм сжатия и формат файла, при котором …

Не сравнивайте OLTP с OLAP, специализированное с универсальным, а QuestDB с PostgreSQL

Очень часто за свой 15летний опыт работы разработчиком ПО и тимлидом я сталкиваюсь с одним и тем же. Программирование превращается в религию — редко кто пытается внедрять технологии на основе разумного выбора, аргументированно, с учетом ограничений, возможностей переносимости, оценки степени привязки к вендору, реальной цены, перспектив технологии и свободы лицензий. …

Apache Kafka для чайников

Данная статья будет полезной тем, кто только начал знакомиться с микросервисной архитектурой и с сервисом Apache Kafka. Материал не претендует на подробный туториал, но поможет быстро начать работу с данной технологией. Я расскажу о том, как установить и настроить Kafka на Windows 10. Также мы создадим проект, используя Intellij IDEA …

Реализация консенсус-алгоритма RAFT для распределенного K-V хранилища на Java

И снова здравствуйте. Несколько дней назад началось обучение в новой группе по курсу «Архитектор ПО», а сегодня мы хотели бы поделиться статьей, которую написал один из студентов курса — Плешаков Антон (руководитель направления разработки в компании «Программная логистика» и co-founder в Clusterra). В настоящее время распределенные микросервисные системы стали фактически …

Чиним сериализацию объектов в Kotlin раз и навсегда

Недавно я наткнулся на статью о проблеме c Java-сериализацией объектов в Kotlin. Автор предложил решать её добавлением метода readResolve к каждому объекту, который наследуется от java.io.Serializable. Этот способ выглядит абсолютно правильным, однако его поддержка может оказаться слишком проблематичной. С учетом того, что в нашем проекте эта проблема возникала только при …

Что нужно знать об устройстве коллекций, основанных на хешировании

Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсе «Архитектор ПО». Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для блога OTUS на хабре и сегодняшнюю статью хочу посвятить запуску нового потока курса …

[Из песочницы] Валидация XML с помощью XSD, JAXB и Spring Framework

Обзор Здравствуйте! В этой статье я хочу описать программу валидации XML с помощью Spring Framework. Наиболее очевидная область применения такой валидации — это программирование web-сервисов. Валидация производится через преобразование XML-Java (unmarshalling) по соответствующей XSD-схеме. XML-файл считается прошедшим проверку, если преобразование XML в объект Java прошло успешно. Проект компилируется в jar …

Нативная компиляция в Quarkus – почему это важно

Всем привет! С вами второй пост из нашей серии по Quarkus – сегодня поговорим о нативной компиляции. Quarkus – это Java-стек, заточенный под Kubernetes. И хотя здесь, конечно, многое еще предстоит сделать, мы хорошо проработали массу аспектов, включая оптимизацию JVM и целого ряда фреймворков. Одной из особенностей Quarkus, вызвавшей повышенный …

[Из песочницы] Java простое веб-приложения. Логин и регистрация

Всем доброго времени суток. Эта статья рассчитана для новичков в мире Web и Java. Мы рассмотрим стандартную архитектуру веб-приложения и сделаем небольшой проект с нуля. Будем использовать Spring (Огромный фреймворк для веба), но по минимуму. Если не иметь предыдущего опыта использования и сразу пытаться использовать весь функционал, то не будет …

[Из песочницы] Многопоточная сортировка с использованием пула потоков на Java

В данном посте будет рассказано, как реализовать сортировку на Java c использованием ExecutorService. Общая суть сортировки в следующем: Массив разбивается на части Каждая часть массива сортируется Идем по упорядоченным массивам, сливаем их в один Здесь применяются идеи сортировки слиянием, но массив разбивается только на две части (рекурсия не используется). Для …

Java-чемпион или Java-лузер: тест для разработчиков

Плох тот солдат, что не мечтает быть генералом, и плох тот разработчик, который не стремится стать Java-чемпионом. Если ты чувствуешь себя в многопоточности как рыба в воде, а на структурах классов и Collections API давно собаку съел — добро пожаловать в наш тест. Покажи, на что ты способен from Java …

Поиск анаграмм и сабанаграмм во всех словах языка

Решение задач с анаграммами натолкнуло на мысль: Сколько останется слов, если удалить все анаграммы и сабанграммы из словаря русского языка В найденном словаре больше 1,5 млн слов в различных формах Можно сравнить каждое слово с каждым, но для 1,5 млн записей это долго и неоптимально. В мире с бесконечной памятью …

[Из песочницы] Как создать мультиагентную транспортную модель

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

[Перевод] OOMkiller в Docker сложнее, чем вы думаете

Снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили перевод еще одного небольшого материала. Недавно у одного из пользователей Plumbr APM возникла странная проблема с аварийной остановкой docker-контейнера с кодом 137. Конфигурация была простейшая с несколькими вложенными контейнерами и виртуальными машинами, похожая на матрешку: свой железный сервер с Ubuntu; множество …

[Из песочницы] Императивный подход к реактивным данным на примере Jetbrains KTor и R2DBC

Статья об использовании реактивного доступа к базам данных из корутин. Spring все упрощает, но это плохо сказывается на понимании реальных процессов работы приложения. Для демонстрации был выбран фреймворк KTor (просто потому, что мне нравится смотреть на то, что делает JetBrains), который интенсивно использует корутины — чтобы задача сочетания Reactive Streams …

[Из песочницы] Что не так с коллекциями в Java и почему Guava не поможет

Вступление Название поста действительно «холиварное», но на мой взгляд и у Java, и у популярной библиотеки Guava есть ряд архитектурных проблем, которые в перспективе приводят к двусмысленностям и разногласиям в команде. Читать дальше → from Java – Объектно-ориентированный язык программирования https://ift.tt/33IzYb0

Selenoid — сотни параллельных UI-тестов легко и быстро. Павел Сенин

Предлагаю ознакомиться с расшифровкой доклада 2017 года Павла Сенина "Selenoid — сотни параллельных UI-тестов легко и быстро" Читать дальше → from Java – Объектно-ориентированный язык программирования https://ift.tt/3bk63sc

[Перевод] Spring — эффективный роутинг

Виктор Васнецов, Рыцарь на распутье; fatcatart.com Привет, Хабр! Здесь краткий пересказ интересной баги c GitHub. Для воспроизведения см. проект spring-flux-callstack. Не так давно я заметил, что при ошибках приложения, стектрейс иногда довольно длинный. И в нем повторялось по многу раз один и тот же набор строк (сам стектрейс под катом): …

RBK.money выпустила первый в мире open-source платежный процессинг — творим будущее вместе

Привет! Если вы читали наши предыдущие посты (читали же?), то точно помните, что мы в RBK.money очень сильно за опенсорс. Настолько, что выложили в открытый доступ наш антифрод в виде открытых исходников под лицензией Apache 2.0. Как вы понимаете, нам понравилось. Одного антифрода нам показалось мало, поэтому мы взяли и …