Обратились ребята, довольно известный массовый сервис, расшаривает информацию между микросервисами, при этом на их серверах как-то проскакивают пакеты с информацией о кредитках и приватных данных с госуслуг, и они сильно нервничают, опасаясь утечек, за это сейчас здорово влетает.
Ну, для того, чтобы некоторую пользовательскую информацию можно было технически скрывать, очевидно, она должна быть в проекте эксплицитной, формально описанной, чтобы существовали ясные способы что-то с ней делать. Но быстро выяснилось, что соответствующие структуры данных непосредственно в их проекте, на их основном языке программирования, отсутствовали. Они фактически были написаны на IDL (интерфейсный язык для описания обмена сообщениями между серверами).
Это грубейшая архитектурная ошибка, и я встречаю её регулярно.
Структуры данных, определяемые на языках вроде IDL и его расширения OpenAPI, или в конфигурационных файлах -- это формат сериализации.
Но формат сериализации не имеет никакого отношения к модели данных проекта.
Такие языки создавались для других целей (понижение связанности, в частности), а главное, что когда вы используете сериализационные форматы для представления своих данных, вы наносите своему проекту два тяжёлых удара, от которых он вряд ли оправится :) и которые разберём с курсантами на формате higher work (бывший hard work).
Кстати, я давно уже выкладывал в СильныхИдеях мощный материал на эту тему "Смысл и моделирование данных в проекте", сейчас ещё пару занятий в higher work по нему добавлю.
Post #641
981
- 🔥 18
- 👍 2
- 👏 2