Pull to refresh
0
0
avvensis @avvensis

Разработчик

Send message

Разносим по полочкам этапы тестирования http запросов в Spring

Level of difficultyEasy
Reading time7 min
Views6.1K

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

Речь пойдет об использовании методологии Arrange-Act-Assert применительно к интеграционным тестам на Spring Framework с использованием мокирования (mock) HTTP-запросов к внешним ресурсам, к которым идет обращение по ходу выполнения тестируемого кода в рамках поведения системы. Предлагаемые к рассмотрению тесты написаны с использованием Spock Framework на языке Groovy (см. недавнюю статью по этой теме: Тестируем Spring Boot приложения через Spock Framework). В качестве механизма мокирования будет использоваться MockRestServiceServer. Будет пару слов и о WireMock.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments5

Рождение, жизнь и смерть европейской пчелы

Reading time16 min
Views18K

Она не помнит тот момент, когда смогла увидеть мир в красках, ибо, скорее всего, она родилась такой же беззащитной, безглазой, и безногой гусеницей, как и её покойные ныне сёстры-принцессы, вылупившиеся из яиц в улье дупла старого дерева, примерно в третий день своего развития. Яйца с ними были отложены в ячейки специальных сот (маточников) матушкой-королевой, ныне тоже уже покойной.

Читать далее
Total votes 54: ↑52 and ↓2+64
Comments48

Домашняя приточная вентиляция малыми средствами

Reading time14 min
Views65K

Последнюю пару лет я живу с приточной вентиляцией в городской квартире — и очень рад этому факту.

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

Коротко о главном:
• наружное расположение компонентов ради минимального уровня шума;
• минимум ручного труда в изготовлении и монтаже;
• общий ценник существенно ниже 50 тысяч рублей (ниже 30 тысяч — на момент изготовления два года назад).

И важное. Если вы — адепт систем рекуперации, долгих инженерных расчётов и полугода проектирования, эта статья не для вас. Я — адепт золотой середины между «я сделяль» и «я задолбался».

Читать далее
Total votes 117: ↑115 and ↓2+148
Comments157

Spring Modulith: достигли ли мы зрелости модульности

Reading time6 min
Views6.6K

Одной из основных причин разработки микросервисов является то, что они обеспечивают четкие границы модулей

Однако минусы микросервисов настолько огромны, что это все равно, что отрубить себе правую руку, чтобы научиться писать левой; есть более управляемые (и менее болезненные!) способы достижения того же результата.

Даже с тех пор, как началось повальное увлечение микросервисами, возобладали некоторые более хладнокровные. В частности, Оливер Дротбом, разработчик среды Spring, долгое время был сторонником альтернативы moduliths. Идея состоит в том, чтобы сохранить монолит, но спроектировать его вокруг модулей.

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments13

Правильное подключение к БД: почему, зачем и как

Reading time5 min
Views16K


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


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


Статья рассчитана на начинающих и всех, кто интересуется этой темой.

Читать дальше →
Total votes 16: ↑15 and ↓1+16
Comments18

Запуск автотестов Cypress в Docker контейнерах с использованием различных Docker образов

Level of difficultyEasy
Reading time15 min
Views6.2K

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

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

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

Надеюсь, что статья будет полезна для понимания основ использования контейнеризации в тестировании с помощью Cypress.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments10

Путь Героя: осмысленное изменение своей реальности

Level of difficultyMedium
Reading time6 min
Views8.9K

Эта статья о том, как можно:

- изменить жизнь к лучшему и начать жить осознанно;

- построить персональную систему целеполагания;

- преодолеть любые трудности, принимая вызовы и формируя намерение.

А поможет нам в этом Коучинг, Кайдзен и PersonalKanban. Наблюдательные читатели смогут также найти отголоски ImpactMapping, Ikigai, FlightLevels, и даже OKR, но это не точно 😉

Читать далее
Total votes 13: ↑7 and ↓6+5
Comments5

Такая она, жизнь в Кремниевой долине

Reading time8 min
Views6.5K

Всего три года, и можно наконец-то накопить на ту 3-комнатную квартиру

Ты встаёшь в 6:30, приняв накануне снотворное, чтобы заснуть. Пятница. Вчерашний вечер в Розвуде был очень насыщенным: нужно было съездить в Мадеру и посмотреть, есть ли хоть доля правды в давних слухах о Кремниевой долине. Ты разочарован, но по крайней мере увидел в баре нескольких управляющих крупными венчурными фирмами. Они заметили тебя? Удалось установить с ними зрительный контакт? Стоп. Ты напоминаешь себе: они никакие не знаменитости и известны лишь в радиусе 15 миль среди читателей TechCrunch.

Текст на выходной
Total votes 21: ↑7 and ↓14-4
Comments10

12 важнейших сайтов для освоения CSS в 2023 году

Level of difficultyEasy
Reading time6 min
Views34K

Хотите войти в веб-разработку, но не знаете, с чего начать? Освоение CSS станет отличным стартом и, к счастью для вас, в сети существует огромное количество учебных ресурсов.
Мы провели исследование и собрали 12 наиболее актуальных сайтов, которые помогут вам продвинуться от уровня новичка до профессионала по CSS за кратчайшие сроки.

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

Так что пристегните ремни и приступайте к написанию кода!
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments5

Недорогие механические клавиатуры: 5 вариантов, на которые стоит обратить внимание в 2023 году

Reading time4 min
Views40K

MSI Vigor GK50

Механические клавиатуры нравятся многим. При этом некоторые представители этого направления — настоящие произведения искусства, которые стоят весьма немало. Но есть и более-менее бюджетные варианты, которые и работают отлично, и стоят не очень много. Вот на них как раз и предлагаю обратить внимание.
Читать дальше →
Total votes 40: ↑38 and ↓2+52
Comments85

Spring Security и архитектура наследования ролей в не плоской модели

Level of difficultyMedium
Reading time18 min
Views15K

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

Как увязать все эти детали в коде и при этом не превратить продукт в большую кучу грязи? В рамках этой статьи я расскажу вам:

1. Как реализовать наследование ролей в Java?

2. Как протестировать полученную иерархию?

3. Как применить решение в рамках Spring Security?

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments5

7 интересных API на JavaScript для создания веб-сайтов, о которых вы (скорее всего) не знали

Level of difficultyEasy
Reading time3 min
Views25K

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

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

Давайте взглянем на некоторые полезные веб-API, которые могут помочь вам поднять ваш сайт до небес! (ну или около того)

Читать далее
Total votes 31: ↑29 and ↓2+31
Comments6

Введение Open Policy Agent (OPA)

Reading time12 min
Views14K

Что такое OPA?


Это проект, стартовавший в 2016 году, направленный на унификацию применения политик в различных технологиях и системах. Сегодня OPA используется гигантскими игроками в технологической индустрии. Например, Netflix использует OPA для управления доступом к своим внутренним ресурсам API. Chef использует его для предоставления возможностей IAM в своих продуктах для конечных пользователей. Кроме того, многие другие компании, такие как Cloudflare, Pinterest и другие, используют OPA для обеспечения соблюдения политик на своих платформах (например, кластеры Kubernetes). В настоящее время OPA является частью CNCF в качестве инкубационного проекта.

Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments0

Список ненужных задач в Планировщике заданий Windows

Reading time7 min
Views29K
Автоматическая установка операционных систем семейства Windows требует от системного администратора тщательной проработки всех этапов выполнения. Давно интересуюсь данной темой, однако, в ходе многолетнего опыта по созданию собственных настроенных и обновлённых сборок Windows мной был упущен аспект работы с Планировщиком заданий. Разработчики Windows закладывают задачи, выполняемые в будущем по-расписанию, но ненужные и порой вредные «рядовому» пользователю. Список этих задач предлагаю к рассмотрению и обсуждению в данной статье.
Читать дальше →
Total votes 32: ↑12 and ↓20-4
Comments133

Как сделать карту цен в Excel без макросов и VBA

Reading time10 min
Views13K

Считается, что Data Mining — это магическое снадобье из SQL, Python, Power BI и других волшебных компонент. Мало кто знает, что при правильном подходе с Data Mining может совладать офисный планктон с помощью одного лишь Excel.

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

Если вы владеете специальными инструментами для работы с данными, то будет интересно узнать ваше мнение о решениях без "рокет сайнс" (как о явлении в целом, так и о данном кейсе).

Читать далее
Total votes 21: ↑20 and ↓1+23
Comments19

Claim-based авторизация на PL/pgSQL

Reading time20 min
Views2.3K

Статья о создании супергибкой системы проверки прав к ресурсам на основе клэймов и политик. В свое время был вдохновлен реализацией Claims‑based authorization in ASP.NET Core, но нужно было на Node.js (а теоретически на любую платформу, где используется PostgreSQL). Поэтому решил написать функцию проверки прав на PL/pgSQL. Если интересно, го.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments1

Репликации в PostgreSQL

Reading time6 min
Views49K

Сейчас трудно себе представить «боевую» инсталляцию любой серьезной СУБД в виде единственного инстанса. Конечно, некоторые приложения требуют для своей работы использование локальных баз данных, но если мы говорим о сетевом многопользовательском режиме работы, то здесь использование только одной инсталляции это очень плохая идея.

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

Да и исправный бэкап есть не всегда, но об этом мы уже говорили в предыдущей статье.

Читать далее
Total votes 13: ↑10 and ↓3+8
Comments16

Искусство типизации: TypeScript Utility Types

Reading time4 min
Views60K

Что вы чувствуете от познания нового? За себя скажу, что в такие моменты просветления меня переполняет неподдельная детская радость от свершившегося открытия. Жаль, что этих моментов становится всё меньше. К чему я это? Когда мне в голову мне пришла мысль о написании статьи на эту тему, я сразу вспомнил то ощущение прозрения, которое испытал в момент открытия Utility Types. Всё сразу встало на свои места, и я понял какого кусочка пазла мне всё это время не хватало. Именно о нём я расскажу далее.

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments2
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity