Чего нельзя сделать в Gatling

Не так давно потратил порядочное время, чтобы подходящий инструмент для нагрузочного тестирования в рабочем проекте. Прежде мы использовали JMeter, но с ним довольно тяжело писать кастомную логику, которая иногда бывает при проведении нагрузочных тестов (приготовить данные хитрым образом и тому подобное). С этой целью я и полез в интернеты за инфой. Мы отобрали несколько вариантов и в конце концов остановились на инструменте под названием Gatling. Вот его основные фичи:

  • Умеет стрелять по мишени
  • Строит подробные отчеты
  • Рисует красивые графики
  • Легко интегрируется в сборку
  • Достаточно богатый и годный DSL (хоть и на Scala)
  • Это всё-таки код (будет преимуществом для тех, кто устал программировать на XML)

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

Read More →

[Ссылка] Знаете ли вы из чего состоит ваше приложение?

Задумывались ли вы когда-нибудь из чего состоит ваше приложение? Из каких библиотек? Видели ли вы их исходный код? Каждый раз, когда я смотрел на граф зависимостей, то понимал, что  фактически мы ничего не контролируем. Миллионы строк библиотечного кода. Что лежит во всех этих библиотеках? Нет ли там чего “интересного”? И действительно, иногда в них можно что-то найти. Чтобы подпитать своего внутреннего параноика рекомендуем к прочтению Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов

Обмен реестрами в финансовых системах

registy

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

Read More →

Пару слов о Content Discovery

Небольшая заметка о таком явлении как content discovery. В очередной раз наткнулся на такую проблему в одном из проектов и решил написать об этом. Пост будет бесполезен тем, кто в курсе как проводится аудит безопасности, но для меня, как для разработчика ПО в свое время эта штука стала откровением.

В информационной безопасности content discovery называют технику поиска скрытых ресурсов, преимущественно в web-приложениях. Впервые я столкнулся с таким явлением несколько лет назад, когда ко мне обратились знакомые и сказали, что у них стали пропадать клиенты. Это была небольшая компания, у них был отдел продаж и маленький одностраничный веб-сайт, где потенциальные клиенты оставляли свой номер телефона. Затем менеджеры отдела продаж перезванивали клиенту и совершали сделку. Так вот, с какого-то момента клиенты, пришедшие на сайт оказывались обработаны конкурентами до того, как им позвонит менеджер. Поначалу подозревали сотрудников, но затем я решил взглянуть на исходный код сайта. Выяснилось, что по урлу /clients (или что-то такое, точно не помню) без всякой аутентификации были доступны клиенты оставившие заявку за несколько часов. Этот урл дергался CRMкой и новые клиенты перекидывались в базу CRM. 

На тот момент мне было непонятно, как можно было обнаружить этот путь на сайте, ведь он нигде не фигурировал — ни в sitemap.xml, ни в robots.txt ни где либо ещё. Про content discovery  я ничего не знал, поэтому немного подумал и забил(к тому же проблема оказалась решена). Как оказалось есть способы поиска таких скрытых ресурсов. Давайте посмотрим что можно спрятать и как это можно найти.

 

Read More →

IT Эмиграция в Сингапур. Часть 2: Сложно ли переехать?

IT Эмиграция в Сингапур. Часть 2: Сложно ли переехать?

IT Эмиграция в Сингапур. Часть 1: Зачем?

Условно говоря, для Senior Developer получение работы и процесс переезда не должны вызвать серьезных затруднений. Почему именно для Senior? Потому что каждая компания имеет квоты на иностранных сотрудников. Чем больше местных трудоустроено, тем больше можно нанять иностранцев. Таким образом, многие берегут квоты для ценных специалистов. По моему опыту специалист становится ценным для компании, чтобы на него потратили квоту, будучи именно Senior’ом. Бывают и исключения, и бизнес некоторых компаний заключается в найме джуниоров и перепродаже их как Сеньоров, но я с этим не сталкивался лично.

Read More →

IT Эмиграция в Сингапур. Часть 1: Зачем?

IT Эмиграция в Сингапур. Часть 1: Зачем?

Введение

Меня зовут Сергей и я разработчик. В середине 2019 года мы всей семьей переехали в Сингапур. Мы — это я, жена и 2е детей дошкольного возраста. На мой взгляд, все истории о переезде стоит читать, представляя бэкграунд автора, чтобы соотнести его со своим опытом. 

Итак, 8 лет опыта коммерческой разработки, начинал на PHP, после того как понял что язык меня ограничивает в моих задачах, перешел на Java, и следом на Kotlin. Разрабатывал всякие и разные системы, и сложные на государство и высоконагруженные на телеком компании и на банки. Так или иначе 5 лет поработал team lead’ом. В Сингапур переехал в Thoughtworks как Senior Consultant.

Read More →

Как я попал в ThoughtWorks или образцовое интервью

Thoughtworks people

Не кажется ли вам странным то, что когда вы собираетесь поменять место работы и возникает необходимость пройти интервью, то в первую очередь вы думаете «надо подготовиться к интервью». Прорешать задачи на HackerRank, почитать Crack the coding interview, зазубрить как устроен ArrayList и чем она отличается от LinkedList. Ах да, еще сортировки спросить могут, и явно будет непрофессионально сказать, что quick sort скорее всего будет лучшим выбором.
Но постойте, вы ведь программируете 8 часов в день, решаете интересные и нетривиальные задачи, и на новом месте работы будете делать плюс-минус тоже самое. Но тем не менее, чтобы пройти интервью необходимо как-то дополнительно готовиться, даже не оттачивать ежедневные навыки, а выучить то, что вам не понадобилось ни на текущем месте работы, ни вряд ли понадобиться на следующем. На ваши возражения о том, computer science у нас в крови, и разбуди нас посреди ночи мы обязаны написать с закрытыми глазами на наволочке обход дерева в ширину даже не приходя в сознание, я отвечу, что если я буду устраиваться в цирк, и моим главным трюком будет именно это — то пожалуй да, я согласен. Нужно этот навык проверить.

Read More →

Скрипты и песочницы в JVM

Довольно распространенная ситуация, когда приложение требует кастомизации, но это невозможно выполнить одними только настройками, а модификация исходного кода затруднительна или же отсутствует возможность обновления с необходимой частотой. Примером такой проблемы может быть, к примеру, вычисление комиссии по сложным правилам или же формирование кастомного запроса в биллинг на основе профиля абонента и тому подобное. В этом случае можно воспользоваться Java Scripting API (JSR-223) и выразить логику через изменяемые в рантайме скрипты. Более того, при наличии вменяемого DSL или API, полномочия изменения и настройки скриптов можно переложить на админов, аналитиков и тд. В этом посте мы бы хотели рассказать об эволюции одного приложения, которое активно использует скриптинг в своей работе — с чего начинали и к чему это привело. 

 

Read More →

Интеграция с внешними сервисами

external service communication

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

Все программные интерфейсы можно разделить на 2 категории — публичные и не такие публичные. К первым относятся API крупных сервисов, таких как Facebook, Twitter и тд. Как правило они удобные, надежные и проработанные. Вторые — это API мелких или средних организаций, сервисов налоговых органов, иногда даже платежных систем и внутренних приложений больших компаний. В данной статье мы собрали советы как интегрироваться с внешними системами и не утратить при этом психическое здоровье.

 

Read More →

Back to top