Рассказываем, как устроены подкасты в Медузе https://dev.meduza.io/eff4c68d24f2
будни
Бот @meduzaprobot, указанный на странице http://telebot.agency/ разработан внутри Медузы.
Не знаю, кому и что это «агенство» реально разработало, но мои источники говорят, что бота для Скольково делали тоже не они.
Имейте в виду, совсем уже люди совесть потеряли.
Подкасты Медузы.
2 месяца дизайна, 1 месяц программирования.
Первый проект, в котором:
- мы работаем с большими медиа-файлами (кеш на edge-серверах нашего CDN увеличился почти в два раза) и сохраняем их на клиентах (оффлайн-прослушивание!);
- сделали «богатые» пуши (кнопка play прямо внутри пуш-уведомления!);
- забрали старые выпуски из внешнего сервиса (Simplecast) и импортировали их в собственный бэкенд (и не потеряли статистику по пути);
- сделали свою хитрую бэкенд-статистику, потому что нормальной коробочной статистики в индустрии подкастов не существует в принципе;
- добавили ретину на клиенты (посмотрите на эти прекрасные обложки подкастов);
- позволяем взаимодействовать с материалами прямо с главной страницы, не заходя в них.
Этот список можно продолжать. Это просто самый крупный запуск Медузы на текущий момент. Mobile Web, Desktop Web, Android, iOS, iTunes Podcasts — все платформы поддерживаются в полном объеме.
1 продакт, 2 дизайнера и 8 разработчиков. Магия!
Ilya Krasilshchik Nastya Yarovaya Виктор Ходак
Боря Горячев Anton Byrna Andrey Skopintsev Kirill Balyasnikov Артемий Гарин Max Rovnov Dmitry Zakharov
Вы — лучшие!
Завтра будет обстоятельный пост на medium, как это всё устроено.
Прикольно, как меняются технические аудиты.
Сейчас мы делаем технический аудит и план технического развития бизнесу, которому почти 30 лет. Десятки репозиториев на разных языках, большАя часть логики в сотнях хранимых процедур и триггеров в монолитной MSSQL базе.
За 4 недели архитектор смог разобраться на уровне, который раньше занял бы полгода минимум.
При этом, если раньше мы готовили PDF файлы и схемы, которые читали люди, то теперь мы собираем папку с анализом исходников, папку с анализом базы (один файл на хранимку или таблицу), и так далее. Все зависимости, вся логика проекта — в текстовых описаниях. Ну и файл с описанием, что мы делаем и для чего, конечно. Все это в гите, с контролем версий.
А дальше подключаем этот репозиторий к Claude code и задаем вопросы по проекту: «как устроена логика ценообразования», «на что повлияет изменение параметра Х», реестр рисков и так далее. Ответы проверяют живые инженеры — так мы оцениваем качество нашей базы знаний.
—
Если раньше мы оставляли пусть хорошо и с любовью написанные, но документы и делились пониманием в разговорах, то теперь мы как будто оставляем своего цифрового двойника, который будет продолжать отвечать на вопросы заказчика даже после окончания аудита.
Эту базу знаний будут использовать не только для этого рефакторинга, но и для онбординга новых специалистов.
—
Через 4 недели работы, мой архитектор взял 2 недельный отпуск. Мы дадим свои рекомендации и закончим аудит уже после его возвращения.
Скорость работы увеличилась в разы, но нам, людям, все ещё нужно время, чтобы новые знания уложились в голове. Нужно время, чтобы понимание проросло в нас. Слово «проросло» точно отражает то, что этот процесс нельзя ускорить усиленной работой. Можно только создать условия и не мешать. Раньше это происходило естественно, теперь нужно специально делать перерывы.
—
Раньше я гордился тем, какие четкие, ясные, красивые диаграммы сервисов мы рисуем. Теперь их заменили полностью автоматизированные mermaid схемы. Генеральную схему всего бизнеса таким образом мы пока не нарисовали, она получатся совершенно неудобоваримая. Это ограничение технологий или отражение внутренней сложности бизнеса? Пока что ее нет и у нас в голове, так что это открытый вопрос.
—
Делюсь тремя файлами: Claude_md — общие правила игры для модели, а ещё файлы с целями и принципами этого аудита.
Про совпадения.
Прямо сейчас Серебреников в наручниках в зале суда в Москве. Медуза ведет онлайн.
За 5 минут до начала трансляции что-то происходит со связностью между Lattelecom и Amazon (пару минут всё отлично, пару минут пакеты не ходят совсем). Редакция замечает это, в первую очередь, по недоступности Slackа.
Мы переключаем uplink на резервный LTE-роутер от LMT (латышский аналог МТС). Всё хорошо, пока редакторы не пытаются зайти на HTTP-сайты (смотрю нехорошим взглядом на tass.ru и interfax.ru). Происходит мистический 302 редирект на 192.168.8.2, который не грузится. Времени на поиск причины нет, решаем заплаткой с Chrome Data Saver (де-факто, VPN).
Оказалось, что LTE-роутер хочет обновить прошивку, делает DPI HTTP-сессий (но не HTTPS) и заменяет ответ сервера на 302 редирект. Из-за того, что таких запросов много — его веб-сервер не выдержал и ничего не отдавал. Одна из редакторов оказалась достаточно терпеливой, чтобы дождаться загрузку админки, я кликнул там «не сообщать об этом больше» и проблема решилась окончательно.
Прямо сейчас редакция работает через LTE-точку и это довольно магически. Насколько же это крутая технология, что офис из более чем 20 человек может спокойно пользоваться uplink обычного бытового LTE-модема.
Ах да, только что мой провайдер написал, что изменил роуты и всё должно стать ок, но я, пожалуй, дождусь конца трансляции.
Провели сегодня мега-совещание про работу разработки с дизайнерами. Покажу вам, какое письмо я разослал по окончании встречи.
Размер и сложность продукта растет, старые процессы уже не выдерживают. Копится недовольство с обоих сторон и вообще, нужно было поговорить.
Резюме совещания:
про макеты:
- постепенно создаем один мастер-макет, в котором отрисованы все форматы медузы и в который добавляются новые, перестаем использовать отдельные маленькие макеты как источник правды;
- с помощью этого мастер-макета постепенно уменьшаем количество разных элементов, выносим все общие элементы в стайлбук;
- если в новых форматах есть неочевидные моменты (заголовок изменился на 1 пункт, так просто не заметишь) — указываем эти комментарии прямо рядом элементом, на полях артборда;
- этот мастер-макет храним в версионированном хранилище с возможностью просмотра диффов и автоматическими уведомлениями о правках (скорее всего github + скетч-плагин, но если найдем хороший SaaS — то вполне может и на него сядем);
про совместную работу:
- задача разработчиков — в процессе разработки (чем раньше тем лучше, идеально во время приемки) найти недорисованные/недодуманные моменты и сказать о них дизайнеру. Например, если не учтена ситуация, когда одно из полей пустое — не очевидно, какие отступы делать в этом случае. Дизайнер дорисует эти кейсы и/или добавит в макет комментарий, объясняющий логику;
- если что-то очень сложно сделать на платформе (белая тень, хитрый блюр, etc.) — обсуждаем это с дизайнером. Что нужно в разговоре? 1) объясняем что именно сложно сделать и почему 2) предлагаем решение, как вы думаете можно упростить/сделать по другому 3) приходим вместе к компромиссу. Никто не требует делать безумные хаки, которые дорого поддерживать и которые ломаются с апдейтом чего-нибудь. Все мы хотим классный продукт и дизайнер мог просто не знать/забыть о платформо-специфичной вещи;
- вывод: Не стоит допридумывать то, что не описано/не нарисовано. Нужно договариваться. Молча делать отлично от макета запрещено;
В заключение: разработчики — полноценные члены продуктовой команды. Думайте о продуктовых фичах, задавайте вопросы, предлагайте идеи. Не все они будут реализованы, часть задвинем в дальний ящик и никогда до них не доберемся. Это нормальный рабочий процесс — то же происходит с идеями редакции, дизайнеров и даже Ильи. Мы (разработчики) обладаем уникальным знанием того, как это всё будет реализовано в конечном счете. Без нашего участия сделать классный продукт невозможно.
Теперь о том, где, как и с кем это всё обсуждать.
1. О каких-то мелких непониманиях по дизайну стоит писать в личку Насте, Вите и Насте; можно созвониться-пошарить экран и тд, если текст не решает;
2. О крупным вещах, которые хочется обсудить с командой и с дизайнерами — пишите прямо в #dev или в проектный канал типа #dev-prodano
3. Если это тема в проектной работе, которая требует осмысления и обсуждения — круто завести для неё карточку в трелло-доске проекта и заменшенить в комментарии всех причастных. В трелло обсуждения не теряются и можно посмотреть толком историю переписки по конкретному вопросу.
Воспользуюсь случаем и напомню, что текущие проекты, предстоящие задачи и icebox (то, что хочется сделать, но хз когда) можно посмотреть в доске «проекты разработки» — он открыт для всех, изучайте и дополняйте, пожалуйста.
-----
А как вы строите работу дизайнеров с программистами? Делитесь в @ctodailychat, интересно послушать ваши истории.
Этот блог называется запуск завтра, а у нас на самом деле завтра запуск самого крупного проекта Медузы so far.
Приложения в сторах раскатываются по читателям, письмо рассылки сверстано. Осталось сделать импорт записей из одной внешней системы в наш собственный бэкенд и влючить ручку API.
Каждый запуск — как экзамен в универе, перед ним страшно, даже если всё приготовил и знаешь предмет 🙈
Нанимаем рубистов для клиента — в Вебиум, платформу онлайн обучения для школьников, и идет туго: сложнее, чем обычно, хотя с рубистами и раньше было не просто. А вакансия-то — конфетка: проект новый, без легаси, работающий бизнес с благодарными клиентами и классной командой, зарплата до 350 и тд и тп. Обсудил с парой знакомых и все в один голос говорят, что это из-за сбермаркета: «они мидлов по 400 тысяч набирают (400тр в месяц), пылесосят рынок как не в себя». Живите теперь с этим знанием 🤯
Второе наблюдение чуть более общее — до коронавируса мы с Федей указывали удаленку как своё конкурентное преимущество. Теперь, из-за коронавируса, удаленка стала новой нормой, причем больше на западе, чем в России. И конкурировать порой приходится со стартапами из Штатов и Израиля, где зарплата в 8 тысяч зеленых в месяц за крепкого мидла — не редкость 💸
Придется придумывать новые конкурентные преимущества, до которых корпораты и стартапы пока не дотянулись и вряд ли дотянутся. Пока думаем об асинхронности и о том, что с нами не нужно сидеть в слеке 24/7, а можно делать «глубокую работу». Людей, которые понимают ценность такой культуры меньше, чем тех, кто уважает удаленку — нужно лучше объяснять и продавать. Радует, что такие люди есть, а нам не нужно много, так что, надеюсь, ещё не всё потеряно 🚀 Если пишете на питоне, рубях или жаваскрипте и любите работать по своему расписанию, четко и без горячки — пишите Феде на [email protected]



