Search
Write a publication
Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Declarative Gradle: рывок или прорыв?

Level of difficultyEasy
Reading time12 min
Views9.4K

Полгода назад команда Gradle представила новый продукт — Declarative Gradle. Команда Spring АйО, со своей стороны, провела исследование и готова поделиться результатами. 

TL;DR: технология всё ещё активно развивается, но пока что не поддерживается привычными инструментами, такими как IntelliJ IDEA. Несмотря на это, нам удалось запустить Spring Boot приложение!

Читать далее

Автоматизация тестирования бизнес-процессов через camunda

Level of difficultyMedium
Reading time15 min
Views4.9K

Всем привет! Меня зовут Ренат Дасаев и в прошлой статье Автоматизация Е2Е-тестирования сквозных БП интеграционных проектов Операционного блока было рассказано о том, как устроено e2e-автотестирование. Сегодня хочу рассказать о том, как используется camunda в автотестировании бизнес-процессов (далее БП). На практических примерах рассмотрим, что и как мы делаем в своих тестах.

Читать далее

Провести интеграционное тестирование микросервисов и выжить (несмотря на legacy)

Level of difficultyMedium
Reading time9 min
Views8.2K

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

В моем опыте был случай, когда интеграция представляла собой связку около 15 систем, каждая из которых имела свою базу данных. Все сервисы разворачивались в k8s вручную, тестовые данные были неконсистентны, интеграции между сервисами приходилось настраивать вручную самостоятельно. Ни один сервис нельзя было замокать: каждый элемент влиял на тестируемую бизнес-логику. Я просто познавала дзен, разбираясь во внутреннем устройстве систем и следуя заранее составленному тест-плану. 

Меня зовут Катя Назмеева, сейчас я тестирую бэк в Lamoda Tech. В статье я предложу стратегии для успешного проведения интеграционного тестирования микросервисов и расскажу про инструменты, которые могут облегчить этот процесс. Обсудим, как организовать все таким образом, чтобы интеграционное тестирование не создавало задержек в новых релизах — и не заставляло QA страдать.

Читать далее

7 основных способов оптимизировать кеширование в Spring Boot

Level of difficultyEasy
Reading time10 min
Views13K

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

В новом переводе от команды Spring АйО вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.

Читать далее

Обзор GigaIDE от СБЕРа | Российская IntelliJ IDEA | Поддержка Spring вместе с Amplicode

Level of difficultyEasy
Reading time8 min
Views57K

Недавно СБЕР выпустил GigaIDE — новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:

Чаще всего звучали следующие вопросы:

1. Это просто пересобранная версия IntelliJ IDEA Community Edition?
2. Если нет, что нового предлагает GigaIDE?
3. Поддерживает ли она работу с базами данных и Spring?

Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.

Читать далее

Ловушка неинтересной работы

Level of difficultyEasy
Reading time5 min
Views21K

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

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

Читать далее

Kotlin Coroutines под капотом

Reading time36 min
Views31K

Вероятнее всего у вас спрашивали на собесе «как работают корутины под капотом?», вы не долго думая выбрасывали что‑то в стиле «там под капотом стейт‑машина, она определяет какая suspend функция будет выполняться», но понимали ли вы на самом деле о чем говорили? Возможно, но если честно я плохо понимал собственные ответы на такие вопросы и даже после десятка пройденных собесов у меня не было полноценной картины как работает внутрянка этой поистине невероятной библиотеки «сладкой асинхрон

Читать далее

Профайлер памяти. Зачем он нужен и как использовать

Level of difficultyMedium
Reading time6 min
Views7.1K


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

Профайлер можно использовать не только в разработке, но и в системном администрировании, чтобы отслеживать рабочие процессы конкретных приложений, скриптов и задач.
Читать дальше →

Что скрывала от нас Скарлетт Йоханссон, или где вы можете легально не платить банку 50% взятой ипотеки

Level of difficultyEasy
Reading time7 min
Views45K

Привычный нам порядок вещей выглядит так: обычные люди идут в банки, а те их всяко‑разно обманывают. Тем приятнее, что существует на этой планете страна, где всё обстоит ровным образом наоборот: люди там могут взять в банке здоровенный кредит, а потом в полном соответствии с законом «простить» самим себе половину задолженности.

Читать далее

Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции

Level of difficultyMedium
Reading time7 min
Views4.1K

В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В предыдущей статье Михаил рассмотрел компилятор K2, а здесь сфокусировался только на процедуре миграции.

Читать далее

Как отказаться от скриншотов в тестировании

Level of difficultyEasy
Reading time7 min
Views11K

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

Часто ли вы сталкивались с ситуацией, когда тесты падали из-за того, что на скриншоте появился сторонний элемент, который выпустила другая команда? Часто ли вы сталкивались… с самыми разными причинами, из-за которых приходится сидеть и анализировать фейлы скриншотных тестов?

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

Читать далее

Творим дичь с помощью инструментов веб-разработки

Level of difficultyHard
Reading time11 min
Views14K

Или что будет если заставить очень опытного разработчика заниматься не своим делом. Думаю после этой статьи термин «overqualified» заиграет для вас новыми красками.

Читать далее

Jaxb (XJC) генерация классов из XML Schema (XSD) с описаниями классов и полей в виде аннотаций. XJC плагин

Reading time5 min
Views41K

Думаю многие Java-разработчики которые хоть раз сталкивались с Web-сервисами, использовали генерацию Java DTO классов по описанию XML Schema (XSD). Jaxb с этим справляется на ура, не важно как его использовать, через xjc или wsimport вызов из командной строки, maven или gradle плагины.


Так быстро и просто сгенерировать классы из XSD схемы. Но вот одна проблема — практически полностью пропадают описания, имевшиеся в исходной схеме!


Практически, потому что Javadoc описание будет только у самого класса, в фиксированном формате (где не разделить описание и фрагмент XML без регулярок скажем), описание полей (филдов) отсутствуют полностью. А если вам они, как мне, нужны ещё и во время выполнения (runtime) — тут совсем беда.


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

Читать дальше →

Почему я больше не делаю важные дела: и еще 3 правила как не потерять себя к 40 годам

Level of difficultyEasy
Reading time8 min
Views152K

До 30 лет кажется, что ты еще успеваешь завоевать мир. Кое-кто и вправду успевает. Но вскоре у многих появляются дети, а поясница с желудком потихоньку выходят из игры. Тогда-то и начинаешь понимать – жизнь чертовски быстро заканчивается. В этой статье поговорим о том, как не просрать ее окончательно.

Читать далее

Почти все, что вы хотели бы знать про Docker

Level of difficultyEasy
Reading time11 min
Views77K

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

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

Читать далее

То ли дом, то ли лаборатория: как устроен умный дом профессионала

Level of difficultyEasy
Reading time18 min
Views21K

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

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

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

Интересно? Ныряйте под кат

Читать далее

Ковариантность и контравариантность в тензорном исчислении

Level of difficultyMedium
Reading time57 min
Views15K

Записки «чайника», травмированного тензорным исчислением

Тема, заявленная в названии, пожалуй, самая запутанная в тензорном исчислении. Высокоучёные авторы мудрых книг в большинстве случаев ограничиваются только формальными определениями понятий ко- и контравариантности, не опускаясь до подробного пояснения их геометрической и физической сути. Похоже, в этом вопросе они сознательно или бессознательно воспроизводят ситуацию, характерную для квантовой физики: «Не старайтесь понять, просто считайте!». Но если в квантовой физике подобный подход безальтернативен, то в данном случае – вряд ли.

Подзаголовок даже комплиментарен для меня, поскольку в своём восприятии математики я даже не «чайник», а, скорее, «валенок». По этой причине мне очень хорошо понятны проблемы «чайников», с которыми они сталкиваются в попытках постичь математические абстракции. Поэтому материал предназначен не для «продвинутых», они и без меня разберутся, а для… В общем, для таких же, как я, «задвинутых» в математике (только в ней!). При этом предполагается хотя бы «шапочное» знакомство с тензорным исчислением.

Математика остаётся непонятной для многих потому, что нам её объясняют люди, которые понимают её на интуитивном уровне, или, выражаясь более изящно, «на уровне интуитивных образов» [1-7 ≡ Л.1, с. 7]. Нам же, нематематикам, для того, чтобы что-то понять, надо это «что-то» увидеть не в абстрактном («интуитивном»), а в реальном, физически представимом пространстве (по-научному это – «визуализация») или, ещё лучше, поковырять его пальцем (научный термин пока еще не придумали. Открыт приём предложений).

Читать далее

Методика «Eat that frog», принцип Парето и матрица Эйзенхауэра: инструменты для управления приоритетами и временем

Reading time9 min
Views21K

Привет, Хабр! Меня зовут Яна, я pre-sale инженер в Selectel. У каждого человека есть свои профессиональные особенности, но не каждому удается грамотно их использовать. Чтобы определить и прокачать сильные стороны, существует способы самоуправления. В тексте начнем с самых азов — с расстановки приоритетов. Поделюсь тремя инструментами, которые помогут вам достичь поставленные цели, но не перейти в достигаторство.
Читать дальше →

16 полезных привычек IT-специалиста — рассказывают разработчики, QA и аналитики

Level of difficultyEasy
Reading time5 min
Views12K

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

TL;DR

На работе:

1. Учиться с желанием и вне зависимости от возраста, позиции, опыта.
2. Сначала всегда пытаться найти ответ/решение самостоятельно, потом обязательно обращаться к коллегам, начальству. 
3. Ставить себя на место пользователя продукта, который вы делаете.
4. Подмечать проблемы и говорить о них с коллегами и начальством, особенно, если есть решение.
5. Извлекать опыт как из положительных, так и отрицательных ситуаций.
6. Делиться своими знаниями и опытом с другими.
7. Вставать пораньше, чтобы сделать какую-то работу для души (это может быть подработка или контент для блога, например).
8. Делать сложные задачи в начале дня («глотать лягушек» до обеда).
9. Плотно работать в часы своей продуктивности.
10. Записывать всё — задачи, идеи, планы, не пытаться удержать в памяти. 

Глобально:

1. Поддерживать баланс между работой и личной жизнью, чтобы не выгореть.
2. Высыпаться и вообще регулярно качественно отдыхать.
3. Максимально делегировать в быту то, что можно. 
4. В течение дня выделять время на физическую активность (прогулка, спорт, танцы), чтобы дать мозгу расслабиться. 
5. Читать книги, слушать аудиокниги и музыку, чтобы переключиться и отдохнуть.
6. Путешествовать, жить в разных местах, знакомиться с другими людьми, объектами, концепциями, чтобы создавать новые нейронные связи.

Читать далее

Кратко про класс CompletableFuture в Java

Level of difficultyEasy
Reading time5 min
Views16K

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

Асинхронное программирование уже давно является полноценной частью Java. С появлением Java 8 и введением класса CompletableFuture, асинхронное программирование стало более доступным.

CompletableFuture — это класс в пакете java.util.concurrent, предоставляющий возможности для асинхронного программирования. Он поддерживает выполнение задач в фоновом режиме, цепочки задач, обработку исключений и многое другое.

Читать далее

Information

Rating
Does not participate
Registered
Activity