Как стать автором
Обновить
Dodo Engineering
О том, как разработчики строят IT в Dodo
Сначала показывать

Микровселенная безумия, или Как устроены микрофронтенды в Dodo

Время прочтения 10 мин
Просмотры 1.8K
Блог компании Dodo Engineering Разработка веб-сайтов *ReactJS *
Обзор

«Микрофронтенды в компании, которая доставляет пиццу? Серьёзно? Зачем? Да и куда? У вас же всего лишь приложенька с каталогом и заказом товара. Какие ещё микрофронтенды?»

Одно из самых распространённых заблуждений о том, что в Dodo до микрофронтендов не доросли. Но сегодня я постараюсь его развеять и рассказать, как мы докатились до такой жизни и какой путь при этом был пройден. Усаживайтесь поудобнее, мы начинаем наш рассказ.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 6

Новости

4 часа недоступности: постмортем падения Dodo IS

Время прочтения 16 мин
Просмотры 22K
Блог компании Dodo Engineering Программирование *Управление разработкой *IT-компании

Вечером пятницы 23 сентября, в самое «горячее» время для Додо Пиццы, развалилась платформа Dodo IS. Приём заказов превратился в тыкву, клиенты и пиццерии 4 часа испытывали проблемы. Это было наше самое крупное падение с 2018-го года как в техническом плане, так и по недополученной выручке.

Особенная боль — то, что мы упали в прайм-тайм. Наш бизнес устроен циклично и зависит от сезона: осенью заказов больше, чем летом, а по вечерам пятницы больше в несколько раз, чем в утром вторника. Обычно пик заказов приходится на вечер пятницы (с 16 до 20 по Москве). Это время — самое напряженное для системы и самое ценное для бизнеса.

У Dodo IS произошёл каскадный сбой и мы долго не могли реанимировать систему. В этой статье делимся постмортемом инцидента: разберём причины, опишем действия по устранению и расскажем о действиях, которые позволят избежать таких падений в будущем.

Читать далее
Всего голосов 156: ↑154 и ↓2 +152
Комментарии 105

Как устроены интернет-платежи в Dodо

Время прочтения 25 мин
Просмотры 6.8K
Блог компании Dodo Engineering Платежные системы *API *Управление разработкой *
Обзор

Одно из направлений разработки в Dodo — интернет-платежи. Для компании это скорее утилити-функция, чем основной бизнес, но всё же нам приходится делать кучу всего, чтобы дать клиентам лучший UX и у нас накопился опыт, которым хочется поделиться.

Меня зовут Дмитрий Кочнев, я разработчик в команде интернет-платежей и в этой статье расскажу о том, какой путь проделала компания в этом направлении, какое положение дел сейчас и какие планы. Статья написана в формате мини-историй, каждая из которых может стать отдельной статьёй с большим количеством подробностей, если к ней возникнет интерес с вашей стороны.

Читать далее
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 14

Логи в iOS, эпизод 3: BlackBox

Время прочтения 7 мин
Просмотры 1.6K
Блог компании Dodo Engineering Разработка под iOS *Разработка мобильных приложений *
Туториал
✏️ Технотекст 2022

В 2019 году я устроился в Додо Пиццу. В первую же неделю я спросил у ребят, как они логируют происходящее в iOS-приложении у клиентов и узнал, что никак.

Я удивился и понял, что у меня нет абсолютно никакой уверенности, что приложение Додо Пиццы работает как было задумано. А ещё мне прям вот ну интересно было как логируют «большие взрослые дяди»: перед Додо я работал над небольшими проектами, где было не до логов, так что опыта у меня не было.

Итого: клиентских логов нет, а неопределённость и интерес остались. Значит надо сделать систему логов самому. Ну я и сделал. А это — история появления и развития логов в iOS-приложении Додо Пиццы.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 2

Изморозь на пицце: делаем новогоднюю анимацию в Android-приложении

Время прочтения 5 мин
Просмотры 2.8K
Блог компании Dodo Engineering Разработка мобильных приложений *Разработка под Android *
Туториал
✏️ Технотекст 2022

Всем привет! Новый год уже близко, а значит, самое время добавить новогодней атмосферы.

Мы в Dodo стараемся сделать приложения в первую очередь качественными, но и не забываем добавлять интересных фич для наших любимых клиентов. Так, например, мы создали анимацию «Летающая Пицца», а в канун Нового года решили сделать праздничную зимнюю анимацию под названием «Изморозь».

В статье поделюсь этим опытом и расскажу, как за несколько шагов сделать стираемую с экрана анимацию и в вашем приложении.

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 6

ChatGPT написал Android-приложение

Время прочтения 11 мин
Просмотры 60K
Блог компании Dodo Engineering Разработка мобильных приложений *Разработка под Android *Искусственный интеллект
✏️ Технотекст 2022

Вчера чат-бот с искусственным интеллектом ChatGPT написал за меня Android-приложение! Это очень примитивное приложение, но оно компилируется, запускается и работает. Но как он это сделал? С первой попытки или пришлось долго сидеть и мучить его?

Сейчас расскажу!

Читать далее
Всего голосов 107: ↑104 и ↓3 +101
Комментарии 247

Решительность в IT: решает тот, кто делает

Время прочтения 5 мин
Просмотры 13K
Блог компании Dodo Engineering Управление разработкой *Карьера в IT-индустрии

Вам приходилось ходить на встречи, на которых 10 или более человек никак не могли договориться? Такое может быть и с архитектурными, и дизайн-решениями, и  процессами. Нам в Dodo приходилось. Это может быть мучительно больно и выматывающе, поэтому хочу поднять тему решительности или «куража», как это называется в экстремальном программировании.

Почему я? Когда-то давно, когда я ещё не была техлидом, я заметила, что у нас есть проблема с глобальными процессами. От этого страдали все, и я в том числе. В конце концов страдать мне надоело, поэтому я решилась изменить что-то хотя бы в собственной команде. И мне это удалось. Хочу поделиться опытом и рассказать о одном принципе, который помог мне тогда и помогает по сей день.

У меня есть правило: «решает тот, кто делает». В принципе, статью на этом можно было бы заканчивать.  Но я расскажу о паре тонкостей этого правила и приведу примеры.

Читать далее
Всего голосов 48: ↑42 и ↓6 +36
Комментарии 32

Как подключить российский SSL-сертификат к iOS-приложению

Время прочтения 5 мин
Просмотры 5.6K
Блог компании Dodo Engineering Информационная безопасность *Разработка под iOS *Разработка мобильных приложений *

Одна из санкций, которая досталась России, — запрет на выдачу и продление SSL-сертификатов. Это приводит к тому, что у некоторых компаний сертификат может протухнуть и сайты перестанут открываться.

Основных решений два:

Использовать российский Яндекс.Браузер или Атом.

Поставить на компьютер сертификат или профиль от минцифры.

Для мобильных приложений это превращается в особую проблему — могут перестать проходить платежи разных эквайрингов.

Например, 15 февраля 2023 года у Сбера истечёт действие сертификата и надо переходить на самоподписанный. Если этого не сделать, то эквайринг через Сбер может перестать работать. SberPay будет работать как и раньше.

В статье покажу, что делать разработчикам приложений, чтобы экраны c 3-D Secure открывались и эквайринг продолжал работу.

Читать далее
Всего голосов 20: ↑14 и ↓6 +8
Комментарии 20

Какие проблемы решает Release Train в мобильной разработке

Время прочтения 9 мин
Просмотры 3.3K
Блог компании Dodo Engineering Разработка мобильных приложений *Управление разработкой *Управление проектами *

Влияет ли размер приложения и команды на то, как мы его релизим? Давайте представим себе стартап. Проект и команда небольшие. В этом случае обычно не задумываешься о процессе релизов: сделал фичу — зарелизил.

А теперь представим большой проект, например, какое-нибудь банковское приложение, над которым работает много команд. Тут мы понимаем, что наверняка есть процесс, релизные циклы, «бюрократия». Без этого будет хаос. Но где то место, когда становится ясно, что пора такой процесс настраивать и у себя?

В этой статье расскажу, что при росте приложения Додо Пиццы стало для нас отправной точкой и заставило внедрить Release Train. В конце поделюсь результатами, помогло ли это.

Если ваш проект растёт, или вы по другим причинам часто спотыкаетесь в работе при релизе приложения, то надеюсь, что наш опыт пригодится и поможет эти проблемы решить.

Погнали
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 6

Обзор клавиатуры из половинок. Keyboard Model 100

Время прочтения 7 мин
Просмотры 7.7K
Блог компании Dodo Engineering Гаджеты Компьютерное железо Периферия

3 года назад я загорелся тем, что хочу эргономичную клавиатуру. Готовых вариантов было немного, Keyboard Model 1 оказалась одной из них, но была слишком дорогой. И тут её переиздают на кикстартере, где собирают почти миллион долларов. Страдаю, жду полтора года производства и вот она у меня.

Много фото и подробный обзор
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 28

Продуктовый подход в урбанистике: что если продакты будут отвечать за обустройство своего района

Время прочтения 6 мин
Просмотры 1.4K
Блог компании Dodo Engineering Управление проектами *Управление продуктом *

Три года назад я стала продактом. Это приучило меня мыслить в таких понятиях как ЦА и пользовательские сегменты, JTBD, считать метрики и оценивать профит от всего. А ещё легализовало мои мысли о дизайне UX и о том, как можно выпрямлять пользовательские пути в разных сферах жизни человека.

Год назад я завела собаку. С тех пор я много гуляю и ещё больше думаю. Я даже захотела завести телеграм-канал, который назвала бы «Алёна гуляет с Лисёной» и писала бы туда свои мысли с прогулок. Но вместо этого снова ушла гулять, думать и вот до чего додумалась.

Вот бы продакты обустраивали свой район
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 15

SRE: как его понимают бизнес и разработчики

Время прочтения 6 мин
Просмотры 2.2K
Блог компании Southbridge Блог компании Dodo Engineering IT-инфраструктура *Карьера в IT-индустрии

В сентябре Антон Скобин, коммерческий директор Слёрма, записал два выпуска подкаста «Манул Слёрма» с Олегом Блохиным, лидером инфраструктурной команды Dodo Engineering. Поговорили о том, как выстраивается работа SRE-команд, какие функции они выполняют и в чём профит от SRE для бизнеса. В этой статье поделимся главными мыслями этой беседы.

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 1

История о том, как мы монолит с .NET Framework на .NET 6 и Kubernetes переводили

Время прочтения 10 мин
Просмотры 7.9K
Блог компании Dodo Engineering Анализ и проектирование систем *.NET *IT-инфраструктура *Управление разработкой *

В 2011 году 2 разработчика начали создавать свою информационную систему, чтобы через неё принимать заказы в Додо Пицце. 2 года назад мы рассказывали про раннюю архитектуру Dodo IS здесь и здесь. За это время монолит нашей системы пережил немало изменений, самое значительное произошло в этом году — мы перевели его весь на .NET 6 и переехали в Kubernetes. Переход оказался непростой задачей и длился в общей сложности год.

В этой статье поделимся деталями этого масштабного проекта, расскажем об особенностях монолита, которые усложняли переход, и об улучшениях, которые избавили от многих болей наших разработчиков.

Читать далее
Всего голосов 38: ↑38 и ↓0 +38
Комментарии 19

Откуда возникает TransactionTooLargeException, если я ничего такого не делал?

Время прочтения 9 мин
Просмотры 3.3K
Блог компании Dodo Engineering Разработка мобильных приложений *Разработка под Android *

Android-разработчиков часто спрашивают на технических собеседованиях, как запускать фрагменты, как передавать туда данные, почему нельзя класть много в аргументы, а много — это сколько, а что может пойти не так и т.д. Мы в Dodo тоже иногда такие вопросы задаём. Я думал, что понимал всё это, но оказалось, что довольно поверхностно. Всё изменилось, когда я столкнулся с частыми крашами TransactionTooLargeException в приложении Дринкит.

TransactionTooLargeException — это исключение из области IPC-вызовов (interprocess communication) и Android Binder. Но его можно получить в безобидной ситуации, когда, казалось бы, мы ничего такого не делали, и не пользовались IPC.

В этой статье предлагаю разобраться с этим крашем и поговорить про IPC-вызовы и Binder.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 2

Логи в iOS, эпизод 2: os_signpost

Время прочтения 4 мин
Просмотры 2.1K
Блог компании Dodo Engineering Программирование *Разработка под iOS *Разработка мобильных приложений *
Туториал

В какой-то момент разработки вашего приложения вы получаете обратную связь от пользователей: при нажатии на кнопку, например, «Выбрать адрес», ваше приложение сначала на пару секунд подвисает, а уже только потом показывает экран со списком адресов. Специально никто медленный код не писал, но он откуда-то где-то возник.

Сегодня расскажу, как Apple предлагает решать эту проблему с помощью логов.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 0

Логи в iOS, эпизод 1: os_log

Время прочтения 5 мин
Просмотры 4.2K
Блог компании Dodo Engineering Программирование *Разработка под iOS *Разработка мобильных приложений *
Туториал

Представьте, что вы садитесь делать новый проект для iOS/iPadOS/macOS/tvOS/watchOS. Совсем скоро сталкиваетесь с первым багом и, чтобы его понять и исправить, добавляете логи — вызываете print() тут и там. Баг исправили и часть логов убрали, а часть оставили на будущее — полезные, ещё пригодятся.

Спустя пару месяцев работы над проектом консоль в Xcode превращается в водопад из логов. В них сложно разобраться и в них невозможно ориентироваться. Вы принимаете это как данность и в новые логи для удобства добавляете какие-то маркеты по типу "----->" или ещё что-нибудь в этом духе — так их можно будет различить в бесконечном потоке.

Но это работает ровно до тех пор, пока не перестаёт. В этот момент вы не выдерживаете и чистите большую часть бесполезных, по вашему мнению, логов, случайно зацепляя вместе с ними и полезные. Теперь у вас остались какие-то логи, которые что-то показывают. Какова их ценность — не ясно.

В этой статье расскажу, как Apple предлагает решать такую проблему.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 4

Анимации и вибрации: как задизайнить фидбэк слайдера оплаты

Время прочтения 10 мин
Просмотры 7.1K
Блог компании Dodo Engineering Программирование *Разработка под iOS *Разработка мобильных приложений *Дизайн мобильных приложений *
✏️ Технотекст 2022

Кофе — продукт, который можно покупать и пить несколько раз в день. Заказ в приложении Дринкит должен быть супер-пупер быстрым. В идеале, чтобы можно было даже не запускать его, а заказывать из виджета на домашнем экране.

Мы ускоряли оплату разными способами. Сначала сделали кнопку прямо в меню, но столкнулись с проблемами и решили переделать её на слайдер. Процесс оказался необычным с разных сторон, поэтому хотим подробно рассказать о нём: почему переделывали, как проектировали, зачем нужны вибрации и как с ними работать, в каком контексте живёт слайдер и о чём со стороны доступности надо подумать, чтобы сделать его удобным для всех.

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 24

Быстро и дёшево: проверяем сложную гипотезу без разработки за три дня

Время прочтения 11 мин
Просмотры 5K
Блог компании Dodo Engineering Управление проектами *Управление продуктом *Читальный зал

В прошлом году я прочитал книгу «Спринт. Как разработать и протестировать новый продукт всего за пять дней». Это книга-методичка, в которой описывается быстрый и проверенный формат тестирования идей — дизайн-спринт. Авторы рекомендуют выбирать рискованные и дорогие в разработке гипотезы, которые могут быть потенциально перспективными.

Захотелось попробовать этот фреймворк, но в продуктовой разработке подобные задачи попадаются довольно редко. И когда подходящая идея у нас появилась, я предложил проверить её способом, описанным в книге. Это был двойной эксперимент: с одной стороны, возможность протестировать формат дизайн-спринта и понять, можно ли его использовать для наших гипотез, с другой — проверить саму гипотезу.

В статье фокусируюсь на самом подходе и расскажу, как мы проводили эксперимент, о наших впечатлениях, инсайтах и ошибках. Поделюсь выводами, насколько фреймворк хорош для быстрого тестирования идей в продуктовой компании. Если вы тоже приглядываетесь к нему — заглядывайте под кат.

Читать далее
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 4

Как сменить базу данных, если у вас Entity Framework

Время прочтения 9 мин
Просмотры 5.2K
Блог компании Dodo Engineering MySQL *.NET *Microsoft SQL Server *Администрирование баз данных *
Туториал

Entity Framework — это удобный фреймворк для работы .NET-приложения с базой данных. По сути, это такая удобная абстракция над БД, которая сама пишет за разработчика оптимальные (ну, почти) SQL-запросы прямо из высокоуровневых LINQ-конструкций. Одной из киллер-фич фреймворка является возможность относительно легко сменить СУБД приложения на какую-нибудь другую. Предположим, разочаровались вы в MySQL или, наоборот, хотите сменить MSSQL на что-то менее дорогое — пожалуйста, EF как абстракция над СУБД в теории может это предоставить, так сказать, by design.

Проблема в том, что в мире бизнес-разработки СУБД меняют лишь по очень большой нужде, а потому редко кто уже сталкивался с данной фичей EF на практике, но вот мне такая возможность выпала. Поэтому я решил написать небольшой гайд, как это выглядит в реальности, чтобы у вас была возможность оценить применимость данной фичи, если вдруг это понадобится.

Читать далее
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 15

Как я начал писать симулятор распределённой системы, а закончил WebAssembly

Время прочтения 8 мин
Просмотры 5.1K
Блог компании Dodo Engineering Python *Программирование *Разработка игр *Распределённые системы *

Несколько месяцев назад мне захотелось сдуть пыль со своего аккаунта в Steam и поиграть в старые игры про программирование.

While True Learn в очередной раз показалась слишком скучной, я пару дней позалипал в TIS-100, реализуя свой многопоточный процессор, но в конечном итоге осознал, что интереснее не играть в игры про программирование, а самому писать такие игры.

В статье рассказываю, что из этого получилось и на чём я сломался. Под катом —гремучая смесь из ссылок, картинок, теории распределённых систем и способов визуализации Python в 2022 году.

Читать далее
Всего голосов 46: ↑35 и ↓11 +24
Комментарии 10

Информация

Сайт
dodo.dev
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
Schvepsss