Чтобы сделать пиццу из половинок мы использовали два UICollectionViewLayout
. Рассказываю о том, как мы написали такой лейаут для iOS, с чем столкнулись и от чего отказались.
Выбираем подходящий баг-трекинг
Волшебная фея для юнит-тестов: DSL в C#
Я прочитал 80 резюме, у меня есть вопросы
- Прислать резюме, программист его посмотрит, лайкнет если всё хорошо. Рекрутер позвонит, задаст несколько вопросов.
- Встретиться или созвониться с нами. Узнаем, какой вы специалист.
- Прийти на тестовый день. Познакомиться с командой и поработать вместе. Пообщаться с техническим директором, обсудить зарплату и получить оффер.
Я три месяца был тем программистом, который оценивает резюме. Мне есть о чём с вами поговорить.
Наш первый обед вместе: почему и как мы проводим тестовый день
Серия статей про собеседования:
1. Наш первый обед вместе: почему и как мы проводим тестовый день.
2. Я прочитал 80 резюме, у меня есть вопросы.
3. Собеседование в Додо Пиццу.
4. Уходя уходи: почему не стоит принимать контроффер.
5. Спасибо за собеседование, мы ответим о нашем решении… сейчас.
Геймдизайнер мало чем отличается от психа. Как мы делали игру CMAN
Вечер пятницы, конец рабочего дня. Вы находитесь в офисе. Что будете делать?
— Поехать домой поспать
— Пойти в бар с друзьями
— Отправиться на свидание
— Проверить, почему горит свет в переговорке
Меня зовут Андрей Моревский, я архитектор в Додо и тот человек, который выбрал «Проверить, почему горит свет в переговорке». Тогда я ещё не подозревал, чем закончится эта история.
Что курил автор: добавим олдскула в этот безумный мир игр
Под катом вы найдёте описание игры, фичи, а также узнаете про призы за топовые места.
Машинное обучение в Додо. Как запустить новое направление, если ты разработчик
Как получить Google Developers Certification: Mobile Web Specialist
Привет, Хабр! Сегодня хочу поделиться с вами историей о том, как я сдавал сертификационный экзамен Google Developers Certification: Mobile Web Specialist. Если честно, то каких-то объективных причин я назвать не могу, так как не слышал ещё ни об одном случае, когда наличие сертификата давало кому-то преференции при устройстве на работу или помогало повысить зарплату. Под катом расскажу, почему всё же решил сдать экзамен и подробно опишу, как я его сдавал.
День, когда Dodo IS остановилась. Синхронный сценарий
Но теперь мы спим лучше. Мы научились распознавать сценарии системного апокалипсиса и обрабатывать их. Ниже расскажу, как мы обеспечиваем стабильность системы.
Зачем Додо Пицце 250 разработчиков?
Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET
Кто из нас не косячит? Я регулярно встречаюсь с ошибками в асинхронном коде и делаю их сам. Чтобы прекратить это колесо Сансары делюсь с вами самыми типичными косяками из тех, которые иногда довольно сложно отловить и починить.
Контроллер-луковка. Разбиваем экраны на части
В дизайне популярен atomic design и дизайн системы: это когда всё состоит из компонентов, от контролов до экранов. Программисту писать отдельные контролы несложно, но что делать с целыми экранами?
Разберём на новогоднем примере:
- налепим всё в кучу;
- разделим на контроллеры: выделим навигацию, шаблон и контент;
- повторно используем код для других экранов.
Контроллер, полегче! Выносим код в UIView
Задачи отделения логики от интерфейса описаны в сотнях статей про архитектуру: MVP, MVVM, VIPER. Они решают проблему потока данных, но не отвечают на вопрос как работать с интерфейсом: в одном месте остается создание элементов, лейаут, настройка, обработка ввода и анимации.
Давайте отделим view от controller и посмотрим чем нам поможет loadView().