Search
Write a publication
Pull to refresh
2
0
Богдан @blacksan

Java team lead

Send message

Когда ТЗ — враг: 7 корпоративных запросов, над которыми плачут программисты

Level of difficultyEasy
Reading time4 min
Views4.6K

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

Итак, начну с собственного реноме. Меня зовут Богдан, я работаю в одном достаточно большом отечественном финтеке вот уже 7-й год и добрую половину из них занимаю позицию Java-лида в одной из интеграционных команд. За такое (относительно) длительное время в энтерпрайзе периодически приходят требования на разработку, от которых хочется или плакать, или смеяться, а то и всё вместе. Происходит это по самым разным причинам, которые мы сегодня касаться не будем. Скажу лишь, что никого не осуждаю, не пытаюсь никого принизить и наверняка сам генерировал нечто схожее, о чем пойдет речь ниже. Также стоит учесть, что мой бэкграунд преимущественно бэкендово-интеграционный, соответственно, и кейсы будут из этой области и контекста. Ну а дальше — по кейсам, по тем 7 кейсам, когда прочитав требования, внутри что-то скукоживается от отвращения либо раздается улыбка во всё лицо — у кого как.

Немного глобального контекста: проект, вокруг которого будут описаны курьезные запросы, — интеграционная шина данных, напичканная самой разной интеграционной логикой, Java-приложение, состоящее из невообразимого количества SOAP/REST-методов, шедуллеров и всяческих очередей.

Читать далее

ОС против Kafka: битва за map-области: история одного неочевидного лимита

Level of difficultyMedium
Reading time5 min
Views2.8K

Добрый день! Меня зовут Богдан, я тимлид в одном из отечественных финтехов. Сегодня я хочу поделиться нашей историей: как нам удалось, ненарочно, зашедулить падение всех нод одного из наших кластеров Kafka.

В один из холодных февральских дней пришло сообщение от мониторинга с виртуальных машин кластера Kafka: «Свободное дисковое пространство достигло значения < 15%». Было решено исследовать, нужно ли добавлять дискового пространства или же можно потюнить настройки ретеншена данных.

Тут стоит немного вспомнить теорию. Как известно, в Kafka сообщения распределяются по партициям, а каждая партиция на брокере представлена набором сегментов. Число сегментов у партиций может быть разным — оно варьируется в зависимости от интенсивности записи и настроек размера сегмента.

Сегмент (если упростить) — это лог-файл, в который просто пишутся данные в конец. По достижении временного предела либо его размера он ротируется: создается новый сегмент, и запись идет уже в него.

Держа вышесказанное в голове, мы отправились смотреть настройки хранения сегментов в нашем кластере Kafka..

Читать далее

Исследуем лицензирование Cockroach DB до Enterprise или не случившийся хард-реверс-инжиниринг

Level of difficultyMedium
Reading time4 min
Views1.9K

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

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

Читать далее

Формирование PKCS#7 detached signature для авторизации через систему ЕСИА

Level of difficultyMedium
Reading time2 min
Views3.4K

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

Недавно появилась необходимость интеграции с авторизацией через систему ЕСИА о сути такой интеграции можно почитать например тут. Статья же про то как правильно средствами исключительно java, без всяких крипто про и прочих платных СКЗИ сформировать подпись запроса в формате PKCS#7 detached signature с использование ГОСТ сертификата и ГОСТ Р 34.10-2012 алгоритма подписи.

Не люблю читать водянистые лонг риды, а еще более не люблю их писать, по этому прошу любить и жаловать, код для использования в ваших проектах: https://github.com/BlackSan11/esia-crypto, ведь что может здесь быть более красноречиво, чем код и библиотека в централе? :)

Читать далее

Information

Rating
2,344-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
Git
SQL
Spring Boot
Nginx
CI/CD
Linux
Docker
Java
Oracle