Ты можешь бесконечно тестировать новый продукт, но какой в этом толк, если его не «пощупали» реальные пользователи.
Где-то ты удивишься, что пользователи пошли совсем не по тому флоу («маршруту»), что ты для них приготовил, а где-то могут возникнуть «технические шоколадки», которые вовсе не из какао бобов ¯\_(ツ)_/¯
История. Сделали IT-продукт, протестировали сотни раз, обкатали на пользователях из ближнего круга — всё работает.
Выкатили релиз — сломались в первый же день.
Очень долго искали причину и не могли понять, а что же не так... Прям мистика какая-то. Пользователь присылает, вроде бы, обычный текст, мы пытаемся его обработать и записать себе в базу данных, а текст напрочь ломает код обработчика и генерации файла.
Мы же сотни раз тестировали — всё работало...
После продолжительных поисков оказалось, что код ломал один невидимый символ, который называется ZWJ, что является сокращением от Zero Width Joiner — это специальный Юникод символ, который склеивает эмодзи.
Объясню, некоторые эмодзи, которые мы видим являются составными, например, чтобы собрать «семью», нужно 4 отдельных эмодзи:
🧑🧑🧒🧒 = 👱+👩+👧+👦
целующаяся пара это:
👩❤️💋👨 = 👩+❤️+💋+👨
и так далее, и вот этот плюсик между ними это и есть ZWJ.
В некоторых текстовых редакторах, копируя текст, можно удалить один из эмодзи и оставить в подвешенном состоянии этот самый символ, причём абсолютно случайно и незаметно, что и приключилось в нашем случае: человек без задней мысли скопировал свой текст, прислал нам, а наш код «вышел из чата».
Вывод: запуская продукт как можно раньше собирайте обратную связь (в широком смысле) от реальных и, главное — целевых пользователей, а не от друзей/коллег/знакомых.
Закинь друзьям | Канал Прожарка от ДГ