473просмотров
24.6%от подписчиков
24 марта 2026 г.
📷 ФотоScore: 520
📌 Почему «сеньор» может положить KYC-систему одной цифрой❓ На Хабре вышла, пожалуй, лучшая статья для инженеров в доменах Compliance, KYC и Fintech. Автор (Данил Емельянов, @MrTheFirst) поднял тему, которая кажется базовой, но на которой «срезаются» не то, что 80% кандидатов, а более 50% компаний (и далеко не самых «мелких» и «будничных»)? 🔎 Суть проблемы
Если вы храните паспорт как INTEGER, вы — потенциальный создатель багов на миллионы в вашей валюте!
Пример: Серия паспорта 0306.
База говорит: «О, это число! Зачем нам ноль впереди?»
Итог: В базе сохраняется 306.
Для системы KYC этот документ больше не существует. Человек не пройдет проверку, заявка упадет, а поддержка будет неделями искать, почему «данные не совпадают». 🤯 Феноменология комментариев: Пути «Логики»
Но самое интересное — в комментариях. Это настоящий заповедник неисповедимой логики, где люди готовы строить адронные коллайдеры из костылей, лишь бы не признать семантику данных! И тут как всегда 3 основные кагорты:
1️⃣«Экономисты на спичках»: Люди всерьез спорят о 2–4 байтах разницы между INT и CHAR, забывая, что одна ошибка в данных в домене комплаенса стоит дороже, чем все жесткие диски в серверной.
2️⃣ «Адепты фронтенд-костылей»: Советуют «доклеивать нули при выводе». Это классический путь к катастрофе: стоит любому другому сервису постучаться в БД напрямую — и он получит инвалидные данные.
3️⃣ «Свидетели производительности»: Упорно верят, что поиск по строке CHAR(4) уронит базу, хотя современные индексы на таких объемах работают идентично. 🛡 Почему это критично для Compliance & KYC?
В нашем домене данные — это не просто значения, это юридически значимые идентификаторы.
— Номера документов могут начинаться с 01-09, тут и регионы, и даты и еще много каких правил.
— Ведущие нули — норма. А кроме этого еще и форматы номеров меняются вместе с версиями документов! И тогда вместо привых [1..9] прилетает 00**
— Удаление «лишних» занков: тут +, -, —. А в итоге равенство там где его не должно быть! Золотое правило из статьи: Если вы не собираетесь складывать, вычитать или делить эти значения — это не число. Это строка. Огромное спасибо автору! Статья — чистый концентрат здравого смысла. ИМХО она должна стать обязательным чтением для любого системного аналитика и бэкендера, работающего с персональными данными! Надеюсь, что вам тоже было полезно!
💬 А какой самый интересный формат хранения данных вы встречали? Я вот timestamp в номере документа 🙂