Рассказываем, как устроены подкасты в Медузе 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, как это всё устроено.
Про совпадения.
Прямо сейчас Серебреников в наручниках в зале суда в Москве. Медуза ведет онлайн.
За 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.
Каждый запуск — как экзамен в универе, перед ним страшно, даже если всё приготовил и знаешь предмет 🙈
Рассказываем, как переписали почти всё Android приложение и что из этого вышло (для программистов).
Спойл: статьи открываются быстрее, крешится меньше, программировать проще.
Ура Андроиду!
Обещал — рассказываю: «как я передал должность техдира Медузы».
Шутили вчера с женой, что Боря заведет свой тг-канал и выпустит дисс «как Самат нас бросил, или не всё так радужно» 🙈
Раньше сайт Медузы грузил шрифты так, что текст прыгал на доли секунд при загрузке страницы. Это было нежелательным побочным эффектом оптимизации сайта для мобильных читателей, которые попали на Медузу впервые. «Прыжки» подбешивали внимательную аудиторию в десктопе.
Мы переработали схему. Теперь, при первом открытии сайта показываются системные шрифты, а при всех следующих заходах — наши. Без каких-либо дерганий.
Оптимизация веба для скорости — бесконечно большая и интересная тема. Мы пока выбираем 80% процентов профита, достигаемые первыми 20% труда.
Очень крутая панк-верстка у Блумберга, обратите внимание на скроллбар https://www.bloomberg.com/features/2017-best-books
У нас есть формат слайды https://meduza.io/slides/chetvertyy-sezon-chernogo-zerkala-treylery-vseh-seriy , но они менее радикальные
