{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Виталий Филатов",
    "_rss_description": "Меня зовут Виталий Филатов. Я коммерческий писатель, помогаю бизнесу рассказывать о себе и продукте. Пишу и редактирую статьи, инструкции, текст сайтов и интерфейсов. Люблю работать в команде с дизайнерами и разработчиками.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/vitalyfilatov.ru\/",
    "feed_url": "https:\/\/vitalyfilatov.ru\/rss\/",
    "icon": "https:\/\/vitalyfilatov.ru\/user\/userpic@2x.jpg?1613163987",
    "author": {
        "name": "Виталий Филатов",
        "url": "https:\/\/vitalyfilatov.ru\/",
        "avatar": "https:\/\/vitalyfilatov.ru\/user\/userpic@2x.jpg?1613163987"
    },
    "items": [
        {
            "id": "104",
            "url": "https:\/\/vitalyfilatov.ru\/all\/status-model\/",
            "title": "Упрощаем набор статусов статьи",
            "content_html": "<p>Ещё один частный случай с высокими абстракциями. На этот раз на примере статусов статьи в админке Помощи ВТБ Бизнеса <a href=\"https:\/\/vitalyfilatov.ru\/all\/vtb-help\/\">из прошлой статьи<\/a>.<\/p>\n<p>TLDR. Сперва модель статусов отражала серверную логику, отчего жизненный цикл статьи выглядел сложно. Мы вынесли один из статусов в параметр, и стало попроще, но не всем понравилось.<\/p>\n<h2>Контекст и задача<\/h2>\n<p>На тот момент из-за особенностей архитектуры продукта статьи Помощи считались частью кода и обновлялись с общим релизом. Просто так править статьи было нельзя. Все изменения собирались в админке, ждали ближайшего релиза и синхронизировались с версией Помощи на проде.<\/p>\n<p>Из-за привязки к общему релизу статусы в админке отражали не только текущее состояние, но и будущие изменения. Кроме того, у опубликованных статей можно было управлять видимостью, что создавало дополнительные статусы.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/092-complex-model@2x.png\" width=\"2000\" height=\"820\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Статусная модель статьи в админке. Если не сохранять изменения, статья возвращается в предыдущее состояние. Статью нельзя стразу опубликовать скрытой, но почему — уже не помню<\/div>\n<\/div>\n<p>Мне доверили придумать краткие и ясные названия статусам, чтобы пользователь меньше путался. Но я сам запутался и решил, что для начала хорошо бы упростить саму модель.<\/p>\n<h2>Немного теории<\/h2>\n<p>Статусная модель описывает жизненный цикл сущностей, с которыми работает пользователь: заказы, посылки, статьи. Модель объясняет, в каких состояниях объекты могут находиться и по каким правилам переходят из одного в другое.<\/p>\n<p>Редакторам статусная модель интересна тем, что в ней пересекаются миры разработчиков и пользователей.<\/p>\n<p><b>Для разработчика<\/b> статусная модель — это модель жизненного цикла объекта данных, она показывает логику работы программы. За прямоугольниками на схеме разработчик видит программный код, схемы баз данных и текст запросов к ним.<\/p>\n<p><b>Для пользователя<\/b> статусная модель — важная часть ментальной модели продукта. На её основе пользователь собирает у себя в голове понимание того, как работает интерфейс. Очевидно, чем логичнее для пользователя набор состояний сущности, тем проще: не нужно запоминать значения статусов и сложные схемы переходов.<\/p>\n<blockquote>\n<p>Хорошую статусную модель пользователь понимает интуитивно<\/p>\n<\/blockquote>\n<p>Чаще всего глазами пользователя на статусную модель никто не смотрит, поэтому вместе с ней в интерфейс просачивается логика программного кода. А когда пользователи начинают путаться, редактору поручают лечить проблемы в сценариях формулировками статусов и тултипами.<\/p>\n<h2>Решение<\/h2>\n<p>Я предложил сделать видимость статьи одним из параметров, как её название или ключевые слова. В этом случае мы бы переключали видимость флажком в настройках и катили изменённую статью на прод. Такой подход не сильно менял структуру баз данных, но здорово упрощал схему состояний и переходов:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/092-simple-model@2x.png\" width=\"2000\" height=\"600\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Если видимость сделать параметром, отдельные статусы для включения и выключения не понадобятся<\/div>\n<\/div>\n<p>По этой же логике можно было бы вынести в параметры и удаление, но его решили оставить отдельным статусом для удобства. Кнопка «Удалить» перемещала статью в статус «Удаляем» и заменялась на «Отменить удаление».<\/p>\n<p>В интерфейсе я предложил вынести статьи к релизу в отдельную вкладку и показывать там не статусы, а описание изменений.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/092-articles-lists@2x.png\" width=\"1000\" height=\"870\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Фрагмент условного интерфейса админки со списком публикуемых статей<\/div>\n<\/div>\n<p>Аналитику такое решение показалось непривычным и избыточным, мнения разделились. К счастью, пока мы спорили, публикацию статей удалось отвязать от релизного цикла, и набор статусов упростился сам собой.<\/p>\n",
            "date_published": "2026-05-06T17:06:57+05:00",
            "date_modified": "2026-05-08T17:56:02+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/092-complex-model@2x.png",
            "_date_published_rfc2822": "Wed, 06 May 2026 17:06:57 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "104",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/092-complex-model@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/092-simple-model@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/092-articles-lists@2x.png"
                ]
            }
        },
        {
            "id": "103",
            "url": "https:\/\/vitalyfilatov.ru\/all\/vtb-help\/",
            "title": "Редакционные процессы Помощи ВТБ Бизнеса",
            "content_html": "<p>История о том, как рерайт статей превратился в реорганизацию процессов производства.<\/p>\n<h2>Ситуация и задача<\/h2>\n<p>В 2020 году ВТБ открыл интернет-банк для малого и среднего бизнеса — ВТБ Бизнес. Он служил витриной для уже существовавших банковских продуктов, которые вели автономные команды — СУБО. Такая архитектура не предусматривала единой языковой службы, да и мода на большие редакции до банка ещё не добралась. В команде платформы уже был редактор, но он занимался в основном задачами маркетинга, а статьи для справочного раздела каждое команда-СУБО писала сама.<\/p>\n<p>Статьи публиковались <a href=\"https:\/\/db.vtb.ru\/faq\">в сервисе «Помощь»<\/a>, который вела специальная команда внутренних сервисов. Руководителя этой команды беспокоило неравномерное качество этих статей, и он решил нанять второго редактора, переписывать за бизнес-аналитиками и наводить красоту. Так в команде Помощи появился я.<\/p>\n<p>На момент моего появления работа была организована так:<\/p>\n<ol start=\"1\">\n<li>Каждое СУБО отвечало за свои статьи и никого к себе не пускало. Аналитики и юристы не умели писать пользовательские инструкции, поэтому ограничивались односложными ответами на частые вопросы, а стиль и глубина изложения сильно отличались.<\/li>\n<li>Исходники статей хранились в эксель-таблицах у каждого СУБО. Авторы сами делали иллюстрации из скриншотов на тестовом сервере и заливали в общее облако.<\/li>\n<li>Когда нужно было что-то изменить или добавить, бизнес-аналитик СУБО правил свою таблицу, выделял изменения цветом и присылал новый файл по почте команде Помощи.<\/li>\n<li>Там текст из файла вставляли в базу данных и выкатывали на прод с общим релизом.<\/li>\n<\/ol>\n<p>Процесс получался хаотичным: версии статей не отслеживали, файлы таблиц дублировались, актуальные правки терялись, картинки разных СУБО перетирали друг друга из-за совпадающих имён. Оперативно выложить что-то было невозможно из-за релизной политики, поэтому иногда статьи успевали обновиться несколько раз до релиза и окончательно всех запутать.<\/p>\n<p>Чтобы упорядочить процесс, команда Помощи написала специальную админку с визуальным редактором, где авторы смогли бы работать со статьями без посредников. Но качество от этого не росло, а править и согласовывать текст в админке было так же муторно, как и в эксель-таблицах. Так что я составил план, заручился поддержкой команды и переделал сам подход к производству.<\/p>\n<h2>Работа с материалами<\/h2>\n<p>Первым делом я убедил команду, что писать статьи и следить за структурой разделов нужно нам самим, а СУБО оставить только сбор фактуры, обновление макетов и согласование. Уже опубликованные статьи мы решили постепенно переписать по мере изменений в продуктах.<\/p>\n<p>СУБО не обрадовались потере контроля, но после нескольких согласованных статей они обычно убеждались, что редактор бережно передаёт смысл, начинали доверять и охотнее рассказывать о бизнес-логике и нюансах.<\/p>\n<p><b>Мы перенесли все статьи в гугл-доки<\/b>, а ссылки на них и служебную информацию собрали в сводной гугл-таблице. Таблица решала две задачи: хранила статьи со статусами и служила функциональным прототипом для следующих версий админки Помощи.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-pivot-table@2x.png\" width=\"1270\" height=\"640\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Сводная таблица — сердце системы контента. Там мы хранили все статьи, включая снятые с публикации, отменённые и удалённые. <a href=\"https:\/\/vitalyfilatov.ru\/pictures\/091-pivot-table-full.png\">Вся таблица в гигантском PNG<\/a>, 2 Мб<\/div>\n<\/div>\n<p>В первой версии админки не было инструментов согласования, поэтому их заменяли гугл-доки. Мы гибко настраивали доступы, вели архив версий, принимали и согласовывали правки. Особый шик давала совместная работа: на сложных согласованиях я приглашал всех следить за моим курсором в документе и правил текст прямо во время звонка, без расшаривания экрана.<\/p>\n<p>Гугл-доки помогали и в вёрстке. Я подогнал шаблон статьи максимально близко к дизайну прода и при редактировании сразу видел примерную форму абзацев и переносы строк.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-comments@2x.png\" width=\"1085\" height=\"475\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Аналитики и юристы могли комментировать исходники в любое время, я оперативно разбирал правки и публиковал обновления с ближайшим релизом<\/div>\n<\/div>\n<p><b>Далее мы убрали автогенерацию слагов<\/b> — уникальных частей в URL-адресах статей. Первоначально слаг создавался транслитерацией заголовка, но адреса получались длинными и нечитаемыми. Я предложил составлять слаги силами редактора, чтобы адреса получались понятнее, умещались в СМС и не разрывали сообщения чат-бота.<\/p>\n<blockquote>\n<p>Срок действия дополнительных опций к пакетам услуг<br \/>\n↓<br \/>\ndb.vtb.ru\/faq\/answers\/<b>srok-dejstviya-dopolnitelnyh-opcij-k-paketam-uslug<\/b><br \/>\n↓<br \/>\ndb.vtb.ru\/faq\/answers\/<b>srok-dop-optsii<\/b><\/p>\n<\/blockquote>\n<p>Уникальностью слагов отслеживали по сводной таблице и проверке на дубли в админке.<\/p>\n<p>Поскольку слаги менялись крайне редко, я включил их в имена файлов иллюстраций. Такие имена не повторялись, и по ним можно было фильтровать файлы в хранилище. Папки в облаке также назывались слагом статьи.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-tinypng@2x.png\" width=\"900\" height=\"435\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Имена файлов упрощали рутину. Например, пожав пачку картинок в тинифаере, я сразу знал, куда сохранять архив с результатом<\/div>\n<\/div>\n<p><b>Перешли со скриншотов интерфейса на макеты в Фигме<\/b>. Пришлось искать подход к дизайнерам СУБО и убеждать их обновлять макеты к релизам, но оно того стоило. Иллюстрации стали чище и консистентнее, а их исходники были всегда доступны. Но главное — мы смогли показывать все нужные состояния интерфейса, а не только те, что получалось поймать на тестовом сервере.<\/p>\n<p>Сначала я готовил иллюстрации сам, чтобы изучить нюансы и сформулировать правила. Позже собрал всё в гайд для дизайнеров, и они начали мне помогать.<\/p>\n<p><a href=\"https:\/\/docs.google.com\/document\/d\/1YHLTGUBx2fNQbhTlCX41qWwhE-xXg3MyLKh7YaOzwdA\/\">Гайд по изображениям для статей Помощи<\/a> получился наглядным: все картинки в нём собраны по требованиям гайда, чтобы читатель сразу видел образец.<\/p>\n<p><b>Создали наглядный прототип в Обсидиане<\/b>, где отслеживали структуру каталогов, связи между статьями, выпавшие иллюстрации и ссылки на файлы. Чтобы не делать это руками после каждого крупного обновления, я собрал требования, а аналитик Евгений написал скрипт на Питоне.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-obsidian@2x.png\" width=\"945\" height=\"645\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Граф опубликованных статей в Обсидиане. Красные точки — страницы категорий, оранжевые — статьи с перекрёстными ссылками, а зелёные — с файлами для скачивания<\/div>\n<\/div>\n<h2>Публикация статей<\/h2>\n<p>Админка Помощи задумывалась не для редакторов, поэтому за основу команда взяла визуальный редактор на контейнерах — как в Ноушене. Но он не умел работать в режиме исходного кода — HTML или маркдауна.<\/p>\n<p>Необходимость настраивать оформление вручную ломала мой отработанный процесс: на других проектах я целиком копировал гугл-док и прогонял текст через <a href=\"https:\/\/draizer.vitalyfilatov.ru\/\">Драйзер<\/a> — самописный скрипт на регулярках. Скрипт вырезал инлайн-стили и служебные блоки, оставляя чистый HTML. Так я мог заряжать в админку по статье в минуту.<\/p>\n<p>Менять редактор было поздно, но разработчики нашли остроумное решение: добавили переключатель, который скрывал все контейнеры и показывал поле для HTML-кода.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1020\" data-ratio=\"1.5692307692308\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-editor-nodes@2x.png\" width=\"1020\" height=\"650\" alt=\"\" \/>\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-editor-html@2x.png\" width=\"1020\" height=\"650\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Редактирование статьи в обычном и экспертном режимах. В ранних версиях админки статья называлась вопросом, так уж вышло<\/div>\n<\/div>\n<p>Мы выбрали HTML, а не в маркдаун, чтобы как можно меньше переписывать админку. Я всё равно получал готовый код из гугл-дока и сразу типографил текст своими скриптами.<\/p>\n<p>Ещё я поучаствовал в разработке админки: тестировал механики, писал текст интерфейса, подменял дизайнера, надоедал всем нормами типографики и <a href=\"https:\/\/vitalyfilatov.ru\/all\/status-model\/\">спорил с бизнес-аналитиком из-за статусной модели<\/a> :3<\/p>\n<h2>Работа с СУБО<\/h2>\n<p>Сначала в Помощи публиковались 10 команд, но позже их стало уже 35. Они постоянно что-то меняли, уследить за всем было невозможно. Поэтому мы договорились, что за актуальностью своих статей СУБО следят сами, а команда Помощи отвечает за подготовку и публикацию.<\/p>\n<p>Процесс добавления новой статьи выглядел так:<\/p>\n<ol start=\"1\">\n<li>В СУБО назначали ответственного за процесс и обновляли макеты.<\/li>\n<li>Ответственный заполнял <a href=\"https:\/\/docs.google.com\/document\/d\/10WqxwGFLtfHCAH78DxXaNGiGvqBL6hv_RuUhffYUcEM\/\">бриф на новую статью<\/a>, в котором указывал тему, полезное действие, примерный план, ссылки на макеты и документацию.<\/li>\n<li>Я принимал заявку, изучал материалы и предметную область, задавал вопросы аналитикам и дизайнерам, просил показать продукт в работе.<\/li>\n<li>Собрав всю фактуру, я писал черновик и готовил иллюстрации по макетам.<\/li>\n<li>Ответственный вычитывал и комментировал черновик, я дописывал нужное, и всё повторялось, пока статья не была готова.<\/li>\n<li>Согласованную статью я добавлял в админку, помечал готовой к публикации и закрывал задачу.<\/li>\n<\/ol>\n<p>Чтобы изменить уже опубликованную статью, ответственный просто правил копию исходника и передавал мне. А чтобы не тонуть в бюрократии, мелкие правки мы вносили без задачи в Джире, просто по переписке в мессенджере.<\/p>\n<p>Задачи шли потоком, мы постоянно что-то правили, обновляли, поддерживали порядок и готовили пачки новых статей к релизам. Отслеживать всё в Джире не получалось, поэтому я завёл редакционный дашборд в Трелло.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-trello-dashboard@2x.png\" width=\"1280\" height=\"720\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Объём задачи в карточке мог быть любым, от мелкой правки до десятка статей<\/div>\n<\/div>\n<p>Карточка с задачами типичного релиза выглядела так:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/091-trello-release@2x.png\" width=\"480\" height=\"645\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Обновляем 77 статей: добавляем новые, объединяем старые, правим опечатки, заменяем иллюстрации со старым интерфейсом<\/div>\n<\/div>\n<h2>Итоги<\/h2>\n<p>Настроив процессы, мы занялись обычной текучкой: писали новые статьи, обновляли старые, изучали обратную связь от пользователей и операторов горячей линии, следили за обращениями в поддержку и метриками сервиса.<\/p>\n<p>Наша команда занималась и другими внутренними сервисами, поэтому мы смогли включить статьи Помощи в глобальный поиск, базу знаний поддержки, чат-бота и контекстную справку в интерфейсе. Нашему руководителю Александру удалось совершить дипломатическое чудо и отвязать публикацию статей от общего релизного цикла, и мы стали обновлять статьи по мере изменений в продуктах, без очередей и предрелизной спешки.<\/p>\n<p>Но статей становилось всё больше, а задач на UX-редактуру не прибавлялось, так что я решил заняться Умным домом в МТС. А чтобы проект было легче передать, собрал материалы, записал скринкасты с основными процессами и составил <a href=\"https:\/\/vitalyfilatov.ru\/all\/vtb-faq-vacancy\/\">вакансию редактора Помощи<\/a>.<\/p>\n<p>К сожалению, вскоре в компании изменилась политика информационной безопасности, внешние облачные сервисы запретили и отбить гугл-доки не удалось. Исходники статей переехали в корпоративную вики, и процессы вновь пришлось менять.<\/p>\n<h2>Благодарности<\/h2>\n<p>Спасибо команде Помощи за понимание, поддержку и вовлечённость. Вы с готовностью вникали во все мои идеи, хоть иногда я не особо выбирал выражения. С вами я получил бесценный опыт — как быть частью команды и находить продуктивное решение.<\/p>\n<p>«Хороших выходных. И ведите себя плохо!» ©<\/p>\n",
            "date_published": "2026-03-23T11:51:11+05:00",
            "date_modified": "2026-05-06T17:22:18+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/091-pivot-table@2x.png",
            "_date_published_rfc2822": "Mon, 23 Mar 2026 11:51:11 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "103",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/jquery\/jquery.js",
                    "system\/library\/fotorama\/fotorama.css",
                    "system\/library\/fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-pivot-table@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-comments@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-tinypng@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-obsidian@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-editor-nodes@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-editor-html@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-trello-dashboard@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/091-trello-release@2x.png"
                ]
            }
        },
        {
            "id": "101",
            "url": "https:\/\/vitalyfilatov.ru\/all\/regex-notes\/",
            "title": "Делаем сноски на HTML регулярками",
            "content_html": "<p>Регулярные выражения — мощный инструмент поиска и замены фрагментов текста. Редактору полезно ими владеть, чтобы при случае не менять что-то руками, а один раз написать умный шаблон. Синтаксис регулярных выражений подробно описан в интернете, поэтому мы сразу перейдём к примеру.<\/p>\n<p><a href=\"https:\/\/vitalyfilatov.ru\/all\/ai-talks\">В статье про нейронные сети<\/a> у меня набралось десять примечаний, которые я решил оформить ссылками, как в Википедии: знак сноски в верхнем регистре со ссылкой на примечание и примечание в конце статьи со ссылкой на сноску.<\/p>\n<blockquote>\n<p>Было бы лучше, если бы примечание вплывало при наведении на знак сноски, как в Обсидиане, но Эгея не поддерживает сноски вообще. Чтобы не лезть в код движка, я делаю их на чистом HTML, без JS и прочих хитростей<\/p>\n<\/blockquote>\n<p>Текст статьи жил в Обсидиане, поэтому ссылки и сноски оформлены в маркдауне:<\/p>\n<pre class=\"e2-text-code\"><code class=\"JavaScript\">Текст со сноской[^1]\r\n...\r\n[^1]: Текст примечания на отдельной строке<\/code><\/pre><p>Эти штуки в скобочках предстояло превратить в HTML:<\/p>\n<pre class=\"e2-text-code\"><code class=\"HTML\">Текст со сноской &lt;sup&gt;&lt;a href=&quot;all\/ai-talks\/#t1&quot; name=&quot;n1&quot;&gt;[1]&lt;\/a&gt;&lt;\/sup&gt;\r\n...\r\n&lt;a name=&quot;t1&quot;&gt;&lt;\/a&gt;\r\n1. Текст примечания &lt;a href=&quot;all\/ai-talks\/#n1&quot;&gt;↩︎&lt;\/a&gt;<\/code><\/pre><p>Клик на знак сноски прокручивает страницу до тега <А> с именем «t1», а клик по стрелке — на тег <А> с именем «n1». Из-за особенностей движка в адрес ссылки «href=» приходится добавлять часть адреса страницы. Ссылка-якорь с именем примечания стоит на отдельной строке, чтобы окно браузера прокручивалось ровно до начала абзаца.<\/p>\n<p>Чтобы пройтись по всему тексту и поменять маркдаун на HTML, нужно найти повторяющиеся фрагменты и написать на их основе шаблоны поиска и замены. Фрагменты у нас такие:<\/p>\n<pre class=\"e2-text-code\"><code class=\"JavaScript\">[^n] — знак сноски в сплошном тексте\r\n[^n]: Какой-то текст — примечание на отдельной строке<\/code><\/pre><p>Начнём со строки поиска знака сноски.<\/p>\n<p>n — порядковый номер примечания, всего их десять. Значит, нам нужна регулярка, которая будет искать какое-то число от 1 до 10 в квадратных скобках c ^ в любом месте текста. Получится так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"JavaScript\">\\[\\^(\\d{1,2})\\](?!:)<\/code><\/pre><p>Квадратные скобки и ^ — служебные символы, поэтому добавляем перед ними обратный слеш. А перед d — чтобы искать не саму букву, а символ любой цифры. В фигурных скобках указываем, что ищем 1 или 2 цифры. Круглые скобки сохраняют фрагмент строки в переменную — скобочную группу. В конце идёт указание, что строка не должна заканчиваться двоеточием. Это не совсем корректно, ведь знак сноски может стоять где угодно. Но для примера нужна регулярка попроще, так что просто убедимся, что в тексте такого нет.<\/p>\n<p>Теперь напишем строку замены:<\/p>\n<pre class=\"e2-text-code\"><code class=\"HTML\">&amp;thinsp;&lt;sup&gt;&lt;a href=&quot;all\/ai-talks\/#t$1&quot; name=&quot;n$1&quot;&gt;[$1]&lt;\/a&gt;&lt;\/sup&gt;<\/code><\/pre><p>Перед знаком ставим &amp;thinsp; — HTML-код тонкого пробела, чтобы знак сноски не слеплялся со словом слева. $1 — переменная, в которой будет число из знака сноски, от 1 до 10. Единица после $ означает порядковый номер скобочной группы. В этой регулярке она одна, но для обработки примечаний нам потребуются уже две.<\/p>\n<p>Теперь скопируем текст статьи из Обсидиана в Sublime text, откроем режим поиска и замены (Ctrl + H), включим регулярные выражения (Alt + R) и выполним первый набор регулярок.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1280\" data-ratio=\"1.7777777777778\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/090-note-before@2x.png\" width=\"1280\" height=\"720\" alt=\"\" \/>\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/090-note-after@2x.png\" width=\"1280\" height=\"720\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Найденные регуляркой фрагменты выделены рамкой<\/div>\n<\/div>\n<p>Теперь сами примечания. Найдём их в тексте:<\/p>\n<pre class=\"e2-text-code\"><code class=\"JavaScript\">\\[\\^(\\d{1,2})\\]: (.+?)\\n<\/code><\/pre><p>Первую часть вы уже видели, но теперь мы не исключаем двоеточие. Потом идёт любой текст. Точка означает «любой символ, кроме переноса строки», а «+?» говорит брать символы до первого символа правее. В нашем случае это конец строки \\n.<\/p>\n<p>Напишем строку замены:<\/p>\n<pre class=\"e2-text-code\"><code class=\"HTML\">&lt;a name=&quot;t$1&quot;&gt;&lt;\/a&gt;\\n$1. $2&amp;nbsp;&lt;a href=&quot;all\/ai-talks\/#n$1&quot;&gt;↩︎&lt;\/a&gt;\\n\\n<\/code><\/pre><p>Как видите, порядковый номер сноски $1 удачно стал частью ссылок и порядковым номером примечания, а текст примечания из скобочной группы $2 вставится между номером с точкой и ссылкой на знак сноски. &amp;nbsp; — знак неразрывного пробела, чтобы стрелка не повисала на следующей строке.<\/p>\n<p>Вставим строки в редактор и выполним замену:<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1280\" data-ratio=\"1.7777777777778\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/090-text-before@2x.png\" width=\"1280\" height=\"720\" alt=\"\" \/>\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/090-text-after@2x.png\" width=\"1280\" height=\"720\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Все сноски превратились в HTML<\/div>\n<\/div>\n<p>Результат можно посмотреть в коде статьи.<\/p>\n<h2>Где и как учиться регуляркам<\/h2>\n<p><a href=\"https:\/\/learn.javascript.ru\/regular-expressions\">Регулярки в JavaScript<\/a> — приятный сайт на русском<\/p>\n<p><a href=\"https:\/\/www.regular-expressions.info\/\">Regular-Expressions.info<\/a> — сайт про регулярки на английском<\/p>\n<p><a href=\"https:\/\/regexr.com\/\">RegExr<\/a> — гибкий отладчик регулярок. Можно устанавливать разные параметры поиска (флаги), смотреть, что попадает в скобочные группы, и тестировать строку замены<\/p>\n",
            "date_published": "2025-07-18T23:14:09+05:00",
            "date_modified": "2025-07-10T00:23:50+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/090-note-before@2x.png",
            "_date_published_rfc2822": "Fri, 18 Jul 2025 23:14:09 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "101",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/jquery\/jquery.js",
                    "system\/library\/fotorama\/fotorama.css",
                    "system\/library\/fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/090-note-before@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/090-note-after@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/090-text-before@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/090-text-after@2x.png"
                ]
            }
        },
        {
            "id": "100",
            "url": "https:\/\/vitalyfilatov.ru\/all\/ai-talks\/",
            "title": "Как нейросети могут изменить работу UX-редактора",
            "content_html": "<p>Фантазирую, как нейросети повлияют на умственный труд, работу с текстом и культуру мышления в целом.<\/p>\n<p>В 2024 году мы с Никитой Чернояровым записали <a href=\"https:\/\/slozhna.redbasset.tech\/episodes\/RB66277\">подкаст про нейросети<\/a>. Получилось тяжеловато и путанно, поэтому я решил всё немного додумать и выразить более связно. Ожидаемо вышла простыня, зато у вашей умной читалки будет работа. Источники и пояснения смотрите в примечаниях с пижонскими сносками.<\/p>\n<p>Начнём с самого важного и объёмного, а там, глядишь, и до Сократа доберёмся.<\/p>\n<h2>Средний уровень мастерства снизится<\/h2>\n<p>Если кратко, то, как и любая новая непонятная технология, нейронные сети стали «новым АйТи внутри АйТи». Бизнес подхватил волну хайпа и набирает «промпт-инженеров» после курсов с ВК, а полезные знания ещё сильнее размоет рерайтами. Неопытных людей в индустрии станет больше, отчего в среднем уровень навыка просядет.<\/p>\n<p>Теперь подробнее. Мысль о падении навыков довольно избитая и спорная, поэтому я зайду издалека.<\/p>\n<blockquote>\n<p>Далее идёт вольный пересказ интернета, поэтому можно смело читать только цитаты<\/p>\n<\/blockquote>\n<p>Очевидно, что современные общедоступные нейросети на основе языковых моделей не умеют думать по-настоящему. Они не понимают смысла понятий, которыми оперируют, а знают только о силе связей между ними и угадывают следующее слово в тексте. Из-за этого у нейросетей предсказуемо плохо с суждениями о реальном мире, да и с логикой вообще&thinsp;<sup><a href=\"all\/ai-talks\/#t1\" name=\"n1\">[1]<\/a><\/sup>.<\/p>\n<p>Нейросети хороши в другом: они быстро ищут закономерности в огромных данных, чего-нибудь генерируют по аналогии или обрабатывают по заданным правилам. Нейросети научились понимать запросы на естественном языке и прилично отвечать, но всё ещё остаются автоматами — программами, которые решают описанную задачу описанным методом. Нейросети не могут творчески выходить за границы условий задачи, как человек&thinsp;<sup><a href=\"all\/ai-talks\/#t2\" name=\"n2\">[2]<\/a><\/sup>.<\/p>\n<blockquote>\n<p>Нейросети решают задачи только тем способом, которому их обучили, и не умеют учиться новым способам сами<\/p>\n<\/blockquote>\n<p>Например, нейросеть может написать научно-популярную статью по вашим тезисам. Но сделает это она исключительно на основе своей базы связей. Эта база может быть невероятно огромна, но без функции критического анализа нейросеть не сможет найти релевантные научные исследования и сделать верные выводы. Вместо этого она соберёт ворох подходящих к тезисам цитат из популярных источников и слепит студенческий реферат.<\/p>\n<p>Другой случай — описание конкретных объектов реального мира, которые нейросеть не может воспринимать напрямую и опираться на чувственный опыт. Например, описание товаров на маркетплейсах или каких-нибудь элитных квартир глазами покупателя. Без специального обучения нейросеть не догадается рассчитать время до метро по карте или <a href=\"https:\/\/vitalyfilatov.ru\/all\/sato-test\/\">превратить недостаток расположения дома в преимущество<\/a>.<\/p>\n<p>Этот длинный пассаж подводит нас к выводу:<\/p>\n<blockquote>\n<p>Нейросетям стоит поручать рутину — трудную или нудную работу, для которой они хорошо обучены<\/p>\n<\/blockquote>\n<p>Рутина хорошо нам знакома и не учит ничему новому. Если перекладывать на нейросеть творческие задачи, мы будем ограничены её возможностями и не всегда сможем проверить и улучшить результат. Но всё это не делает нейросети плохими или опасными. Проблема, как всегда, не в технологии, а в её применении.<\/p>\n<p>Бизнес подаёт чат-ботов как невероятный прорыв и <i>немного преувеличивает их эффективность<\/i> ради роста капитализации&thinsp;<sup><a href=\"all\/ai-talks\/#t3\" name=\"n3\">[3]<\/a><\/sup>. В простых задачах ChatGPT действительно обеспечивает прирост качества и скорости в моменте&thinsp;<sup><a href=\"all\/ai-talks\/#t4\" name=\"n4\">[4]<\/a><\/sup>, но в перспективе снижает количество людей, которые захотят учиться сами. Инструмент даёт быстрое решение и вознаграждение, а мозг экономит глюкозу и не мотивирует глубоко вникать.<\/p>\n<blockquote>\n<p>С умственным протезом условные джуны быстро получат приемлемый результат, но могут пропустить этап простых задач и не сформировать нужные навыки мышления&thinsp;<sup><a href=\"all\/ai-talks\/#t5\" name=\"n5\">[5]<\/a><\/sup><\/p>\n<\/blockquote>\n<p>Например, начинающие писатели часто попадают <a href=\"https:\/\/vitalyfilatov.ru\/all\/stupor\/\">в писательский блок<\/a>. Если не осознать, что он чаще всего возникает от нехватки понимания, можно просто привыкнуть по любому поводу генерировать черновик нейросетью, потому что <i>некогда, а результат ждут вчера<\/i>.<\/p>\n<p>Но если джун и захочет вникать, ему будет не до этого. Требования к джунам постоянно растут и усложняются, сегодня ни у кого нет времени раскачиваться на простых задачах — бизнесу нужен конвейер. Поэтому джуны вынуждены пользоваться любыми помогайками, чтобы не проиграть вайбкодерам.<\/p>\n<p>Важно упомянуть и промпты:<\/p>\n<blockquote>\n<p>Практика составления хитрых промптов не углубляет понимание предметной области, а развивает навык составления промптов<\/p>\n<\/blockquote>\n<p>Похожим образом регулярное прохождение тестов на IQ повышает именно навык, а не сам IQ&thinsp;<sup><a href=\"all\/ai-talks\/#t6\" name=\"n6\">[6]<\/a><\/sup>.<\/p>\n<p>Другой аспект — упрощение знаний, которое следует из особенностей производства массового контента. Смотрите выше про научно-популярную статью. Не буду нагнетать, просто попробуйте найти в статьях по UX точное определение этого самого UX&thinsp;<sup><a href=\"all\/ai-talks\/#t7\" name=\"n7\">[7]<\/a><\/sup>.<\/p>\n<blockquote>\n<p>Знания утонут в поверхностных пересказах без источников и проверки фактов, учиться станет сложнее. Особенно если генерить учебные планы нейросетью&thinsp;<sup><a href=\"all\/ai-talks\/#t8\" name=\"n8\">[8]<\/a><\/sup><\/p>\n<\/blockquote>\n<p>Но не всё так плохо. Те, кому будет интересно, прочтут нужные книги, вникнут в суть ремесла и получат преимущество. <del>Покупайте мой курс<\/del> Главное, чтобы нашлись работодатели, которым нужна экспертиза, а не тысяча итераций дизайна в неделю.<\/p>\n<h2>Специалисты останутся востребованы<\/h2>\n<p>Бизнес может заменить специалиста чат-ботом, но чат-бот специалиста не заменит. Например, вот из чего складывается моя рутина UX-редактора:<\/p>\n<ol start=\"1\">\n<li>Взять задачу, изучить постановку на языке аналитиков. Попросить их добавить ссылки на макеты и документацию;<\/li>\n<li>Выяснить, что документации нет, а все макеты у дизайнера, который в отпуске;<\/li>\n<li>Найти коллегу дизайнера, который был на проекте раньше, и через него выйти на нужный файл с макетами;<\/li>\n<li>По косвенным признакам вычислить нужные макеты среди кучи версий без статусов и дат актуальности. Попутно получить от продакта результаты UX-исследований, которые нужны в задаче;<\/li>\n<li>По макетам и инструкции в Справочном центре собрать модель процесса, увидеть в нём корнер-кейсы, уточнить их у продакта на звонке и передоговориться о сроках. Заодно убедить продакта вынести часть объяснений в инструкцию;<\/li>\n<li>Посмотреть результаты исследований, понять, что они получены по другим макетам, и перенести часть выводов на сценарий из задачи;<\/li>\n<li>Переложить продуктовый смысл на ситуацию пользователя и <i>написать текст<\/i>. Сразу в макетах, учитывая уже написанное, редполитику и словарь продукта, который сами редакторы и ведут;<\/li>\n<li>Собрать свою версию экрана из компонентов дизайн-системы и объяснить продакту, что для неё не нужно переписывать API. Заодно рассказать, почему типографика важна и её нужно делать хорошо;<\/li>\n<li>Пройти кросс-ревью у коллеги и выяснить, что у некоторых терминов из текста обнаружились новые значения. <i>Поправить текст;<\/i><\/li>\n<li>Дополнить словарь, пока не забыл. Оповестить всех, кто с ним работает по редакционному регламенту. Дописать кусочек регламента;<\/li>\n<li>Убедить юристов в том, что мы меняем их формулировки не из прихоти художника, а с чёткими целями и по методу с научной основой;<\/li>\n<li>Получить комментарии от продакта, придумать новое решение и <i>переписать текст<\/i> в макетах ещё раз.<\/li>\n<\/ol>\n<p>Конечно, всё это можно делегировать нейросети, но всё равно потребуется кто-то, кто её обучит и проследит, чтобы она не бредила в незнакомых ситуациях. А кто сможет это сделать, если сам не разбирается?<\/p>\n<p>Пользуясь случаем, просьба ко всем аналитикам, продактам и дизайнерам:<\/p>\n<blockquote>\n<p>Дорогой друг! Не пиши текст в макетах нейросеткой, это только добавит всем работы: редактор ничего не поймёт и всё равно задаст тысячу вопросов, а потом всё переделает. Пиши своими словами, что должен понять и сделать пользователь на каждом шаге сценария<\/p>\n<\/blockquote>\n<p>Обратите внимание, в списке выше собственно <i>работы с текстом<\/i> набралось три эпизода. Очевидно, один только ChatGPT мою рутину не упростит&thinsp;<sup><a href=\"all\/ai-talks\/#t9\" name=\"n9\">[9]<\/a><\/sup>. Нужен обучаемый ИИ-ассистент, понимающий контекст и умеющий интегрироваться с рабочими сервисами: вики, сервисом локализации, Джирой и Фигмой.<\/p>\n<p>В идеале такой ассистент помогал бы мне следить за логикой изложения и единообразием терминов, вовремя обновлять словари, собирать текст по макетам в коллекции формулировок и вовремя подсвечивать отклонения от редполитики и ToV. Это сэкономило бы много времени и внимания, чтобы я, наконец, занялся какой-нибудь стратегией и исследованиями.<\/p>\n<h2>Умные инструменты сделают работу интереснее<\/h2>\n<p>Античный философ Сократ был противником популяризации письменности. Он считал, что без запоминания всех нужных знаний и обучения в диалоге греческая молодёжь утратит самостоятельность суждений. Но Сократ оказался прав не во всём — письменность освободила значительные когнитивные ресурсы и помогла мыслить глубже&thinsp;<sup><a href=\"all\/ai-talks\/#t10\" name=\"n10\">[10]<\/a><\/sup>.<\/p>\n<p>Доступные и гибкие ассистенты могут помочь нам с очередным скачком в мышлении за счёт его более эффективной организации. Сначала вы просто читаете всё подряд, потом собираете библиотеку и делаете заметки, после заводите хитрую картотеку, <a href=\"https:\/\/luhmann.surge.sh\/communicating-with-slip-boxes\">как у Никласа Лумана<\/a>, а в итоге загружаете всё в ИИ-помощника и настраиваете его под свои задачи.<\/p>\n<p>Благодаря машинному анализу накопленных знаний вдумчивый человек сможет вновь стать философом — неторопливо и глубоко размышлять на стыке дисциплин и задавать креативные вопросы, выводящие мышление за рамки привычных моделей.<\/p>\n<p>Конечно, при условии, что пока появятся такие инструменты, мы не разучимся сосредотачиваться дольше 30 секунд, а на Земле не закончится электричество. Но его пока хватает, а вы дочитали до конца.<\/p>\n<h2>Примечания<\/h2>\n<p>Прошу прощения за архаичную вёрстку примечаний, но движок блога не предусматривает сноски, а дописывать его я не потяну. Поэтому переход по сноске перекидывает вас из ленты в статью.<\/p>\n<p><a name=\"t1\"><\/a><\/p>\n<ol start=\"1\">\n<li>Тут я слукавил для драматизма. Нейросети строят логические выводы, но не на суждениях, а на предсказательных способностях. Последние итерации показывают приличные результаты, и в индустрии нет единого мнения по этому вопросу. Смотрите отчёт Apple от 2025 года <a href=\"https:\/\/machinelearning.apple.com\/research\/illusion-of-thinking\">The Illusion of Thinking<\/a>. А в 2023 выходила статья Санджива Ароры и Анирудха Гояла <a href=\"https:\/\/arxiv.org\/abs\/2310.17567\">про успешный тест на генерацию осмысленного текста<\/a>. <a href=\"all\/ai-talks\/#n1\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t2\"><\/a><\/p>\n<ol start=\"2\">\n<li>Психологи считают, что творчество — это когнитивная деятельность, приводящая к новому или необычному видению проблемы или ситуации. Постоянное использование одного инструмента вырабатывает функциональную устойчивость, которая ограничивает креативность. <i>Роберт Солсо, Когнитивная психология. 8-е изд., стр. 540 и 543.<\/i> <a href=\"all\/ai-talks\/#n2\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t3\"><\/a><\/p>\n<ol start=\"3\">\n<li>Например, Сэм Альтман <a href=\"https:\/\/blog.samaltman.com\/the-gentle-singularity\">в эссе о мягкой сингулярности<\/a> говорит, что искусственный сверхразум появится совсем скоро, нужно только подождать. Как Метавселенную экстремиста Цукерберга и Марсианский экспресс Илона Маска (он условно рукопожатный). <a href=\"all\/ai-talks\/#n3\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t4\"><\/a><\/p>\n<ol start=\"4\">\n<li><a href=\"https:\/\/economics.mit.edu\/sites\/default\/files\/inline-files\/Noy_Zhang_1.pdf\">Статья в MIT Economics<\/a> от 2023 года. Результаты исследования 444 человек показывают, что ChatGPT существенно повышает среднюю производительность работников с низкими способностями. <a href=\"all\/ai-talks\/#n4\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t5\"><\/a><\/p>\n<ol start=\"5\">\n<li>В ходе практики эксперты учатся распознавать специфические паттерны и организуют знания с точки зрения общих принципов, а не поверхностных характеристик. <i>Солсо, стр. 347 и 567.<\/i> <a href=\"all\/ai-talks\/#n5\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t6\"><\/a><\/p>\n<ol start=\"6\">\n<li>У меня нет прямых подтверждений именно этого факта, но есть косвенные. Во-первых, некоторые учёные <a href=\"https:\/\/psycnet.apa.org\/record\/1926-02967-001\">не наблюдают эффект переноса<\/a>. Во-вторых, исследования карт мозга показывают, что уроки музыки не обеспечивают ребёнка более качественным мозгом. Часы практики создают мозг, более подготовленный для игры на фортепиано. <i>Ребекка Шварцлоуз, Ландшафты мозга, стр. 172.<\/i> В-третьих, исследования профи по тетрису показывают, что они хорошо крутят в уме только фигуры из тетриса. <i>Солсо, стр. 387—388.<\/i> <a href=\"all\/ai-talks\/#n6\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t7\"><\/a><\/p>\n<ol start=\"7\">\n<li>В лучшем случае вы встретите упоминание определения <a href=\"https:\/\/www.iso.org\/standard\/77520.html\">по ISO 9241-210<\/a>, но мало кто упоминает <a href=\"https:\/\/experienceresearchsociety.org\/ux\/ux-definitions\/\">коллекцию определений EXPRESSO<\/a>. Впрочем, мне встречалось мнение, что точные определения не так уж и нужны в работе. <a href=\"all\/ai-talks\/#n7\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t8\"><\/a><\/p>\n<ol start=\"8\">\n<li>Вполне вероятно, что нейросеть проигнорирует редко упоминаемые важные источники, например, <a href=\"https:\/\/www.nngroup.com\/topic\/psychology-and-ux\/\">сайт NN\/g<\/a> или <a href=\"https:\/\/bureau.ru\/soviet\/ui\/selected\/\">Советы Бюро Горбунова<\/a>. <a href=\"all\/ai-talks\/#n8\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t9\"><\/a><\/p>\n<ol start=\"9\">\n<li>Но это я. Владимир Лалош как-то <a href=\"https:\/\/ux-marafon.ru\/reports\/report?id=229\">рассказывал, что ChatGPT ему хорошо помогает<\/a>. <a href=\"all\/ai-talks\/#n9\">↩︎<\/a><\/li>\n<\/ol>\n<p><a name=\"t10\"><\/a><\/p>\n<ol start=\"10\">\n<li>Если Платон только записывал за Сократом, то Аристотель уже не мыслил себя без чтения. <i>Марианна Вульф, Бесконечная история чтения, стр. 98—100 и 104—116.<\/i> <a href=\"all\/ai-talks\/#n10\">↩︎<\/a><\/li>\n<\/ol>\n<h2>Благодарности<\/h2>\n<p>Никита Чернояров позвал меня на подкаст, задавал направление беседе и помог собрать всё в кучу.<\/p>\n<p>Юлия Ушакова помогла свежим взглядом и острым умом.<\/p>\n<p>К. Д. проверил самые важные тезисы на прочность, помог избавиться от лишнего и рассказал о нелёгкой доле современных джунов.<\/p>\n",
            "date_published": "2025-07-07T23:01:03+05:00",
            "date_modified": "2026-06-15T14:13:01+05:00",
            "_date_published_rfc2822": "Mon, 07 Jul 2025 23:01:03 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "100",
            "_e2_data": {
                "is_favourite": true,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "98",
            "url": "https:\/\/vitalyfilatov.ru\/all\/ideal-id\/",
            "title": "Кейс с совпадающими номерами",
            "content_html": "<p>История про совпадения в номерах стикеров и понимание коммуникационной задачи. И почему нельзя просто так взять и сделать <i>правильно<\/i>.<\/p>\n<p>Рабочие макеты под NDA, поэтому в этот раз только текстом.<\/p>\n<h2>Ситуация<\/h2>\n<p>Пользователю нужно подготовить поставку в пункт выдачи: пройтись по своему складу, собрать товары по списку, наклеить на них стикеры с уникальными номерами, упаковать и отвезти.<\/p>\n<p>Чтобы человеку было удобно, разработчики придумали интерактивный чек-лист с нужными товарами и номерами стикеров. Абстрактно список выглядит так:<\/p>\n<blockquote>\n<p>1245642 <b>9258<\/b><br \/>\n9008731 <b>9685<\/b><br \/>\n5748202 <b>4973<\/b><br \/>\n4505331 <b>9685<\/b><br \/>\n2356911 <b>6736<\/b><\/p>\n<\/blockquote>\n<p>Там ещё есть чекбоксы, фотки и названия товаров, но про макеты я уже говорил, просто представьте, что они там есть. Четыре последних цифры выделены — пользователям удобно по ним ориентироваться.<\/p>\n<p>Фишка в том, что эти «хвосты» в большинстве случаев уникальны, но иногда совпадают у разных номеров, как в примере выше. И это проблема: пользователь может спутать, наклеить не тот стикер, и товар не примут.<\/p>\n<p>Чтобы обратить внимание пользователя на совпадающие хвосты, команда решает подсветить их цветной плашкой и написать про это в справке к разделу. Наша задача — составить текст, не влезая в уже готовый дизайн.<\/p>\n<h2>Формальное решение<\/h2>\n<p>Сперва напишем, что просят, а потом будем рассуждать про дизайн, визуальную коммуникацию и основы когнитивной психологии.<\/p>\n<blockquote>\n<p><b>Похожие стикеры подсвечиваются<\/b><br \/>\nКогда у разных стикеров совпадают последние 4 цифры, мы выделяем их цветом. Если встретили такой, обратите внимание на его полный номер<\/p>\n<\/blockquote>\n<p>Теперь можно сформулировать <i>коммуникационную задачу<\/i> и начать думать. Задача коммуникации простая:<\/p>\n<blockquote>\n<p>Обратить внимание пользователя на разные номера с одинаковыми «хвостами» и помочь не спутать стикеры<\/p>\n<\/blockquote>\n<p>Очевидно, что в контексте задачи выделять «хвосты» цветом — плохое решение: мы привлекаем внимание к какому-то искусственному признаку, а не к важному. Как чиновники, когда подсвечивают знак пешеходного перехода вместо самого пешехода (смотри <a href=\"https:\/\/blog.tema.ru\/1823924.html\">бессмертную заметку Лебедева<\/a>).<\/p>\n<p>Мало того. Мы привлекаем внимание к общей части различающихся сущностей, что помогает мало. Перефразируя один из гештальт-принципов, можно сказать, что <i>похожие сущности воспринимаются, как связанные по смыслу<\/i>. А нам нужно сделать акцент на их различии. Для этого можно выделить различающиеся части проблемных номеров:<\/p>\n<blockquote>\n<p>1245642 <b>9258<\/b><br \/>\n<b>9008731<\/b> 9685<br \/>\n5748202 <b>4973<\/b><br \/>\n<b>4505331<\/b> 9685<br \/>\n2356911 <b>6736<\/b><\/p>\n<\/blockquote>\n<p>Выглядит так себе, но задачу решает.<\/p>\n<p>Можно оставить выделение цветом, но дополнительно его усилить каким-нибудь сигналом. Например, значком:<\/p>\n<blockquote>\n<p>9008731 <mark><b>9685<\/b><\/mark> ⚠<br \/>\n5748202 <b>4973<\/b><br \/>\n4505331 <mark><b>9685<\/b><\/mark> ⚠<\/p>\n<\/blockquote>\n<p>Спорно, конечно, но хорошее визуальное решение найдёт дизайнер, нам важнее показать общий принцип.<\/p>\n<h2>Системное решение<\/h2>\n<p>Всё по ТРИЗ: масштабно и безответственно. Изменить алгоритм генерации номера, чтобы исключить возможность путаницы. Например, генерировать номер так, чтобы в одной поставке не было одинаковых «хвостов».<\/p>\n<p>А ещё лучше — генерировать номер на основе системного ID пользователя и даты сбора поставки с исключением номеров, совпадающих в последних 4 цифрах. Если вдруг не хватит разрядности, можно увеличить длину номера или перейти на шестнадцатеричную систему счисления, где вариантов будет примерно в шесть раз больше.<\/p>\n<blockquote>\n<p>0000—9999 — 10 000 вариантов, 10 в 4 степени<br \/>\n0000—FFFF — 65 536 вариантов, 16 в 4 степени<\/p>\n<\/blockquote>\n<p>Но решение с уникальной генерацией реализуемо только в принципе. Номерами, чек-листом и печатью стикеров заведуют разные команды. У каждой — свои приоритеты, ресурсы и горящие задачи. Никто просто не сможет протащить через владельца и скоординировать такое крупное изменение. В компаниях обычно просто нет продактов, которые таким занимаются. А у имеющихся зона ответственности и интересов ограничена задачами их команды.<\/p>\n<p>Стоит добавить, что про «правильную» генерацию наверняка уже кто-то думал, но столкнулся с таким ворохом трудностей и зависимостей в реализации, который с лихвой перекрыл ожидаемую выгоду. Но мы не узнаем наверняка: на большинстве проектов не ведут <del>поисковую<\/del> документацию.<\/p>\n<p>UPD. Статье нужен какой-нибудь афористичный вывод, так что вот он: продукт нужно проектировать до того, как он начнёт приносить прибыль. Потом уже будет не до этого.<\/p>\n",
            "date_published": "2025-06-19T22:06:29+05:00",
            "date_modified": "2025-06-19T22:46:06+05:00",
            "_date_published_rfc2822": "Thu, 19 Jun 2025 22:06:29 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "98",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "97",
            "url": "https:\/\/vitalyfilatov.ru\/all\/quasi-skill\/",
            "title": "Как придумать оригинальный софт-скилл",
            "content_html": "<p>Придумывание ещё не изжёванных универсальных навыков для блогов бизнес-коучей — актуальная проблема современного интернета. В этой заметке мы разберём доступный способ решения этой задачи минимальными средствами.<\/p>\n<p>Способ похож на описанный ранее <a href=\"https:\/\/vitalyfilatov.ru\/all\/fiction\/\">в советах начинающим фантастам<\/a>, но построен на более академичном подходе и новейших открытиях когнитивной психологии.<\/p>\n<p>Сначала составим интуитивно понятный термин, смысл которого будет угадываться без точного определения. Для этого мы построим термин на сочетании известного и смутного.<\/p>\n<blockquote>\n<p>Такой подход позволит читателю ощутить удовольствие от узнавания и активизирует его центры любопытства.<\/p>\n<\/blockquote>\n<p>База термина будет существительным, означающим что-то хорошо известное. Например, мышление — понятие из психологии, с которым читатель наверняка сталкивается постоянно.<\/p>\n<p>Для второй части возьмём понятие более размытое, суть которого читатель должен улавливать смутно. Подойдёт любое относительное прилагательное, которое описывает признак предмета через его отношение к другому предмету и отвечает на вопрос «какое?»<\/p>\n<p>В нашем случае мышление может быть:<\/p>\n<ul>\n<li>аналитическим<\/li>\n<li>проактивным<\/li>\n<li>пассионарным<\/li>\n<li>левополушарным<\/li>\n<li>дидактическим<\/li>\n<li>дихотомическим<\/li>\n<li>диалектическим<\/li>\n<\/ul>\n<p>Да, каким угодно, главное — чтобы характеристика опиралась на наукообразную область. В этом случае значение термина сложится из суммы объёмов участвующих понятий и наследует признаки областей знания от своих составляющих.<\/p>\n<p>Убедитесь, что получившийся термин не совпадает с уже описанным в профильных энциклопедиях. Если такой уже есть, прибавьте ещё одно-два прилагательных, можно через дефис. Например:<\/p>\n<blockquote>\n<p>Дидактико-системное левополушарное мышление<\/p>\n<\/blockquote>\n<p>Далее попросите нейросеть объяснить суть получившегося термина и поискать упоминания входящих в него слов в научной литературе. Соберите всё вместе и попросите нейросеть переписать более связно. Не забудьте добавить изображения мозга в разрезе и каких-нибудь таблиц и диаграмм.<\/p>\n<p>Через несколько итераций у вас получится готовая статья об актуальном бизнес-навыке, которую при желании можно переупаковать в любой другой формат или расширить до книги.<\/p>\n",
            "date_published": "2025-01-15T20:34:26+05:00",
            "date_modified": "2025-01-15T21:38:07+05:00",
            "_date_published_rfc2822": "Wed, 15 Jan 2025 20:34:26 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "97",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "96",
            "url": "https:\/\/vitalyfilatov.ru\/all\/input\/",
            "title": "Поле ввода с подсказками",
            "content_html": "<p>Помогаем пользователю заполнить сложное поле и разбираемся, чем задача отличается от проблемы. Кейс свежий, детали под NDA, поэтому всё в условном дизайне и без конкретики.<\/p>\n<h2>Ситуация<\/h2>\n<p>Пользователю нужно заполнить графу с номером документа, подтверждающего качество товара. Бэк-офис проверяет документы, у товара в каталоге появляется отметка подлинности, и покупатели охотнее его берут.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/086-original@2x.png\" width=\"560\" height=\"217\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Качество товаров в России подтверждают сертификаты и декларации соответствия<\/div>\n<\/div>\n<p>Нумерация у документов ожидаемо дикая, по четыре префикса на каждый вид:<\/p>\n<blockquote>\n<p><b>ЕАЭС [N] RU [Д,С]<\/b>-XX.YYYY.A.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>РОСС RU [Д,С]<\/b>-XX.YYYY.A.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>ТС [N] RU [Д,С]<\/b>-XX.YYYY.A.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>RU [Д,С]<\/b>-XX.YYYY.A.00000<\/p>\n<\/blockquote>\n<p>У деклараций есть N и «Д» перед дефисом, у сертификатов пишем только «С». Остальные части номера тоже хитрые: сначала русские буквы и цифры, потом они же с латиницей, потом опять русская, потом только цифры.<\/p>\n<p>Пользователи ожидаемо путаются, пишут в поддержку и плохо проводят время. Нужно помочь им разобраться и правильно всё ввести. Для этого фронты придумали узнавать префикс и накладывать на поле нужную маску:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/086-mask@2x.png\" width=\"510\" height=\"116\" alt=\"\" \/>\n<\/div>\n<h2>Задача<\/h2>\n<p>Маску мы показываем, но пользователи всё ещё плохо понимают, где какие символы вводить. Когда пользователи ошибаются, форма ругается ошибками, но это не очень помогает.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/086-error@2x.png\" width=\"510\" height=\"112\" alt=\"\" \/>\n<\/div>\n<p>Нужно как-то подсветить, что часть номера может состоять как из латинских символов, так и из русских. Есть памятка во всплывающем окне, где изложен весь этот ребус. Она написана по мотивам документации, нужно переписать по-человечески:<\/p>\n<blockquote>\n<p><b>Как заполнить номер<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p><b>С или Д<\/b> — кириллические буквы. Символ принадлежности номера к сертификату\/декларации соответствия<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>ХХ<\/b> — кириллические буквы и цифры. Код страны изготовителя продукции<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>YYYY<\/b> — латинские и кириллические буквы и цифры. Код органа по сертификации, выдавшего сертификат соответствия<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>А<\/b> — только кириллические буквы. Тип объекта сертификации<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>00001<\/b> — только цифры. Порядковый номер сертификата соответствия<\/p>\n<\/blockquote>\n<p>Такое получается, потому что постановщики задач в продукте часто мыслят категориями разработки и описывают в инструкции технические требования, а не порядок действий для человека. Это нормально.<\/p>\n<h2>Решение<\/h2>\n<p><b>Формальное.<\/b> Изучим предмет и напишем памятку в понятном формате: какие бывают номера и какие буквы вводить. Про заглавные писать не будем, пусть фронты сделают перевод всех символов в верхний регистр. Остальное изложим от читателя. Заодно чуть поменяем маску, чтобы не обозначать русские буквы латинскими. Получится примерно так:<\/p>\n<blockquote>\n<p><b>Как заполнить номер<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p><b>1. Найдите номер документа<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p>У сертификата номер в Росаккредитации указан внизу листа, а у декларации в самом верху.<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>Сертификат<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p>— ЕАЭС RU С-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p>— РОСС RU С-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p>— ТС RU С-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p>— RU С-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>Декларация<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p>— ЕАЭС N RU Д-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p>— РОСС RU Д-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p>— ТС N RU Д-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p>— RU Д-ББ.YYYY.Г.00000<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>2. Начните вводить номер<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p>Введите первые символы номера, и в поле появится подсказка с его форматом. Жирным выделена общая часть для всех номеров:<\/p>\n<\/blockquote>\n<blockquote>\n<p>ЕАЭС RU С-<b>ББ.YYYY.Г.00000<\/b><\/p>\n<\/blockquote>\n<blockquote>\n<p><b>ББ<\/b> — русские буквы и цифры<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>YYYY<\/b> — цифры, русские или английские буквы<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>Г<\/b> — русская буква<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>00000<\/b> — только цифры<\/p>\n<\/blockquote>\n<p>Понятно, что изначальную проблему памятка не решает и нужно идти дальше. Хорошо бы не только написать в мире читателя, но и разобраться, где именно у него возникает проблема, и работать с ней по месту.<\/p>\n<p><b>Полное.<\/b> Очевидно, проблемы у пользователя возникают в момент ввода номера, а потому отрывать его от ввода и показывать памятку бессмысленно. Её нужно открыть, прочитать и запомнить, а потом ещё и применить. Поэтому стоит просто подсказывать нужное по мере ввода. Вот примерно так:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/086-result@2x.png\" width=\"560\" height=\"582\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Маску можно распознать по первому символу: все четыре вида уникальны, а тип документа мы уже знаем<\/div>\n<\/div>\n<p>Можно ограничивать ввод по позиции курсора, но это сложнее в реализации и не факт, что сильно удобнее. Поэтому ограничимся подсказками и за кадром проработаем ошибки.<\/p>\n<p>На этом стоило бы и закончить, но у нас есть ещё два решения.<\/p>\n<p><b>Избыточное.<\/b> Можно вместо маски показывать набор полей для каждой части номера. Выглядит серьёзно, но на деле только сделает дороже разработку и поддержку. Ещё это усложнит обработку при вставке из буфера обмена, а пользователи чаще всего копируют номер документа, а не набирают его руками. Вот так не нужно:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/086-toomuch@2x.png\" width=\"475\" height=\"87\" alt=\"\" \/>\n<\/div>\n<p><b>Идеальное.<\/b> Сделать так, чтобы человеку вообще ничего не надо было вводить. Пусть номер считывает камера телефона и распознаёт нейросеть. Пока это возможно лишь технически, но когда-нибудь наша цивилизация покорит космос, и такие вещи станут ожидаемой нормой.<\/p>\n<h2>Выводы<\/h2>\n<p>Формальную часть решения у нас точно примут — она не противоречит условиям задачи и ситуации в команде продукта. А вот полное, скорее всего, завернут или добавят частями в конец бэклога. Решение нужно ещё вчера, есть задачи важнее, а разработчики и так вывихнули мозги, пока вкрячивали подстановку маски в типовое поле ввода, которое это не предусматривало.<\/p>\n<p>Тем не менее задачи стоит решать полностью, чтобы <s>собирать портфолио<\/s> постепенно убеждать окружающих в пользе UX-специалистов. А заодно подкреплять идею, что пользовательские проблемы решаются не только редактурой текста, но и организацией смысла вообще.<\/p>\n",
            "date_published": "2024-10-24T11:23:04+05:00",
            "date_modified": "2024-10-24T13:17:21+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/086-original@2x.png",
            "_date_published_rfc2822": "Thu, 24 Oct 2024 11:23:04 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "96",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/086-original@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/086-mask@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/086-error@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/086-result@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/086-toomuch@2x.png"
                ]
            }
        },
        {
            "id": "95",
            "url": "https:\/\/vitalyfilatov.ru\/all\/book-of-melentor\/",
            "title": "Продолжение истории про эльфа и его друзей",
            "content_html": "<p>В далёком уже 2021 году мы с художником-иллюстратором Ulv Vind печатали самодельную книжку «Заметки беспечного путешественника». В блоге был <a href=\"https:\/\/vitalyfilatov.ru\/all\/melentor\/\">рассказ про неё<\/a>.<\/p>\n<blockquote>\n<p>UPD. Ноябрь 2024<br \/>\nСайт книги <a href=\"https:\/\/mel.vitalyfilatov.ru\/\">mel.vitalyfilatov.ru<\/a><br \/>\n<a href=\"https:\/\/boosty.to\/melentor\">Бусти с книгой и дополнительными материалами<\/a><\/p>\n<\/blockquote>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/055-book-pack.jpg\" width=\"1200\" height=\"858\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Так выглядел тираж версии 2021 года<\/div>\n<\/div>\n<p>Тираж мы распродали и думали заняться чем-нибудь другим, но читатели просили продолжение. Так что мы собрались, дописали-дорисовали книжку до полноценной повести с добротным эпилогом. А теперь предлагаем вам её почитать.<\/p>\n<h2>О чём книга<\/h2>\n<p>Молодой эльф Мелентор отправляется в долгожданное путешествие и записывает всё увиденное в дорожном дневнике. В таверне он встречает пройдоху-следопыта и молчаливого мечника, с которыми решает совершить дерзкое ограбление дракона. Конечно же, этот поход не приносит добычи, а одни неприятности. И теперь героям предстоит осознать все последствия и попытаться их исправить…<\/p>\n<h2>Чем книга интересна<\/h2>\n<p><b>Она сказочная и с картинками<\/b><\/p>\n<p>Главное достоинство нашей истории &mdash; она простая, добрая и написана от лица интеллигентного эльфа. В ней нет безысходной мрачности тёмного фэнтези, жестоких сцен и грубых выражений. Так что её можно читать детям и дарить любителям лёгкого фэнтези.<\/p>\n<p>Основные темы повести: дружба, ответственность за поступки и красота волшебного мира. Наши герои не выясняют отношений и не тонут в рефлексии, они беспечно гуляют по лесам-болотам и без истерик справляются с трудностями.<\/p>\n<p>А ещё в книге много красивых иллюстраций, которые интересно рассматривать.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/085-doroga-v-himelhol@2x.png\" width=\"500\" height=\"625\" alt=\"\" \/>\n<\/div>\n<p><b>История собрана вокруг игры с жанром<\/b><\/p>\n<p>Мы не стали оригинальничать и сосредоточились на том, чему научились по настольным ролевым играм &mdash; игре в персонажа. Наш рассказчик &mdash; талантливый дилетант: он субъективен и несведущ в литературном ремесле, а часть важных событий происходит за пределами его внимания.<\/p>\n<p>Эта игра в постфэнтези роуд-муви привела нас к «постмодернизму здорового человека». История прикидывается модерном, делая вид, что до неё никакого фэнтези не было, вместе с тем в меру интеллигентно опирается на устоявшиеся жанровые тропы: концепцию научной магии, базовые расы, героическое прошлое родственников, вот это всё.<\/p>\n<p>Герой-рассказчик не преследует цели развлечь читателя, а просто по порядку излагает увиденное в своих первых трёх походах. В то же время книга взрослеет вместе с автором. Если первый поход занимает три страницы обрывочных заметок, второй под 60 страниц дневника, то третий уже написан как полноценная повесть.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/085-kusala-i-gnom@2x.png\" width=\"500\" height=\"625\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Дварф и его драконовая ящерица<\/div>\n<\/div>\n<p><b>По книге можно изучать цикл производства<\/b><\/p>\n<p>Я UX-редактор, а Ulv &mdash; профессиональный художник. Конечно же, наша книжка &mdash; типичный информационный продукт, прошедший все стадии от MVP-уродца до полноценного проекта.<\/p>\n<p>Книг мы до этого не писали, а потому собрали все возможные грабли, утонули в проблемах и героически их преодолевали. В итоге мы преисполнились и применили проектный подход, наша книжка выросла в полноценный проект, а проблемы в итоге привели к некоторым удачным решениям.<\/p>\n<p>В тексте видны следы дыр, нестыковок и последствий срочных решений, но вместе с тем, можно проследить поэтапное взросление идеи произведения и нашего подхода к работе. В дополнительных материалах на Бусти мы про всё это потихоньку рассказываем.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/085-derev-gnom@2x.png\" width=\"500\" height=\"625\" alt=\"\" \/>\n<\/div>\n<h2>Где читать<\/h2>\n<p><b>На Бусти, по главам<\/b>. Сама книга с иллюстрациями доступна бесплатно, дополнительные материалы &mdash; по платной подписке.<\/p>\n<p>Сам бусти &mdash; <a href=\"https:\/\/boosty.to\/melentor\"><a href=\"https:\/\/boosty.to\/melentor\">https:\/\/boosty.to\/melentor<\/a><\/a><\/p>\n<p><a href=\"https:\/\/boosty.to\/melentor\/posts\/8a2f8bd6-94a9-4ad6-9e0b-836d612d0346?share=post_link\">Оглавление и ссылки на материалы по книге<\/a><\/p>\n<p><b>PDF-версия<\/b> появится на Бусти, когда я её доверстаю, а литредактор её вычитает. Ориентировочные сроки &mdash; середина лета 2024. Следите за новостями.<\/p>\n<p><b>Бумажная версия<\/b> &mdash; TBD. Мы планируем печатать книгу в твёрдом переплёте на хорошей бумаге, но когда это будет и сколько будет стоить, пока не ясно. Следите за новостями и подписывайтесь на обновления, чтобы ничего не пропустить.<\/p>\n",
            "date_published": "2024-06-14T16:16:44+05:00",
            "date_modified": "2024-11-18T22:37:18+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/055-book-cover.jpg",
            "_date_published_rfc2822": "Fri, 14 Jun 2024 16:16:44 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "95",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/055-book-cover.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/055-book-pack.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/085-doroga-v-himelhol@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/085-kusala-i-gnom@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/085-derev-gnom@2x.png"
                ]
            }
        },
        {
            "id": "94",
            "url": "https:\/\/vitalyfilatov.ru\/all\/ux-notes\/",
            "title": "Заметки о работе UX-редактором",
            "content_html": "<p>Мой стендап про UX-редактуру для <a href=\"https:\/\/t.me\/natashinux\">канала «Наташин UX»<\/a>. Хвастаюсь корешками книг, кошусь мимо камеры и рассказываю, как попал в UX, какую пользу приносит редактор, откуда в продуктах берётся плохой текст, почему его сложно исправить и чем полезна работа в банке.<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=zXWG1MVOkw4\">Смотреть на Ютубе с подробными таймкодами<\/a><\/p>\n<div class=\"e2-text-video\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/zXWG1MVOkw4?enablejsapi=1\" allow=\"autoplay\" frameborder=\"0\" allowfullscreen><\/iframe>\n<div class=\"e2-text-caption\">Ролик вышел в сентябре 2023, тогда я ещё работал в Умном доме МТС<\/div>\n<\/div>\n<p>Если у вас нет свободных 51 минуты 47 секунд, чтобы на меня смотреть, вот тезисы:<\/p>\n<h2>Про учёбу<\/h2>\n<p>Учится на курсах полезно, но перед этим хорошо начитаться интернета. Тогда курсы помогут систематизировать знания и понять, что и как изучать дальше. Без базы курсы дают только общее представление о предмете.<\/p>\n<p>Знания нужно систематизировать и хранить в базе знаний. Например, завести Цеттелькастен в Обсидиане.<\/p>\n<p>Первичный опыт в UX можно получить на смежной роли. Например, писать статьи в Помощь, попутно изучать продукт, а потом предлагать дизайнерам и продактам что-нибудь переписать.<\/p>\n<p>Для системной работы нужны знания из смежных областей: основы программирования, типографика, вёрстка, дизайн, Фигма. Чем больше таких знаний, тем больше влияния на продукт.<\/p>\n<h2>Про смысл<\/h2>\n<p>Интерфейс &mdash; это диалог с пользователем. Чтобы диалог был осмысленным, нужно начинать с сути. Сначала решаем, зачем и что сказать, потом &mdash; какими словами.<\/p>\n<p>Чтобы решить интерфейсную задачу, нужно понимать контекст: откуда пользователь пришёл, что хочет сделать, что уже знает, какие ограничения есть у бизнеса и разработчиков. Для этого редактору нужно задавать много вопросов, а продакту &mdash; быть готовым на них отвечать.<\/p>\n<h2>Ошибки в крупных продуктах<\/h2>\n<p>Ошибки и неряшливость возникают в зонах, где нет ответственного. Так происходит из-за бюрократии, бардака и бэклога.<\/p>\n<p>Некоторые ошибки не будут исправлять, пока они не начнут ощутимо вредить бизнесу. Некоторые ошибки не начнут вредить никогда. Но в мире нет ничего вечного, когда-нибудь они сгинут вместе с продуктом.<\/p>\n<p>Разработчики тоже любят пользователей и хотят делать хорошо. Но они воспринимают продукт изнутри, а потому иногда творят дичь: хардкодят модальные окна или выводят ошибки базы данных в интерфейс.<\/p>\n<h2>Как быть полезным<\/h2>\n<p>У любой команды до редактора уже есть какие-то процессы. И прежде чем выстраивать новые, нужно изучить старые. Так меньше шансов что-то сломать и всех выбесить.<\/p>\n<p>Важно создавать коалиции. Тогда редактор будет выражать не субъективное мнение, а мнение группы компетентных специалистов.<\/p>\n<p>Важно понимать, что хочет постановщик задачи. Если продакт принёс мелких правок за день до релиза, глупо предлагать изменения в сценариях. Остаётся постепенно наглядно убеждать в своей пользе и ждать, когда к тебе начнут приходить пораньше.<\/p>\n<p>Чтобы к редактору было больше доверия, нужно делать то, что от вас ждут, но чуть больше и чуть удобнее. За полгода в вас поверят.<\/p>\n<p>UX не только про пользователя, но и про команду: дизайнеров, разработчиков, аналитиков и менеджеров. Если с редактором тяжело работать, к нему будут реже ходить, даже если этого требует регламент.<\/p>\n<h2>Всякое по теме<\/h2>\n<p><a href=\"https:\/\/redbasset.tech\/episode\/RB53477\">#14 &mdash; Кто такой UX-редактор<\/a> &mdash; подкаст лаборатории Mish. Если из видео ничего не понятно, послушайте его.<\/p>\n<p><a href=\"https:\/\/vk.com\/@dottore_editore-rogercam\">Как я строил коптеры и снимал видео<\/a> &mdash; чем я занимался до редактуры.<\/p>\n<p><a href=\"https:\/\/vitalyfilatov.ru\/all\/techdebt-and-legacy\/\">Технический долг и легаси на примере тараканов<\/a> &mdash; почему некоторые вещи так сложно исправить.<\/p>\n<p><a href=\"https:\/\/vitalyfilatov.ru\/all\/five-inputs\/\">Заявка с пятью полями загрузки<\/a> &mdash; почему корпорация сильна, но человек в ней слаб и одинок.<\/p>\n",
            "date_published": "2023-12-25T22:30:21+05:00",
            "date_modified": "2023-12-26T17:00:48+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/remote\/youtube-zXWG1MVOkw4-cover.jpg",
            "_date_published_rfc2822": "Mon, 25 Dec 2023 22:30:21 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "94",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/jquery\/jquery.js",
                    "system\/library\/media-seek\/media-seek.js"
                ],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/remote\/youtube-zXWG1MVOkw4-cover.jpg"
                ]
            }
        },
        {
            "id": "93",
            "url": "https:\/\/vitalyfilatov.ru\/all\/stalker\/",
            "title": "Сила маркера и скотча",
            "content_html": "<p>Помогал проводить <a href=\"https:\/\/vk.com\/stalkerfest\">ролевую игру по Сталкеру<\/a>: следил за работой игровой локации, изображавшей заброшенную лабораторию. Я проверял на входе ключ-пропуск и снаряжение, напоминал правила и следил за временем забегов, а в перерывах подкидывал внутрь игровые ценности и дымовые шашки.<\/p>\n<p>В ходе игры выяснилось, что локация работает непонятно и неудобно. Пришлось решать на месте подручными средствами.<\/p>\n<h2>Ситуация<\/h2>\n<p>Лабораторию устроили в заброшенном овощехранилище. Закрыли окна и лишние двери, оставив два входа: один для игроков, другой для организаторов. Служебный вход пометили сигнальной лентой, а на игровой повесили старый кассовый аппарат в роли кодового замка на шлюзе.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/083-plan@2x.png\" width=\"880\" height=\"524\" alt=\"\" \/>\n<div class=\"e2-text-caption\">В неигровой зоне я ждал игроков и хранил реквизит<\/div>\n<\/div>\n<p>Оказалось, что локация непонятно и неудобно организована.<\/p>\n<p><b>Непонятки.<\/b> По задумке я должен был встречать игроков внутри, проверять ключ-пропуск и запускать в лабораторию. Но иногда игроки просто шли мимо и решали проверить дверь со странной штукой. Они врывались внутрь, осматривали углы и иногда успевали пробежать мимо меня в неигровую зону или лабораторию. Приходилось их останавливать, а это сбивало кураж и портило погружение.<\/p>\n<p><b>Неудобки.<\/b> Локация работала с утра до двух ночи, сидеть там постоянно не получалось. Пока меня не было, локация портила игру: игроки без ключа решали, что закрытые двери ведут в неигровые зоны, а игроки с ключом не знали, когда я вернусь, и теряли время.<\/p>\n<h2>Решение<\/h2>\n<p>У меня был маркер, бумага и двухсторонний скотч, поэтому я написал таблички.<\/p>\n<p>Первой я повесил табличку на входе. Двери в лабораторию и неигровую зону закрывались навесными замками, а входная нет, да и закрывать её было бессмысленно — всё равно непонятно, что это и как с этим играть. Нужна была четкая инструкция, отсекающая кейс неавторизованного входа.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/083-lab-entrance@2x.jpg\" width=\"780\" height=\"580\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Неприметная дверь в заросшем закутке вела в полный опасностей лабиринт<\/div>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/083-lab-entrance-door@2x.jpg\" width=\"780\" height=\"490\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Понятно, что это игровая зона и нужен игровой предмет, а мне нужно поработать над леттерингом<\/div>\n<\/div>\n<p>После этого случайные посетители перестали забегать, а игроки с ключами показывали их с порога.<\/p>\n<p>Внутри я повесил ещё по табличке на каждую дверь. На неигровую — пояснение со стрелкой, а на игровую — инструкцию с подсказкой.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"780\" data-ratio=\"1.21875\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/083-lab-gateway@2x.jpg\" width=\"780\" height=\"640\" alt=\"\" \/>\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/083-lab-door@2x.jpg\" width=\"780\" height=\"640\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Рация есть у каждого, но за сутки она может разрядиться<\/div>\n<\/div>\n<p>После этого я смог смело ходить по делам, а игроки меня не теряли.<\/p>\n<h2>Выводы<\/h2>\n<ol start=\"1\">\n<li>Интерфейсы и процессы есть везде, где есть люди.<\/li>\n<li>Пользовательский опыт нужно целенаправленно организовывать, иначе люди организуют его себе сами как сумеют.<\/li>\n<li>Суть важнее формы. Вовремя и кое-как лучше, чем красиво, но поздно.<\/li>\n<li>Люди читают, если текст выглядит важным. Просто важность субъективна и зависит от контекста и внимания.<\/li>\n<\/ol>\n",
            "date_published": "2023-09-12T18:22:49+05:00",
            "date_modified": "2023-09-12T22:22:33+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/083-plan@2x.png",
            "_date_published_rfc2822": "Tue, 12 Sep 2023 18:22:49 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "93",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/jquery\/jquery.js",
                    "system\/library\/fotorama\/fotorama.css",
                    "system\/library\/fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/083-plan@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/083-lab-entrance@2x.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/083-lab-entrance-door@2x.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/083-lab-gateway@2x.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/083-lab-door@2x.jpg"
                ]
            }
        },
        {
            "id": "92",
            "url": "https:\/\/vitalyfilatov.ru\/all\/status\/",
            "title": "Статус с числительным",
            "content_html": "<p>Заметка о согласовании глаголов с числительными: как сначала не получалось, а потом я уточнил ограничения и получилось.<\/p>\n<h2>Задача<\/h2>\n<p>Есть умный терморегулятор для батареи отопления. Он работает как автоматический вентиль: накручивается на трубу и открывает-закрывает клапан, поддерживая нужную температуру в комнате.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/082-aqara.png\" width=\"750\" height=\"500\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Умный регулятор Aqara. Фото неизвестного автора из отзывов на Яндекс-Маркете<\/div>\n<\/div>\n<p>Поскольку это <i>умный<\/i> терморегулятор, в нём много чего есть: защита от детей, режим антифриза, контроль заряда батарейки, перекрытие клапана. Все изменения в работе отражаются в событиях приложения умного дома. Нужен текст этих событий.<\/p>\n<p>Сложность возникла с формулировкой изменения температуры. Каждый раз, когда мы выставляем температуру, в историю пишется событие типа:<\/p>\n<blockquote>\n<p>На термоголовке установлена температура XX,X градусов<\/p>\n<\/blockquote>\n<p>Дизайн уже согласован, менять ничего нельзя. Нужно написать в одну строку, влезть в количество символов с обязательной дробью и ещё как-то отметить, где пользователь выставил температуру: физической крутилкой или в приложении.<\/p>\n<h2>Решение<\/h2>\n<p>Уберём пока про термоголовку и заменим слово «градусов» на символ:<\/p>\n<blockquote>\n<p>На термоголовке установлена температура XX,X градусов<\/p>\n<\/blockquote>\n<blockquote>\n<p>↓<\/p>\n<\/blockquote>\n<blockquote>\n<p>Установлена температура XX,X°<\/p>\n<\/blockquote>\n<p>Стало короче, но всё ещё не влезает. Слово «температура» вроде лишнее, но без него придётся согласовывать окончания глагола:<\/p>\n<blockquote>\n<p>Установлен 1,0°<\/p>\n<\/blockquote>\n<blockquote>\n<p>Установлено 30,0°<\/p>\n<\/blockquote>\n<p>Следить за окончаниями разработчики категорически откажутся, нужно изящно-тупое решение. Заменить слово символом или поставить двоеточие не годится, получается ребус или неестественный уродец:<\/p>\n<blockquote>\n<p>❌ Установлена t° 1,0<\/p>\n<\/blockquote>\n<blockquote>\n<p>❌ Установлено: 1,0°<\/p>\n<\/blockquote>\n<p>Можно было бы вывернуться с фразой «Вы установили…», но это звучит глупо и пользователей у умного дома может быть несколько.<\/p>\n<p>Выясняю у аналитиков диапазон температуры, которую можно выставить на девайсе: 5—30 С°.<\/p>\n<p>Получается, для всех вариантов подойдёт «Установлено». Остаётся 21°, который «установлен», но тут мы пойдём на сделку с совестью и прочтём с дробью:<\/p>\n<blockquote>\n<p>Установлено двадцать один и ноль десятых градуса<\/p>\n<\/blockquote>\n<p>Кому, вообще, нужен ровно 21 градус Цельсия? Зато теперь всё влезает, а место изменений уместилось под строкой статуса. Оказалось, в реализованном компоненте оставили коробок для служебной информации, которая в событиях отдельного устройства не выводится. Там же можно указывать других пользователей.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/082-logs@2x.png\" width=\"375\" height=\"668\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Результат в условном дизайне. Рабочий под NDA<\/div>\n<\/div>\n<h2>Выводы-советы<\/h2>\n<ol start=\"1\">\n<li>Дружите с аналитиками и разработчиками<\/li>\n<li>Выясняйте технические ограничения<\/li>\n<li>Изучите дизайн-систему и UI-кит<\/li>\n<li>Не всё можно и нужно решать текстом, советуйтесь с дизайнером<\/li>\n<\/ol>\n",
            "date_published": "2023-08-03T14:39:45+05:00",
            "date_modified": "2023-08-03T14:48:23+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/082-aqara.png",
            "_date_published_rfc2822": "Thu, 03 Aug 2023 14:39:45 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "92",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/082-aqara.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/082-logs@2x.png"
                ]
            }
        },
        {
            "id": "91",
            "url": "https:\/\/vitalyfilatov.ru\/all\/vtb-faq-vacancy\/",
            "title": "Вакансия редактора Помощи в ВТБ Бизнес (АРХИВ)",
            "content_html": "<p><i>Вакансия закрыта, но я оставлю её текст на память :3<\/i><\/p>\n<p>Ищу себе замену. Покажите друзьям, если они пишут и хотели бы поработать в банке.<\/p>\n<p>ВТБ Бизнес — подразделение банка ВТБ для малого и среднего бизнеса. У банка есть справочный раздел со статьями для пользователей, вот его и нужно будет вести.<\/p>\n<p><a href=\"https:\/\/db.vtb.ru\/faq\">Помощь ВТБ Бизнес<\/a><\/p>\n<h2>Кто нужен<\/h2>\n<p>Редактор-мидл, готовый взять на себя редакционные процессы справочного сервиса: писать, согласовывать, публиковать и развивать.<\/p>\n<p>Требуются инфостиль, docx, гугл-доки, база Фигмы и HTML.<\/p>\n<p>Хорошо, если вы любите писать инструкции, не боитесь бюрократии и умеете разговаривать с юристами и дизайнерами.<\/p>\n<p>Пригодится знание основ JQL и регулярных выражений.<\/p>\n<h2>Что нужно делать<\/h2>\n<p>Редактировать статьи на основе черновиков продуктовых команд, делать из их макетов иллюстрации к статьям и готовить всё к публикации. Иногда нужно писать новые статьи, иногда дополнять старые или находить удалять неактуальные.<\/p>\n<p>Ещё нужно сопровождать редакционные процессы, вести внутреннюю несложную документацию, обновлять регламенты и инструкции для участников.<\/p>\n<p>Периодически нужно смотреть отзывы пользователей и статистику посещений, обновлять структуру разделов и всячески развивать сервис внутри и снаружи.<\/p>\n<p>Непонятное можно спрашивать у прежнего редактора, который ушёл из банка, но остаётся на связи (это я, мою телегу вам дадут).<\/p>\n<h2>Как выстроен процесс<\/h2>\n<p>Банковских продуктов под три десятка и прямого доступа у редактора к ним нет. Каждым продуктом занимается своя команда. Эти команды автономны, у них свои приоритеты и задачи, писать статьи в Помощь им некогда, но черновики, макеты и экспертизу они чаще всего дают.<\/p>\n<p>Команды продуктов подают заявки с материалами, редактор их обрабатывает, согласует и публикует через внутренний сервис.<\/p>\n<p>Процесс описан в инструкциях, команда Помощи дружелюбная, ответственные за статьи со стороны продуктовых команд тоже контактные и заинтересованные в процессе.<\/p>\n<p>Полноценной редполитики и ToV у сервиса нет, придётся ориентироваться на готовые статьи и заметки прежнего редактора. Зато есть <a href=\"https:\/\/docs.google.com\/document\/d\/1PDCAiXmfH1MW3jmC-M577viwg5wRqkchM2znnHPJo-0\/edit#heading=h.ga8liocvt8zq\">гайд по иллюстрациям для дизайнеров<\/a>.<\/p>\n<h2>По деньгам и условиям<\/h2>\n<p>Платят нормально, но сумма обговаривается индивидуально.<\/p>\n<p>В остальном — как в любой большой компании: рабочий ноутбук, ДМС и фултайм по московскому времени.<\/p>\n<h2>Как откликнуться<\/h2>\n<p>Напишите руководителю команды Помощи Александру в телеграм: <i>тут была ссылка<\/i><\/p>\n",
            "date_published": "2023-03-24T20:25:47+05:00",
            "date_modified": "2023-12-26T21:18:25+05:00",
            "_date_published_rfc2822": "Fri, 24 Mar 2023 20:25:47 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "91",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "90",
            "url": "https:\/\/vitalyfilatov.ru\/all\/natural-chaos\/",
            "title": "Порядок с долей хаоса",
            "content_html": "<p>Диванные рассуждения о красоте, порядке и необходимой доле хаоса на примере рамок с афишами.<\/p>\n<p>Начну издалека.<\/p>\n<p>В статьях по когнитивной психологии пишут, что мы получаем удовольствие, когда находим закономерности в хаосе. В ходе эволюции мозг научился распознавать повторяющиеся формы и симметрию. Сначала это помогало нам отличать спелое от гнилого и змею от палки, а с развитием сознания легло в основу эстетических принципов. Поэтому:<\/p>\n<blockquote>\n<p>В том, что нам кажется красивым, всегда есть закономерность.<\/p>\n<\/blockquote>\n<p>В то же время в природе нет ничего идеально ровного и симметричного, и мы быстро устаём от предсказуемых форм из-за их монотонности. Поэтому идеальная векторная снежинка скучнее фотографии: в настоящей снежинке есть немного хаоса. Вывод:<\/p>\n<blockquote>\n<p>В естественных формах всегда присутствует доля случайности.<\/p>\n<\/blockquote>\n<p>Теперь к чему это всё.<\/p>\n<p>В телеграм-канале «Это красиво, а это нет» показали красивую композицию:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/080-composition@2x.png\" width=\"780\" height=\"530\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Стена в чьей-то квартире. Взято <a href=\"https:\/\/t.me\/thisisfinethisisnot\/72\">из поста канала «Это красиво, а это нет»<\/a><\/div>\n<\/div>\n<p>Кажется, что рамки развешаны случайно. Нет привычного выравнивания по колонкам, строгой симметрии или какого-нибудь другого очевидного правила, по которому всё организовано. Но в то же время рамки не хочется двигать, их расположение <i>ощущается правильным и живым<\/i>.<\/p>\n<p>Чтобы не плести псевдонаучной мути, объясню от обратного.<\/p>\n<p>Сделаем неправильно — раскидаем рамки хаотично, чтобы в их расположении не угадывался замысел:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/080-chaos.png\" width=\"780\" height=\"260\" alt=\"\" \/>\n<\/div>\n<p>Пропорций не угадывается и смотреть неприятно: мы затратили усилия на поиск паттернов, но ничего не нашли. Энергия затрачена впустую.<\/p>\n<p>А теперь сделаем неживым — нарочито всё выровняем, как в макете лендинга:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/080-gridded.png\" width=\"780\" height=\"260\" alt=\"\" \/>\n<\/div>\n<p>Появились очевидные правила, но смотреть стало скучно: слишком предсказуемо. В такой композиции нечего разгадывать, а значит, и не за что получать дофаминовое поощрение.<\/p>\n<p>Получается, композиция с рамками нам нравится, потому что порядок в ней не очевиден, но явно присутствует. Ожидание его найти помогает поддерживать мотивацию. Мозг выделяет энергию, мы рассматриваем рамки, распознаём упорядоченность и чувствуем себя хорошо.<\/p>\n<p>Вероятно, автор подбирал расположение рамок по наитию и не смог бы с ходу объяснить, почему они развешаны именно так. Но раз это кажется нам красивым, мы обязательно найдём какие-нибудь закономерности.<\/p>\n<p>Например, у меня получилось так:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/080-composition-with-grids@2x.png\" width=\"780\" height=\"530\" alt=\"\" \/>\n<\/div>\n<p>А вместо выводов буду ссылки на разное:<\/p>\n<p><a href=\"https:\/\/youtu.be\/-O5kNPlUV7w\">Почему красивые вещи делают нас счастливее<\/a> — ютуб-канал Kurzgesagt.<\/p>\n<p><a href=\"https:\/\/elementy.ru\/kartinka_dnya\/477\/Snezhinka\">Почему у снежинки шестилучевая симметрия<\/a> — статья проекта «Элементы».<\/p>\n<p><a href=\"https:\/\/medium.com\/@li_mmm\/%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D1%8D%D1%81%D1%82%D0%B5%D1%82%D0%B8%D0%BA%D0%B0-826c28e5a311\">Нейроэстетика: научное обоснование красоты<\/a> — пересказ двух глав книги «Мозг рассказывает» Вилейанура Рамачандрана.<\/p>\n",
            "date_published": "2023-03-15T16:35:19+05:00",
            "date_modified": "2023-03-15T16:34:45+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/080-composition@2x.png",
            "_date_published_rfc2822": "Wed, 15 Mar 2023 16:35:19 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "90",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/080-composition@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/080-chaos.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/080-gridded.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/080-composition-with-grids@2x.png"
                ]
            }
        },
        {
            "id": "89",
            "url": "https:\/\/vitalyfilatov.ru\/all\/five-inputs\/",
            "title": "Заявка с пятью полями загрузки",
            "content_html": "<p>Зарисовка о UX-дизайне, ограничениях реального мира и крупных компаниях.<\/p>\n<p>Коллеги показали заявку на подключение какого-то нового дополнительного сервиса. Всё под NDA, поэтому вот общая идея в условном дизайне:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/079-form@2x.png\" width=\"780\" height=\"850\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Оформление чего-то требует множество всякого<\/div>\n<\/div>\n<p>Я смотрел на неё полдня, а потом вдруг осознал, насколько она невыносимо прекрасна в своей дихотомии. В её основе одновременно лежат тупость и сострадание. Сейчас объясню.<\/p>\n<h2>Тупость<\/h2>\n<p>Форма выглядит как плод технозависимого мышления, рождённый без любви:<\/p>\n<ol start=\"1\">\n<li>В UI-ките есть компонент загрузки файла.<\/li>\n<li>В бизнес-процессе документы делятся на категории.<\/li>\n<li>Под каждую категорию нужно отдельное поле.<\/li>\n<\/ol>\n<p>Но такое решение удобно только разработчикам. Любой выпускник UX-курсов скажет вам, что у формы проблемы:<\/p>\n<blockquote>\n<p><b>Она неудобна.<\/b> Пользователю придётся затаскивать файлы по очереди. Все давно привыкли кидать кучу файлов куда-то на страницу, как в Гугл-диске. А тут ещё и поле дополнительных документов меньше других.<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>Непредсказуема.<\/b> Четыре поля принимают по одному файлу, а пятое — несколько. Что будет, если закинуть два файла в одно поле? Оно возьмёт только первый или выдаст ошибку на все?<\/p>\n<\/blockquote>\n<blockquote>\n<p><b>Причиняет боль.<\/b> Если закинуть файл не туда, скорее всего, придётся его удалить и загрузить заново. Перетаскивать загруженный файл нельзя, потому что компоненты UI-кита этого не предусматривают, но о компонентах как-нибудь в другой раз.<\/p>\n<\/blockquote>\n<p>Казалось бы, дизайнеры должны бороться со злом, а не решать задачи бэк-офиса за счёт пользователя. Можно же сделать единое поле загрузки, а оператор сам как-нибудь разберётся. Но давайте заглянем глубже.<\/p>\n<h2>Сострадание<\/h2>\n<p>Представьте, как где-то в глубине огромной бюрократической машины сидит человек-оператор Степан. Его задача — проверять документы в заявках и решать: передавать дальше или отклонять.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/079-stephan.jpg\" width=\"640\" height=\"427\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Так бы мог выглядеть Степан, носи он зелёную рубашку. <a href=\"https:\/\/unsplash.com\/photos\/EPi3TRQc5Z0\">Оригинал на Unsplash<\/a><\/div>\n<\/div>\n<p>Пользователи редко называют файлы вменяемо, поэтому набор документов для Степана может выглядеть так:<\/p>\n<blockquote>\n<p>Снимок.PNG<\/p>\n<\/blockquote>\n<blockquote>\n<p>14512320230217.pdf<\/p>\n<\/blockquote>\n<blockquote>\n<p>Сканы_володе_новый (2).PDF<\/p>\n<\/blockquote>\n<blockquote>\n<p>s77x1XSLkU2F.jpeg<\/p>\n<\/blockquote>\n<blockquote>\n<p>Павленко ДЮ — доки по кредитам.zip<\/p>\n<\/blockquote>\n<p>У компании миллион клиентов, и даже на побочный сервис заявки пойдут плотным потоком. Среди заявок будут неполные, с грязными сканами и файлами неверного формата. И если Степану придётся открывать каждый файл и назначать категорию, он быстрее потускнеет и выгорит.<\/p>\n<p>Кажется, что квалификацию заявок легко автоматизировать. Обучить нейросеть, Степана оставить за главного, а пользователям дать одно поле для всего. Но на практике это невозможно.<\/p>\n<p>Нейросеть должна эти документы понимать. Но пока нейросети могут только рисовать уродцев и сдавать экзамены на топ-менеджеров. Оценить <i>содержание<\/i> машина не способна. Остаётся натаскать её на сортировку: что паспорт, что права, а что справка. Но и тут затык.<\/p>\n<p>Дело в том, что IT-гигант может всё, но отдельно взятая команда разработчиков не может ничего сверх предписанного.<\/p>\n<p>У нашего сервиса с заявками есть своя IT-команда, которая держит его на плаву и потихоньку развивает задачками из бэклога. В этот бэклог можно добавить хоть колонизацию Марса, но на фоне бесконечной борьбы с багами и кривотой общей архитектуры до этой задачи никогда не дойдут.<\/p>\n<p>Да что там нейросеть. Команда и поведение поля загрузки не сможет изменить, потому что это поле — часть UI-кита. А китом занимается другая команда, со своим бэклогом, техдолгом и легаси.<\/p>\n<blockquote>\n<p>Пока распознаватель документов не станет фактором выживания бизнеса, ресурсы и людей под него не выделят. Для этого требуется стратегическое решение в цепи руководства, которое управляет предприятием через его абстрактную модель и нетиповые проблемы не воспринимает.<\/p>\n<\/blockquote>\n<p>Получается, что дизайнеры рисуют пять полей из любви к человеку Степану. Чтобы снять с оператора хотя бы самое тупое, дизайнеры идут против идеалов UX и перекладывают разбор файлов на пользователя. Это оправданная жертва: у Степана тысяча заявок в день, а у пользователя — одна в год.<\/p>\n<p>Тут должен быть вывод, но у меня есть только афоризм:<\/p>\n<blockquote>\n<p>Корпорация сильна, но человек в ней слаб и одинок.<\/p>\n<\/blockquote>\n<p>Если глубоко осознать эту мудрость, можно победить невежество духа и стать просвещённым, что излучает благодать и <s>сарказм<\/s> метаиронию.<\/p>\n",
            "date_published": "2023-02-18T01:36:02+05:00",
            "date_modified": "2023-02-18T01:39:54+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/079-form@2x.png",
            "_date_published_rfc2822": "Sat, 18 Feb 2023 01:36:02 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "89",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/079-form@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/079-stephan.jpg"
                ]
            }
        },
        {
            "id": "88",
            "url": "https:\/\/vitalyfilatov.ru\/all\/slippy-road\/",
            "title": "Как сделать глубже текст о гололёде",
            "content_html": "<p>Коллега-разработчик предупредил в рабочем чате:<\/p>\n<blockquote>\n<p>Коллеги, кто в мск, будьте очень осторожны в перемещениях. Сейчас ситуация такая, что лужи глубиной до 10&ndash;15 см на светофорах, а под ними лёд. Огромное количество падающих людей, особенно на пешеходных переходах.<\/p>\n<\/blockquote>\n<p>Сообщение неплохое, потому что автором двигала забота, а форма вторична. Но я всё равно решил переписать его для тренировки: сократить-упростить, убрать лишние усилители и избыточные детали.<\/p>\n<p>Вначале получилось так:<\/p>\n<blockquote>\n<p>Москвичи! Будьте осторожны на улице. Кругом лужи по щиколотку, а на дне — лёд. Многие падают, особенно на пешеходных переходах.<\/p>\n<\/blockquote>\n<p>Обычное сообщение по учебнику: маркер ЦА, суть и подробности. Хорошо для b2b, но для рабочего чата хотелось чего-то поживее. Так что я осторожно снял несколько защитных печатей с внутреннего копирайтера и добавил щепоть <s>словесных кружев<\/s> образности:<\/p>\n<blockquote>\n<p>Москвичи, осторожней на улицах! На дне луж притаился коварный лёд. Люди поскальзываются и получают травмы, ЖЕРТВ УЖЕ СОТНИ. Не ходите по лужам, оставайтесь дома!<\/p>\n<\/blockquote>\n<p>К моему удивлению, сервис Главред оценил текст на полтора балла выше первой попытки. Цели были достигнуты, но результат не казался окончательным.<\/p>\n<p>Неплохо, но как сделать глубже? — задумался я. Как написать не просто предупреждение в чат, а универсальное высказывание, востребованное в любое время и эпоху? Ответ оказался на поверхности: следовало рассказать историю. Привлечь чувственный опыт, общие ценности и универсальные истины. А для лучшей усвояемости — облечь всё в стихотворную форму.<\/p>\n<p>Сформировав образ идеального результата и направив Вселенной запрос, я смело вошёл в поток ресурса. Через несколько попыток получилось такое:<\/p>\n<blockquote>\n<p>Однажды я, наивный, робкий, юный<br \/>\nБыл мамою отправлен в магазин<br \/>\nВ Москве стоял декабрь угрюмый<br \/>\nПодтаял снег, держался лёд под ним<br \/>\nИ вот, в беспечности и мареве восторга<br \/>\nПо улице бежал навстречу я судьбе<br \/>\nИ в лужу наступил из озорства, задорно<br \/>\nНо скрытый лёд упор не дал стопе…<br \/>\nЯ в воздух взмыл. И моего полёта<br \/>\nБыл предрешён трагический итог:<br \/>\nОгромного автобуса колёса,<br \/>\nВизг тормозов, пронзительный гудок<br \/>\nНо на пути смертельного движенья<br \/>\nРасполагался светофорный столб<br \/>\nЯ об него растратил ускоренье<br \/>\nА лоб мой высек ярких искр сноп<br \/>\nТеперь я стар, как дуб увит годами<br \/>\nИ за советы благодарен маме:<br \/>\nНе бегай там, где скользко, пострелец<br \/>\nЖизнь коротка, не торопи конец.<\/p>\n<\/blockquote>\n<p>Эту историю следовало бы завершить выводом. Но навязывание выводов — насилие, поэтому каждый должен сделать вывод сам. Мне же пора на веб-интенсив по правополушарной аджна-йоге, навёрстывать время, проведённое за сушкой текста на корпоративной службе. Гори в аду, унылое забвенье! Я чую свежий ветер приключенья!<\/p>\n",
            "date_published": "2022-12-14T00:15:17+05:00",
            "date_modified": "2022-12-14T14:15:51+05:00",
            "_date_published_rfc2822": "Wed, 14 Dec 2022 00:15:17 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "88",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "87",
            "url": "https:\/\/vitalyfilatov.ru\/all\/sense-shift\/",
            "title": "Смещение смысла",
            "content_html": "<p>Бывает, автор пишет о важном, но акцент ставит на банальное или формальное, отчего сообщение получается раздражающе бесполезным. Симптом смещения:<\/p>\n<blockquote>\n<p>текст касается важной темы, но не отвечает на важные вопросы.<\/p>\n<\/blockquote>\n<p>Разберём на примере и попробуем вправить смысл.<\/p>\n<p><b>Ситуация.<\/b> В офисном небоскрёбе запланировали пожарные учения, сотрудникам предстоит пробежать по лестницам шестьдесят этажей. В письмо с анонсом организаторы добавили важное напоминание:<\/p>\n<blockquote>\n<p>Внимание! В случае ухудшения самочувствия во время спуска по лестнице необходимо немедленно обратиться к медицинскому персоналу, который будет дежурить на объекте во время комплексного учения.<\/p>\n<\/blockquote>\n<p><b>Проблема.<\/b> Ясно, что врачи будут, но непонятно, где их искать.<\/p>\n<blockquote>\n<p>На каких этажах они будут дежурить?<\/p>\n<\/blockquote>\n<blockquote>\n<p>Как их быстро найти среди бегущих людей?<\/p>\n<\/blockquote>\n<blockquote>\n<p>Их будет двое в фойе или по одному на каждом десятом пролёте?<\/p>\n<\/blockquote>\n<blockquote>\n<p>Можно ли им позвонить, если кто-то не сможет идти?<\/p>\n<\/blockquote>\n<p>Вместо ответов автор многословно поучает: стало плохо — обратись за помощью.<\/p>\n<p><b>Почему так пишут<\/b>, я не знаю. Наверное, из-за ограничений и формализма.<\/p>\n<p>Представьте, что менеджер по персоналу в спешке составляет рассылку. Подробностей нет, у кого уточнять непонятно, разослать нужно до обеда, а лишний круг согласований займёт полдня. Это ограничения.<\/p>\n<p>Формализм проявляется в том, как менеджер понимает свою задачу. Вероятно, он <i>организовывает поведение <\/i>сотрудников во время учебной эвакуации. Известно, что на объекте будут медики, поэтому нужно вписать их в чёткую инструкцию. Задачи представлять себя на учениях и предполагать вопросы читателя у менеджера нет.<\/p>\n<p><b>Вправляем смысл.<\/b> Допустим, что нам удалось выяснить, как медики организуют дежурство, и мы хотим закрыть важные вопросы.<\/p>\n<p>Уберём бессмысленный маркер внимания, вынесем суть вперёд и увяжем банальную рекомендацию с чем-то полезным. Пусть будет про внешний вид медицинского персонала. Получаем:<\/p>\n<blockquote>\n<p>Во время учений вас будут сопровождать врачи и терапевтические капибары из Центра медицины катастроф. Если вам станет плохо или одиноко, немедленно обратитесь к сотрудникам в оранжевых скафандрах, они будут спускаться последними.<\/p>\n<\/blockquote>\n<p>Смысл вправлен, остался вывод в форме афоризма: чтобы избежать смыслового вывиха, текст и автор должны решать одну задачу.<\/p>\n",
            "date_published": "2022-10-09T13:26:42+05:00",
            "date_modified": "2022-10-09T13:26:38+05:00",
            "_date_published_rfc2822": "Sun, 09 Oct 2022 13:26:42 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "87",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "86",
            "url": "https:\/\/vitalyfilatov.ru\/all\/show-it-right\/",
            "title": "Инструкция из одной картинки",
            "content_html": "<p>Чиним сломанный плакат о том, куда правильно кидать всякое в туалете. Не будем рассуждать, насколько помогают такие штуки. Плакат — просто повод применить любительскую психологию и фотошоп.<\/p>\n<p>Сначала разберём, что на плакате не так.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/076-original@2x.jpg\" width=\"500\" height=\"627\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Дизайнер не учёл принципы восприятия и получил формальный ребус<\/div>\n<\/div>\n<p>Главная проблема плаката — картинка противоречит смыслу. Читателя призывают кидать мусор в ведро, а человечек кидает бумажки в унитаз.<\/p>\n<p>Чтобы передать смысл, дизайнеру не хватило силуэта. Пришлось добавлять цветовой код, галочку с крестиком и дублировать смысл текстом. Это прибавило визуального шума, но не уменьшило нагрузку на мозг: чтобы понять сообщение, плакат нужно изучать.<\/p>\n<p>Сделаем элегантнее: просто покажем <i>как правильно<\/i>. Пусть человечек кидает мусор в ведро.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/076-positive-message@2x.jpg\" width=\"300\" height=\"275\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Человечек выбирает ведро, делайте как он<\/div>\n<\/div>\n<p>В некоторых случаях правильнее показывать негативный сценарий. Например, сунул руку в трансформатор — <s>убило<\/s> ударило током. В нашем случае сложно раскрыть причинно-следственную связь с засором канализации, а позитивный сценарий умещается в один простой образ.<\/p>\n<p>Смысл готов, наведём красоты. Покрасим унитаз в цвет запрета и добавим крестик. Поменяем ведро с унитазом местами, чтобы правильный вариант располагался справа, и уберём надпись «Внимание!» Она всё равно не работает и портит композицию.<\/p>\n<blockquote>\n<p>Пара слов о внимании<\/p>\n<\/blockquote>\n<blockquote>\n<p>Чиновники не знают когнитивной психологии и дизайна, поэтому решают задачу формально: привлекают внимание к сообщению об объекте, а не к объекту. Например, освещают знак пешеходного перехода вместо людей на дороге.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Надпись не работает на плакат, потому что мы её замечаем позже человечка. Наше восприятие так устроено, что мы сначала считываем пятна, потом силуэты и пиктограммы, а уже после принимаемся читать. Плюс к тому на канцелярщину давно выработалась баннерная слепота.<\/p>\n<\/blockquote>\n<p>Текст в данном случае факультативен. Под картинкой можно пояснить суть требования и добавить историю с негативным примером — что будет, если читатель не послушается. Плакат из уфимского культурного центра, пусть там будет что-то лёгкое и с юмором.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"500\" data-ratio=\"0.79744816586922\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/076-redesign@2x.jpg\" width=\"500\" height=\"627\" alt=\"\" \/>\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/076-original@2x.jpg\" width=\"500\" height=\"627\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Шрифт Комик Санс лучше сочетается с картинкой и непринуждённым тоном<\/div>\n<\/div>\n<p>Выводы такие:<\/p>\n<ol start=\"1\">\n<li>Картинка в инструкции должна показывать нужный сценарий и не требовать пояснений.<\/li>\n<li>Мозг предпочитает картинки: сначала силуэты и цвет, потом буквы.<\/li>\n<li>Без разницы, насколько крупно написано на рычаге выключения реактора, что он важный. Он должен выглядеть <i>рычагом, гасящим звёзды<\/i>.<\/li>\n<\/ol>\n",
            "date_published": "2022-07-24T01:32:59+05:00",
            "date_modified": "2022-07-24T23:36:46+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/076-original@2x.jpg",
            "_date_published_rfc2822": "Sun, 24 Jul 2022 01:32:59 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "86",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/jquery\/jquery.js",
                    "system\/library\/fotorama\/fotorama.css",
                    "system\/library\/fotorama\/fotorama.js"
                ],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/076-original@2x.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/076-positive-message@2x.jpg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/076-redesign@2x.jpg"
                ]
            }
        },
        {
            "id": "85",
            "url": "https:\/\/vitalyfilatov.ru\/all\/techdebt-and-legacy\/",
            "title": "Технический долг и легаси на примере тараканов",
            "content_html": "<p>Программисты иногда говорят о своей работе как о безумном адском родео на пылающих велосипедах без сидений. Чтобы примерно представлять, отчего выгорают в айти, разберём два явления: технический долг и легаси.<\/p>\n<p><b>Технический долг<\/b> — это проблемы в коде и архитектуре программы, которые накопились из-за принятых ранее решений сделать быстрее и дешевле.<\/p>\n<p>Каждый раз, когда разработчики пишут плохой непродуманный код, они как бы берут кредит: получают нужный результат в моменте и обязательную борьбу с последствиями в будущем. Долг по кредиту только растёт и исправление накопившихся проблем требует больше труда и нервов.<\/p>\n<p>Вот пример с метафорой, пока без тараканов.<\/p>\n<blockquote>\n<p>Никодим купил хрущёвку со скрипучим дощатым полом. Чтобы быстрее переехать, Никодим решает не возиться с корчеванием досок и заливкой полов по маякам, а просто постелить ламинат поверх.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Для пробы Никодим застилает полы в одной комнате. На этом этапе старый пол ещё можно снять и залить стяжку, но результат выглядит прилично. Так что Никодим решает идти дальше: достилает остальное, ставит межкомнатные двери и шкаф-купе, а после перевозит мебель с прежней квартиры.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Чтобы поменять пол в жилой квартире, Никодиму придётся съехать и сделать всё заново. По уму нужно заливать сразу всю площадь, но там уже мебель и холодильник, которые никуда не уберёшь. Пол станет выше или ниже, дверные косяки со шкафом-купе нужно будет подогнать.<\/p>\n<\/blockquote>\n<p>Иногда технический долг вполне оправдан. Например, стартапы пишут коряво и второпях, чтобы успеть занять нишу на рынке. Если продукт начинает приносить прибыль, его переписывают с расчётом на будущее развитие.<\/p>\n<p><b>Легаси<\/b> — от английского <i>legacy<\/i> — наследие прошедших эпох развития кода и продукта. Легаси-кодом называют реликтовый код, который уже никто не может разобрать и без которого всё сломается. Выбросить его нельзя, работать с ним мучительно, а переписывать страшно и дорого.<\/p>\n<p>Легаси неизбежно в любом продукте. Языки программирования и технологии устаревают, разработчики ленятся писать документацию, а потом выгорают и увольняются. Бывает, что древняя часть программы сразу получилась хорошо и стабильно работает, если её не трогать.<\/p>\n<p>Легаси не всегда плохо, но иногда оно складывается из технического долга, который предыдущая команда проекта решила не выплачивать.<\/p>\n<blockquote>\n<p>Никодим жил в безмятежности, пока под полом не завелись тараканы. Дощатый пол скрывал трещины в перекрытиях, через которые тараканы проникли в квартиру и заполнили всё пространство под ламинатом.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Никодим пробовал брызгать, сыпать и ставить ловушки, но помогало слабо. На смену истреблённым тараканам через дыры под полом приходили новые. Заделать дыры уже не представлялось возможным, оставалось искать автоматизированное решение.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Друзья предлагали запустить под ламинат три сотни мухоловок, но они жуткие и непредсказуемые. Поэтому Никодим остановился на леопардовых эублефарах (предположим, что оно так работает).<\/p>\n<\/blockquote>\n<blockquote>\n<p>Эублефары загнали тараканов под ламинат, но потребовали особого ухода. Оказалось, что Никодиму продали одних самцов, которые принялись делить территорию. Пришлось ставить перегородки и рассаживать ящеров по комнатам. Потом оказалось, одни ящеры едят только рыжих тараканов, а другие — чёрных. Никодиму пришлось регулярно менять их местами и бороться со стрессом от смены обстановки: брать на руки, делать домик из ладошек и вот это всё.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Потом Никодим поехал в Арктику изучать паковый лёд, а квартиру оставил на друга Константина. Константин получил целую экосистему с графиком ротации и ящерами, падающими среди ночи на лицо. А чуть позже ЖЭУ обрело сознание и центра&shy;лизованно потравило тараканов во всём доме. С тех пор Константину пришлось следить ещё и за популяцией насекомых, чтобы эублефары не голодали.<\/p>\n<\/blockquote>\n<p>Чтобы приблизиться к масштабу айти-проектов в банках и корпорациях, представим, что таких квартир целый дом. И в каждой свои исторически сложившиеся условия и ограничения. А ещё есть общий чердак и подвал с котельной, топящие друг друга жильцы, лукавые подрядчики и конкурс на звание образцового дома.<\/p>\n<p>Так что будьте терпимее к разработчикам в банках и корпорациях. Им тоже хотелось бы сделать хорошо, но они не могут. Им бы влезть в требования бизнеса и ничего не сломать. И не кормите эублефаров рыжими тараканами, им нужны специальные кормовые.<\/p>\n",
            "date_published": "2022-07-11T01:03:41+05:00",
            "date_modified": "2022-07-11T14:52:33+05:00",
            "_date_published_rfc2822": "Mon, 11 Jul 2022 01:03:41 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "85",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        },
        {
            "id": "84",
            "url": "https:\/\/vitalyfilatov.ru\/all\/complicated-example\/",
            "title": "Сложный способ нарисовать лабиринт",
            "content_html": "<p>Дополнение к заметке <a href=\"https:\/\/vitalyfilatov.ru\/all\/complicated\">о трудных и сложных задачах<\/a>. Посмотрим на примере картинки с лабиринтами, как трудоёмкую задачу можно преобразовать в изобретательскую. Пример не самый наглядный, но я постараюсь показать движение мысли на чём есть.<\/p>\n<blockquote>\n<p>В тексте встречаются вводные <i>Итак<\/i>, <i>Следовательно<\/i> и <i>Очевидно<\/i>. Вы предупреждены.<\/p>\n<\/blockquote>\n<h2>Контекст<\/h2>\n<p>Итак, для статьи мне была нужна иллюстрация с двумя лабиринтами: обычным и линейным, из одного коридора без тупиков.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/073-mazes@2x.svg\" width=\"1480\" height=\"650\" alt=\"\" \/>\n<div class=\"e2-text-caption\">По замыслу лабиринты иллюстрируют мысль, что сложное от трудного отличается обязательным поиском пути к результату<\/div>\n<\/div>\n<p>Лабиринты нужны в одном стиле и размере, но рисовать их весь вечер не хочется. Шансы подобрать готовые картинки нулевые, никому в голову не придёт рисовать лабиринт из одного коридора. Коллеги подсказали поискать генератор лабиринтов, но задать нужный рисунок в них нельзя, так что я решил рисовать сам.<\/p>\n<h2>Задача<\/h2>\n<p>Нарисовать два лабиринта как можно быстрее и проще.<\/p>\n<p>Чтобы не тратить время на постройку обычного лабиринта, можно обвести в Фигме картинку из интернета, но это всё ещё <i>трудная<\/i> задача.<\/p>\n<p>Сначала придётся нащёлкать каждую линию по сетке. Потом я обязательно увижу, что получилось некрасиво, и решу всё переделать. Для этого придётся двигать вершины линий, удалять-добавлять и всячески путаться в куче объектов. Для меня всё это долго и муторно.<\/p>\n<p>Задачу стоит превратить в <i>сложную<\/i>: вместо непосредственного рисования придумать <i>способ быстро нарисовать<\/i> два лабиринта в одном стиле.<\/p>\n<h2>Поиски и решение<\/h2>\n<p>Если рисование каждой линии нас не устраивает, нужно получить рисунок другим способом: автоматизировать, делегировать или придумать какой-то приём. Автоматизировать нечем, искать исполнителя ещё дольше, чем нарисовать самому. Остаётся что-то придумать.<\/p>\n<p>Лабиринты обычно рисуют по прямоугольной сетке. Следовательно, лабиринт — это куча квадратных комнат без одной, двух или трёх стенок.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/074-maze-grid@2x.png\" width=\"556\" height=\"322\" alt=\"\" \/>\n<\/div>\n<p>Далее мысль совершает скачок: что, если не рисовать нужные стенки, а нарисовать вообще все и убрать лишние? Например, сделать ячейку лабиринта из четырёх отдельных линий и выделять ненужные рамкой.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/074-methods-comparison@2x.png\" width=\"441\" height=\"300\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Выделение рамкой требует меньшей точности, чем рисование<\/div>\n<\/div>\n<p>Добавим к методу возможности инструмента. В Фигме стенки ячейки можно объединить в группу, загнать нужное количество ячеек в Auto Layout, получить сетку, а потом всё разгруппировать. Ещё можно закомпонентить лабиринт со всеми стенками и работать с его копиями.<\/p>\n<p>В результате получается метод рисования лабиринта, который не требует точных движений и прощает ошибки. Таким образом, мы не только экономим время, но и снижаем когнитивную нагрузку.<\/p>\n",
            "date_published": "2022-06-24T23:52:24+05:00",
            "date_modified": "2022-06-25T10:53:10+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/073-mazes@2x.svg",
            "_date_published_rfc2822": "Fri, 24 Jun 2022 23:52:24 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "84",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/073-mazes@2x.svg",
                    "https:\/\/vitalyfilatov.ru\/pictures\/074-maze-grid@2x.png",
                    "https:\/\/vitalyfilatov.ru\/pictures\/074-methods-comparison@2x.png"
                ]
            }
        },
        {
            "id": "83",
            "url": "https:\/\/vitalyfilatov.ru\/all\/complicated\/",
            "title": "Трудные и сложные задачи",
            "content_html": "<p>Для борьбы с прокрастинацией я делю задачи на трудные и сложные. Звучит банально, но мне помогает. Метод умещается в три максимы:<\/p>\n<blockquote>\n<p>Если всё понятно, но предстоит много работы, — задача трудная.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Если не понятно, с чего начинать, — сложная.<\/p>\n<\/blockquote>\n<blockquote>\n<p>Для трудной задачи нужна мотивация и запас сил, для сложной — подготовка, план и эмоциональная безопасность.<\/p>\n<\/blockquote>\n<p>А теперь подробнее, с рассуждениями и рекомендациями.<\/p>\n<p><b>Трудные задачи<\/b>, как следует из названия, требуют труда — целенаправленной деятельности, для которой нужно какое-то время напрягаться.<\/p>\n<blockquote>\n<p>Съездить в Москву на машине, разгрузить вагон хрустальных шаров или переделать макеты проекта под другой размер экрана — трудные задачи.<\/p>\n<\/blockquote>\n<p>Трудные задачи в целом понятны: выбираешь метод и делаешь, пока не будет готово. Заранее известно, что именно делать, когда остановиться и что в итоге получится. Остаётся только какое-то время прилагать усилия.<\/p>\n<p><b>Сложные задачи<\/b> требуют поиска и экспериментов. Изначально неясно, как такую задачу решать, сколько она займёт времени или что считать успехом.<\/p>\n<blockquote>\n<p>Сменить имидж после 30, подписать руководство на рефакторинг, нанять контент-стратега или оценить сроки нового проекта — сложные задачи.<\/p>\n<\/blockquote>\n<p>Сложные задачи характерны когнитивным напряжением: голова идёт кругом от множества условий, неизвестных и возможных связей между ними.<\/p>\n<p>Чтобы вам проще было добавить заметку в свой цетелькастен, вот параллель:<\/p>\n<blockquote>\n<p>Трудные задачи можно отнести к простому упорядоченному контексту по модели Киневина. А сложные — к остальным четырём, где всё неочевидно, запутанно, хаотично и беспорядочно.<\/p>\n<\/blockquote>\n<p>Главное отличие сложного от трудного — обязательный поиск пути к результату.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/vitalyfilatov.ru\/pictures\/073-mazes@2x.svg\" width=\"1480\" height=\"650\" alt=\"\" \/>\n<\/div>\n<p>Очевидно, что трудность и сложность — субъективные характеристики. Что тяжело одному человеку, другому привычно и легко. Любителю поездок легко провести сутки за рулём, а опытные руководители проектов оценивают сроки по описанию главной идеи.<\/p>\n<p>Реальные задачи редко требуют только поисков или одной лишь нудной долбёжки. Категории помогают определить, чего в задаче больше и подобрать нужное противоядие от прокрастинации.<\/p>\n<h2>Как решать<\/h2>\n<p><b>Для трудных задач нужны ресурсы<\/b>: силы, время и мотивация. Стоит выспаться, съесть кураги и выделить время с расчётом на перерывы. Мотивацию можно поискать в позитивных изменениях от результата.<\/p>\n<p>Некоторые трудные задачи можно преобразовать: автоматизировать, делегировать или решать как сложные. Например, придумать <a href=\"https:\/\/vitalyfilatov.ru\/all\/complicated-example\/\">способ быстро нарисовать два лабиринта из начала статьи<\/a>.<\/p>\n<p><b>Для сложных нужен метод.<\/b> Вот общий алгоритм:<\/p>\n<ol start=\"1\">\n<li>Подготовиться — собрать всё по задаче, почитать-посмотреть, получить общее представление о предмете и смежных областях.<\/li>\n<li>Декомпозировать — разбить задачу на понятные подзадачи. Если не ясны критерии успеха, поставьте подзадачу по формулировке этих критериев.<\/li>\n<li>Расслабиться — снять завышенные ожидания и обеспечить эмоциональный комфорт. Помогают <a href=\"https:\/\/vitalyfilatov.ru\/all\/stupor\/\">приёмы борьбы со ступором<\/a>.<\/li>\n<li>Сосредоточиться — убрать отвлекашки и сфокусировать внимание.<\/li>\n<li>Работать, отдыхать, переключаться, если не идёт.<\/li>\n<\/ol>\n<p>Собственно всё.<\/p>\n",
            "date_published": "2022-06-11T12:48:45+05:00",
            "date_modified": "2022-06-24T23:57:42+05:00",
            "image": "https:\/\/vitalyfilatov.ru\/pictures\/073-mazes@2x.svg",
            "_date_published_rfc2822": "Sat, 11 Jun 2022 12:48:45 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "83",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/vitalyfilatov.ru\/pictures\/073-mazes@2x.svg"
                ]
            }
        }
    ],
    "_e2_version": 3877,
    "_e2_ua_string": "E2 (v3877; Aegea)"
}