Dodo Engineering
Kanalga Telegram’da o‘tish
3 805
Obunachilar
-224 soatlar
+57 kunlar
+1130 kunlar
Postlar arxiv
3 805
К чему приводят статьи про доступность
Примерно пару лет назад наши iOS-разработчики Миша Рубанов и Лёша Берёзка стали писать статьи. И некоторые из них — про доступность приложений для людей с проблемами зрения.
И к чему их это привело?
К тому, что Мишу и Лёшу пригласили как экспертов провести несколько лекций про доступность мобильных приложений на курсе Валерии Курмак про цифровую доступность. На курсе были разные специальности: и iOS, и фронтенд, и дизайн. Компании тоже были разные, например, wrike или mоs.ru.
Миша и Лёша рассказали 6 часов материала лекциями по 2 часа (с перерывами). На некоторых было около 40 слушателей за раз (из 80 на курсе). Подготовка заняла примерно 2,5 месяца по вечерам — вышло 500 слайдов. Пара из них на картинке.
Материал ещё пригодится для ещё одного потока в будущем, и ещё одного проекта, о котором расскажем позже (интрига!).
Лекции иллюстрировали на примере наших приложений, поэтому не удивляйтесь если услышите «Додо» и «доступность» в одном предложении.
3 805
«Куберпанк» — мир будущего, где все работает через Kubernetes
В феврале мы переехали на Kubernetes. Он готов принимать кассу доставки, трекер, мобильное API, платёжный шлюз и даже легаси-фасад. В феврале прошлого года мы начали проект Production Ready Kubernetes по переезду. Планировали управиться за 3 месяца, и, как видите, переехали через год.
Переездов было много — между кластерами, доменами, механизмами выдачи сертификатов. Да ещё не обошлось и без крупных падений, например, сайт упал на час в первую неделю жизни на k8s из-за необычного поведения Azure.
Но неудобства можно и потерпеть ради преимуществ.
— Экономия: не платим за лицензии на Windows на виртуалках, лучше утилизируем ресурсы и делаем автомасштабирование ночью.
— Надёжность: можем автоматически подстраиваться под внешнюю нагрузку, переживать недоступность виртуальных машин, бесшовные релизы.
— Удобство: он должен стать нашей платформой по-умолчанию.
Отдельная благодарность нашим разработчикам и SRE за то, что вывезли масштабный проект!
3 805
Раз уж мы начали говорить про «долгожителей» (в подкасте), то интересно узнать сколько «долгожителей» среди нас. Сколько лет работаете на текущем месте?
3 805
Тёплый плед СКБ Контур
Гость подкаста: Света Аюпова из СКБ Контур. Света находит и проверяет новые бизнесы для Контура. Как-то так получилось, но Света нас убедила, что СКБ Контур — идеальное место для работы. В компании:
— Хорошие руководители, многие из которых работают в компании по 10 лет (как и большинство сотрудников).
— Равенство всех сотрудников на деле, а не на словах.
— Атмосфера как в казантипе, но без вот этого всего.
— Люди не уставшие, лица не серые.
— Все рано уходят домой.
— Много доверия, которое помогает быстро принимать решения.
Как следствие, в компании малая текучка. Многие работают по 5-10-15 лет (шёпотом: «И даже больше...») Если кажется, что так можно «закостенеть», то нет — ведь можно расти внутри. Для примера — руководитель Светы пришёл из техподдержки. Так что вроде всё хорошо...
Об этом и многом другом — в подкасте. Ведут: Борис Гулай и Антон Савченков.
Слушайте подкаст здесь:
Buzzsprout
SoundCloud
Apple Podcasts
Google Podcasts
Яндекс. Музыка
ВК
3 805
«Включаем» автоматизацию разработки приложений для Китая
Недавно мы закончили долгую работу над приложением для WeChat, через которое мы получаем заказы в наших пиццериях в Китае. В планах у нас похожее приложение для Alipay. Но если они похожи, то почему бы не «включить» автоматизацию, чтобы не делать одну и ту же работу снова? Отличная идея, именно поэтому Артём Казаков, наш разработчик (что работал над mini-app для WeChat), так и сделал:
— переписал сборщик на webpack, чтобы код на WeChat автоматически превращался в сборке в код, который понимает Alipay;
— настроил управление билдом приложения и снизил порог вхождения, чтобы любой фронтендер, который пришел в проект Китая в Додо с легкостью смог погрузиться в него.
В результате, разрабатывая одно приложение, мы получаем два!
«Официальная» часть закончилась — теперь технические подробности.
Настройку управления билдом мы решили за 10 недель — переписали сборщик на webpack (версии 4.4) с использованием TypeScript 3.9. Размер билда уменьшился почти в 2 раза, писать код стало проще — теперь код на TypeScript с поддержкой типов, чего очень не хватало в начале проекте, и всем знакомый SCSS. Убрали большое количество легаси, подправили основные части приложения и само мини-приложение WeChat стало работать быстрее.
Для второй задачи внесли несколько изменений в сборщике:
— Alipay принимает в верстке названия компонентов только в виде page-with-tabbar, поэтому заменили camelCase названия всех компонентов.
— Структура файлов Alipay и WeChat одинакова, однако расширения у файлов отличаются: .wxss —> .ascc, .wxml —> .axml. Решилось это обычным file-loader модулем в webpack.
— Для логики приложения в TypeScript через process.env передавали среду (wechat | alipay), и получали её внутри приложения. Поправили типы, компоненты, общение между родителем и дочерним компонентом.
Оба приложения запускаются командами «yarn start:wechat» и «yarn start:alipay». В двух консолях одновременно компилируются два приложения и отображается UI в двух IDE.
Alipay и WeChat у нас работают на одной кодовой базе. Каждая фича разрабатывается один раз и сразу работает в обоих мини-приложениях. Релиз идёт примерно по такой же схеме, что и у WeChat. Однако для Alipay автоматическая система релизов пока не сделана. Клиенты в пиццериях в Ханчжоу довольны появлением мини-приложения Alipay и активно его используют.
В планах сделать из этого Open Source проект: убрать артефакты, упростить и дописать автоматическую систему релизов для обеих платформ.
Примечание. Контекст истории у нас здесь — «Как выйти на китайский рынок с mini-app для WeChat, чтобы не прогореть», где мы подробно рассказали как делали мини-приложение в китайской соцсети.
3 805
Роботы уже «захватили» мир
Цитируем Фёдора:
«Компания xRobotics, созданная российскими инженерами, запустила вместе с Аленой Тиховой пицца-робота в Dodo Pizza в городе Оксфорд в Миссисипи в США 🔥 Они сделали это, несмотря на все сложности, ограничения, карантины. Без сотен миллионов инвестиций. Гордость и восторг! Это видео снято вчера. На нем Алена одна «раскидала» все заказы в пик продаж в паре с роботом 🤖:)»
Роботы уже захватили мир, чтобы делать нам пиццу.
3 805
«У вас новое достижение — ваше приложение добавили в App Store»
Приложение «Додо Курьер» для курьеров помогает следить за заказами, брать их в работу, строить маршрут. По статистике четверть курьеров пользуется Android-версией. А теперь приложением сможет пользоваться любой курьер с любым смартфоном, потому что мы его добавили в AppStore.
Но вот процесс добавления был тем ещё квестом:
— Для публикации закрытых приложений для бизнеса в AppStore нужно иметь Enterprise аккаунт. Но нам отказали в его предоставлении спустя 4 месяца ожидания без объяснения причины.
— Отказывали в публикации приложения 5 раз.
— Мы придумывали обходной путь с публикацией в обычном аккаунте, но тоже не получалось.
— В первые пару раз ревьюеры обнаруживали особо скрытые баг, которые тяжело воспроизвести.
— Мы неправильно просили разрешения геолокации. Без уважения видимо:).
— А последний отказ был вообще без объяснений.
Всё вот это заняло примерно полгода и каким-то чудом нам удалось добавить приложение. Воистину это чудо!
3 805
Почти распилили монолит, техчас и «латентный тимлид»
Гость выпуска — Анатолий Панов. Кратко о нём:
— руководит разработкой всех вертикалей в Авито;
— пишет код только «по фану»;
— не проводит интервью инженеров;
— раскусил в Борисе «латентного тимлида» (Борис, мы тебя любим, прости за термин), когда он «собеседовался» в рубрике «Сханти Бориса» как разработчик.
Поговорили про квартальные и годовые ОКR и ОКR-ревью, Performance Review, как почти распилили монолит, про техчас для новостей технического департамента, и прокачку функциональных коммьюнити.
Подкаст доступен на площадках:
Buzzsprout
Apple Podcasts
SoundCloud
Google Podcasts
Яндекс. Музыка
ВК
3 805
Delta Lake и поддержка Kotlin в Apache Spark
Нельзя просто так взять и не пойти на митап, где будет выступать Иван Трусов и Паша Финкельштейн. Трехслойная архитектура раскладки данных, особенности Delta-формата, упрощающие ETL процессы и «кишки» процесса написания поддержки ещё одного JVM-языка в Apache Spark — через неделю, 25 марта (в четверг) в 18 вечера MSK на DE or DIE #6.
Формат: Онлайн-трансляция на YouTube. Регистрируйтесь.
3 805
Новый Open Source проект альтернативного хранилища сессий для ASP.NET на основе Cosmos DB
У нас появился ещё один проект с открытым исходным кодом – Azure Cosmos DB ASP.NET Session State Provider. Это альтернативное хранилище сессий для ASP.NET на основе Cosmos DB.
Для хранилища сессий ASP.NET обычно используют SQL Server или Redis. Но у Redis страдает доступность ради долговечности, а SQL Server не обеспечивает масштабируемости при записи.
Поэтому наш SRE Георгий Полевой использовал Cosmos DB в качестве хранилища сессий ASP.NET приложений. Так появился Open Source проект, который призван решить эти проблемы. Он обеспечивает гарантированную низкую задержку и масштабируемость.
Особенности:
— Локи хранятся отдельно, для оптимизации записей при постановке лока.
— Расходуется примерно 30-35 RU на запрос с блокировкой. В случае Read-Only, расходуется около 2 RU.
Подойдёт для приложений, которые требуют высокой масштабируемости и низкой задержки.
Подробнее о проекте:
— GitHub
— NuGet
#opensource #dodoopens
3 805
Как сделать корпоративные ценности настоящими, а не пластмассовыми
Корпоративные ценности — это некие убеждения и принципы, которые все должны соблюдать, вроде «быть ответственным», «двигаться вперёд» и всё такое. Но зачем их соблюдать, если непонятно откуда они взялись? Зачем кто-то когда-то их выбил на скрижалях и повесил в главном зале? Без ответа на эти вопросы желание им следовать скорее не появится — они пластмассовые, не живые. Возможно поэтому в ЦИАН сделали по-другому — ценности списали с реальных людей, один из которых побывал у нас в гостях, а всем новичкам рассказывают как они появились и зачем.
Как готовили ценности, важны ли они при найме и что такое словарь «разработческих» терминов, поговорили с Анной Штенгауэр (HR BP) и Мишей Юматовым (руководителем продуктовой разработки).
Подкаст доступен на площадках:
Buzzsprout
SoundCloud
Google Podcasts
Яндекс. Музыка
ВК
3 805
Как разработать мини-приложение для Китая?
В Китае легко затеряться. Наши первые пиццерии в Китае работали по привычной модели: точка с залом на второй линии «на доставку» не в людном месте. Но модель не «взлетела»: рядом с пиццерией десятки лавок со всеми видами еды, вроде боула с мидиями или хрустальной лапши, где клиент получит еду быстрее. Можно было бы сделать своё приложение с доставкой, но на китайских экранах сотни приложений, где можно заказать еду, и наше бы просто потерялось. Поэтому мы «пошли» в WeChat и его экосистему мини-приложений. А теперь рассказали об этом — получился большой «разбор» китайских приложений и экосистемы страны. Пригодится, если решите разрабатывать своё мини-приложение для Китая.
3 805
Что такое «легаси»?
Понятно, что это не «хороший код», но какой? Старый, не поддерживаемый или не обновляемый, а может просто чужой? Есть ли «полноценное» определение «легаси», на которое можно ссылаться? Кажется, мы наконец разобрались, что же это такое.
3 805
В команду @doner42ru разыскивается .NET разработчик 🥰 Решили на один день похулиганить и повесить вот такое объявление на стекле 😅 На последней картинке - куар код. Наведи на него фотокамеру телефона и появится ссылочка на вакансию.
3 805
Мегаскрам и портал
Сегодня у нас подкаст с Ксенией Мешковой — овнером в команде Райффайзенбанк. Она занимается развитием внутреннего корпоративного портала. Ксения рассказала про портал (много), как и зачем они его делали и как «докатились» до LeSS в команде из 70 человек через скрам и аджайл. А ещё у них там есть гемба. Разработчики, конечно, кредитки не продают, всё полегче. Гемба «на минималках».
Подкаст доступен на площадках:
SoundCloud
Google Podcasts
Яндекс.Музыка
Buzzsprout
