Как стать автором
Обновить
64
0
Гаянэ Довгаль @gayka_m8

IT editor

Отправить сообщение

Kodein DI для Android. Основы API

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.7K

Android разработчики обожают DI. Куда ни посмотри, куча статей и выступлений про Dagger 2, Hilt или Koin, но очень мало про Kodein. Даже на Хабре всего пару неплохих статей, но и те от 2018 года. Но с тех пор Kodein бурно развивался, и вышло много мажорных версий, API значительно изменился.

Мы используем Kodein в приложении Drinkit и успели прочувствовать на себе плюсы и минусы этого инструмента. Я расскажу, как пользоваться Kodein, как у него дела со скоупами и многомодульностью.

Итак, погнали
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Деврел — не человек, или Все мы немножко деврел

Время на прочтение10 мин
Количество просмотров5.2K

На Хабре уже писали, кто такие деврелы, и не кто-нибудь, а одна из топ-деврелов русскоязычного пространства Женя Голева. Рекомендую сначала заглянуть в статью Жени, а потом продолжать читать, если вдруг вы вообще ничего не знаете про деврел. В целом понятие относительно новое, в СНГ — уж тем более, и из-за нашей локальной специфики окутанное ложными представлениями, тайнами, мифами и легендами.

Меня зовут Вероника Ильина, я Head of Developer Relations в Dodo Engineering уже почти два года. И я очень люблю «Разрушителей мифов». Так что в этой статье пройдусь по популярным мифам, живущим в головах разработчиков, эйчаров, бизнес-заказчиков деврелов и самих деврелов.

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

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

Как впилить Allure TestOps в свой проект, если ты простой тестировщик

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров19K

В прошлом году нашей QA-команде нужно было интегрировать Allure TestOps в проекты. До этого никто из нас этим не занимался, но вместе разобрались и сделали. Я осознал, что в одиночку потратил бы на это очень много времени или вообще бы не разобрался, потому что инструкции, как это сделать, не было. Поэтому написал свою, в надежде, что она будет полезна тем, кто окажется в такой же ситуации.

В общем, если вы тестируете бэкенд на .NET, а для сборки проектов используете GitHub Actions и хотите внедрить Allure TestOps — эта инструкция для вас.

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

3 примера, в которых доступность помогла заработать денег, подсветить ошибки и решить споры

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.5K

Первое, что люди спрашивают про доступность: а может ли она принести денег, ведь там немного пользователей? Популярное искажение в том, что они выделяют одну группу (ну сколько там незрячих на миллион?) и не оценивают картину в целом (45% на iOS и 59% на Android включают хотя бы одну настройку доступности).

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

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

Читать далее
Всего голосов 11: ↑10 и ↓1+13
Комментарии8

Первому курьеру приготовиться: как мы проверяли систему автоназначения заказов в пиццериях

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.7K

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

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

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

Чеки, налоги, разные страны: как их «подружить» на уровне разработки

Время на прочтение11 мин
Количество просмотров3K

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

У Додо Пиццы уже больше 890 точек в 17 странах, везде используется платформа Dodo IS. В большинстве случаев нужно передавать данные о каждом чеке в налоговую с первого дня работы, чтобы сразу же не закрыться от штрафов. Поэтому задача интеграции нашего ПО с местным налоговым ПО для нас одна из самых важных при запуске новой страны.

Меня зовут Дима Карпов, я продакт‑оунер в команде, которая занимается кассами, чеками и всем, что связано с оплатами в ресторанах. В статье расскажу, как мы решаем описанную выше задачу так, чтобы ни один бизнес и разработчик не пострадал.

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

Делай нейминг как сеньор

Время на прочтение13 мин
Количество просмотров119K

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

Как получается, что код становится мало понятным даже для его авторов? Почему нейминг так важен? Как придумывать названия, не применяя целые теории нейминга? Как лёгким процессом организовать работу с неймингом в команде? На все эти вопросы мы ответим в статье.

Читать далее
Всего голосов 148: ↑146 и ↓2+182
Комментарии221

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

Время на прочтение16 мин
Количество просмотров29K

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

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

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

Читать далее
Всего голосов 127: ↑125 и ↓2+157
Комментарии106

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

Время на прочтение5 мин
Количество просмотров4.5K

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров15K

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров11K

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

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

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

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

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

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

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

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

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

Время на прочтение9 мин
Количество просмотров8.7K

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

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

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

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

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

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

Время на прочтение6 мин
Количество просмотров1.8K

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

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

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

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

Время на прочтение10 мин
Количество просмотров10K

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

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

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

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

Время на прочтение4 мин
Количество просмотров3.1K

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

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

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

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

Время на прочтение10 мин
Количество просмотров9.2K

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

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

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

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

Время на прочтение9 мин
Количество просмотров6.9K

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

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

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

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

Время на прочтение8 мин
Количество просмотров5.7K

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

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

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

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

Никогда не приоритизировали, а тут приспичило: как появился Dodo Score

Время на прочтение6 мин
Количество просмотров2.9K

В статье расскажем, что такое Dodo Score и почему у нас появилась потребность в сквозной приоритизации задач. Будем рады, если наш опыт поможет вам прокачать скилл делать только самое ценное или приведёт к мысли, как улучшить тот фреймворк, который вы используете.

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

Был excel — стал ML: как мы расход ингредиентов учились прогнозировать

Время на прочтение10 мин
Количество просмотров5.7K

Прогнозирование закупок и расхода ингредиентов — часть работы управляющего любым рестораном, которая может занимать несколько часов в неделю. Мы в Dodo Engineering задумались, как можно помочь и автоматизировать рутину, при этом улучшить качество прогноза.

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

Поехали!
Всего голосов 43: ↑29 и ↓14+20
Комментарии4

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность