В Новосибирске прошла юбилейная, десятая конференция CodeFest. Программа была очень насыщенной: десять секций о разработке, тестировании, дизайне, управлении и развитии. Сотрудники True Engineering два дня конспектировали доклады, теперь хотим поделиться этой пользой с вами.
Надеемся, наш отзыв пригодится тем, кто будет смотреть видеозаписи выступлений. Часть презентаций уже опубликована в открытом доступе, поэтому мы дополнили некоторые отзывы ссылками на них. Доклады отсортированы по секциям.
Design
Как показать интерфейс тому, кто не видит — Валерия Курмак
Нас зацепил доклад Валерии Курмак из «Сбербанка» об оптимизации программного обеспечения для людей с ограниченными возможностями.
Главный посыл доклада состоит в том, что на самом деле людей с ограниченными возможностями очень много. И это не только абсолютно слепые люди. Это все те, кто уже не может видеть столь же ясно, как в молодости: наши с вами бабушки и дедушки, отцы и мамы. Это наши с вами друзья, которые временно потеряли трудоспособность из-за физических травм. Это от 2 до 8% мужчин, которые испытывают затруднения в восприятии цветов.
А ведь для таких людей не нужна отдельная версия вашего приложения — все уже давно придумано. Банально делая ваш веб-сайт масштабируемым, вы делаете его доступнее для миллионов людей. Используя стандартные элементы управления или семантическую верстку, вы сильно помогаете своим пользователям.
Валерия совместно с сотрудниками «Сбербанка» сделала отличный гайдлайн по этой теме. Гайдлайн разбит на несколько коротких руководств для разных ролей:
- для дизайнеров,
- для iOS разработчиков,
- для Android разработчиков,
- для Web разработчиков
- и даже для менеджеров.
Найти его можно по ссылке.
Backend
TCP умер или будущее сетевых протоколов — Александр Тоболь
Плотно набитый полезными знаниями доклад об устройстве TCP-протокола и о проблемах, которые в условиях современных сетей мобильной связи приводят к пределу утилизации и пропускной способности канала.
В «Одноклассниках» доставка видеоконтента и ленты новостей играет решающую роль в успехе сервиса. При незначительном количестве потерянных пакетов и росте задержки сети ее утилизация падает почти до 50%. Чтобы решить проблему, в компании пилят свои протоколы для каждого вида трафика на замену TCP. (Тем же самым занимается Google — протокол QUIC). Большой респект ребятам за то, что не побоялись пошатнуть фундаментальные устои.
Новый стандарт http/2 также упирается в горлышко TCP, поэтому правильная цель для клиент-серверных систем — http/3, который работает поверх QUIC.
В итоге «Одноклассники» получили хороший прирост производительности системы. На демо было визуально видно многократное ускорение загрузки ленты. Также «Одноклассники» первые в мире стали транслировать Live видео HD-качества. Пример: почему-то американские дальнобойщики любят транслировать в сеть запись с дорог. Видимо, пользуются как видеорегистратором.
Teamlead
Рефакторинг: договариваемся, планируем, внедряем! — Алексей Катаев (презентация)
Алексей утверждает, что за десятилетнюю историю работы Skyeng они ни разу не переписали свое приложение с нуля. Как же они поддерживают качество кода? Все просто — они рефакторят :) Сам доклад совсем не о том, какими техническим средствами делать рефакторинг, а о том, как убедить менеджера в его необходимости.
Первое, что следует сделать разработчикам — это перестать жаловаться на то, что приложение давно нужно зарефакторить, а вместо этого найти с менеджером общий язык и договориться. Если кратко, то заранее заводите задачи технического долга в бэклоге своего проекта, оценивайте, приоритезируйте их и обращайтесь к менеджеру с конкретными предложениями. И обязательно прочитайте книгу Гевина Кеннеди «Договориться можно обо всем!».
Вторая важная мысль доклада — не врать. Не стоит включать рефакторинг в оценки фич. Это делает процесс разработки менее прозрачным. Вы рискуете погрязнуть в рефакторинге, так как перестанете отслеживать время, затрачиваемое на него.
Еще Алексей рассказал, как они используют телеграмм-ботов для планирования рефакторинга, а также поделился парой чеклистов и списком принципов своей команды. Хочется еще раз сказать ему спасибо за один из самых полезных докладов на Codefest X.
Про инженерный шовинизм: отвратительно быть менеджером — Евгений Кот
Доклад премиум-класса, театральные труппы нервно завидуют. Спикер очень талантливый, стоит обратить на его другие доклады. Чудесная подача в виде истории о психологических проблемах трансформации инженера в тимлида.
Рекомендовано к регулярному просмотру для тех, кто выбирает между менеджментом и углублением в архитектуру и задается вопросами:
- Если я стану тимлидом, то буду невостребованным,
- Если я стану тимлидом, то не смогу кодить,
- Если я стану тимлидом, то куда мне развиваться.
Спикер ответил на них, а также ввел аббревиатуру «синдром С.О.С.О.»: страх, отчаяние, стыд, отчуждение. И далее по всем пунтам разобрал, откуда появляются эти эмоции и как с ними бороться.
Mobile
iOS. Всё есть MVC: зачем же нужны другие архитектуры? — Евгений Ртищев
Очень насыщенный доклад о том, что MVC в iOS многими воспринимается не совсем корректно, и что это на самом деле не зло. Интересно, что Евгений несколько лет назад выступал с докладом против MVC на Mobius, а потом всё переосознал. Он рассмотрел разные типы контроллеров с примерами из SDK, преимущества данной архитектуры и объяснил, откуда растут корни проблем, которые выделяют при работе с MVC.
Советы, которыми делится Евгений:
- использовать 4 типа контроллеров,
- разделять ответственности,
- избегать связанности,
- проектировать от модели,
- быстрота и простота изменения интерфейса,
- massive view controller — надуманная проблема.
Особенно интересно слушать доклад, когда ты уже попробовал MVCC, MVVM, MVP, VIPER или другие архитектуры и разделяешь боль и те преимущества, которые есть в каждой из них. Всё больше заставляет задуматься о том, что, по большому счёту, дело не в том, как называется архитектурный паттерн.
iOS E2E UI-тесты: много, зелено и на Pull Request — Артём Разинов
Артём рассказал о том, как уменьшив объем обязательных тестов регресса и увеличив объем UI тестов, команда заметно сократила время регрессионного тестирования большого приложения и стала чаще релизиться.
Было полезно послушать о техниках и приемах, которые можно применять для достижения оптимального результата. Особенно запомнились такие:
- оценивать целесообразность UI тестирования, исходя из частоты релизов и времени на актуализацию тестов,
- Impact анализ, чтобы каждый раз не прогонять все тесты,
- регулярные полные прогоны,
- параллелить тесты для ускорения.
Рекомендуем этот доклад мобильным разработчикам.
Android Instant Apps, два года спустя — Евгений Сатуров
В 2017 году был представлен такой инструмент как Instant Apps — если говорить упрощённо, это приложение с мгновенным запуском. Компания Surf получила ранний доступ к этой фиче.
Евгений рассказал, с какими проблемами они столкнулись в процессе разработки и тестирования. Во-первых, была проблема сурового SDK, которое поставлялось zip-архивом. Во-вторых, не было никакой документации. Также нужно было выдерживать строгие требования в архитектуре приложения. Приложение не могло весить больше 3 Мб и его нужно было разбить на модули.
После разработки спустя два года Google представил другое решение — Android Dynamic Feature Delivery, которое позволяет делать примерно то же самое, но уже с другими ограничениями. Новый SDK тоже не особенно стабилен, сложно тестируемый и имеет кучу багов и костылей. Одно из главных ограничений — нужно отдать Google свой ключ, которым подписывается приложение.
Евгений поделился советами, что почитать и как решать все эти проблемы. Он рассказал о своем опыте использования Dynamic Feature Delivery, подытожив тем, что это всё ещё сырая штука.
Android. Инструменты для решения проблем в большой команде — Владимир Теблоев
У Сбербанка большая команда по Android-разработке — на одном проекте работает больше 100 человек. В какой-то момент команда начала расти, и разработчиков нужно было как-то контролировать. В докладе Владимир поделился набором практик и советов, которые могут помочь во взаимодействии с командой, даже если там работает меньше людей.
Например, новым сотрудникам всегда назначается ментор. Для новичков есть база знаний: гайды по дизайну, архитектуре, code convention, как устроено тестирование и документация в Confluence — расписано всё, вплоть до того, как клонировать проект.
Это не значит, что все ограничивается одним стеком. Для новых технологий компания вырабатывает в отдельных модулях хорошие и плохие практики, после чего делает гайд по использованию этой технологии. Процесс выстроен так: попробовали, написали практики, доказали необходимость этой технологии, после чего ее берет в использование команда.
Интересная мысль Владимира о том, что иногда диктатура — это необходимое зло. Если прислушиваться и пытаться угодить каждому из 130 человек, ничего хорошего из этого не выйдет. Иногда нужно директивно сказать: «Мы делаем так». Эту определенность и транслируют эти гайды.
Products
Как искусственный интеллект превращается в новое электричество — Иван Ямщиков
Доклад от того самого Ивана Ямщикова, который участвовал в создании нейросети, написавшей несколько песен в стиле Егора Летова.
Автор полагает, что искусственный интеллект изменит наш мир столь же сильно, как его когда-то изменило электричество. Основной практический посыл доклада состоял в том, что уже давно пора начинать думать над тем, что можно автоматизировать с использованием искусственного интеллекта. Когда-то электричество позволило автоматизировать множество производств, в которых ранее использовалась физическая сила. Сейчас же искусственный интеллект может заменить людей в интеллектуальной деятельности, например, в работе с документами. Искусственный интеллект не устает, ему доступны большие объемы данных и он не ошибается.
Доклад заряжает ощущением того, что будущее уже здесь.
Frontend
Immersed in the Web — Luis Diego Gonzalez Zuniga
Докладчик рассказал про то, что такое иммерсивный web (иммерсивность — создание эффекта погружения, присутствия). Samsung браузер, по его статистике, занимает четвертое место в России по использованию. Звучит странно, но, возможно, это связано с тем, что браузер по умолчанию ставится на новые Samsung.
В целом речь идет о встраивании виртуальной реальности (WebXR) в браузеры. В результате получается браузер с широким спектром возможностей, в том числе различными геймпадами, джойстиками и т.д. прямо внутри него.
Гонзалес также поведал про различия VR (виртуальная реальность) и AR (дополненная реальность), и как все вместе это образовывает XR. По его словам, «XR охватывает платформы и контент, где пользователь может принимать цифровые объекты за реальность, или, напротив, видеть физические объекты присутствующими в цифровой сцене». Также спикер показал, как включить в браузере Samsung режим виртуальной реальности. При демонстрации словил багу, но уверял, что «вот до доклада все работало».
В итоге показанное выглядит действительно интересно. Ожидаем, когда такие решения пойдут в массы и можно будет установить приложение или браузер на любой смартфон.
Пока доклад не выложили, с иммерсивным web от Samsung можно познакомиться здесь.
Future
Тренды невозможного — Евгений Черешнев (презентация)
Евгений Черешнев – IT-исследователь и журналист, участник конференции TED New York. Доклад отлично подходил именно для открытия секции Future. В нем Евгений затронул темы, о которых мы не задумываемся в повседневной жизни, но которые ждут нас в, возможно, недалеком будущем. В целом, речь шла об инновациях.
Можно выделить несколько основных мыслей:
- Все мы от рождения уникальны, но система подстраивает нас под общество. Человек, который смог сохранить ребенка внутри себя, сохраняет любопытство, свойственное детям, а вместе с ним и возможность искать и придумывать что-то новое. Такие люди в докладе обозначаются как «ребенок, который выжил».
- Инновации возможны только в небольших компаниях, стартапах. Большие компании, аналогично людям, с возрастом и разрастанием теряют способность внедрять нечто по настоящему новое, поскольку это слишком рискованно для них.
- Проблемы в инновациях в российских стартапах связаны в первую очередь с тем, что «российский инженер – обычно не про деньги», а значит, что многие компании прогорают в самом начале просто потому, что думают категорией «сделать круто», но не прибыльно. Черешнев говорит о том, что продукт нужно уметь продавать – «сначала деньги, потом код».
- Одна из ключевых мыслей доклада и Codefest в целом – скоро искусственный интеллект будет повсюду. Роботы начнут постепенно вытеснять человека, поскольку нет необходимости, например, в работнике на заводе, если лучше него сделает робот, которому еще и не нужно платить. В ответ на такие тенденции докладчик говорит о том, что человеческий ДНК – это тот же код, данные, а значит, с ними можно работать. Единственный способ для человечества продолжать существовать в нормальном режиме – это преобразовывать себя, совершенствовать как код. Сам Евгений, к примеру, уже вживил себе в руку чип. Кто знает, может быть через 50 лет мы все будем немного киборгами.
Далее Евгений говорил уже о более выраженных трендах – что будет развиваться в ближайшее время:
- Эко-энергетика,
- Automated-медицина (на жалобы пациента будет отвечать бот, поэтому пропадет необходимость в визите к терапевту),
- Омни-образование (в ближайшем будущем у человека не будет специальности, он будет должен иметь сразу несколько специальностей, чтобы вовремя переключаться между ними).
Свой доклад Евгений закончил тем, что инновации неизбежны и эволюция «распространяется на все, живое и неживое».
Почему быть хорошим для всех — не слишком хорошо. И не будет — Александр Орлов
«Почему от слов и действий каких-то людей у тебя бомбит? Почему в разговоре с кем-то ты не можешь настоять на своем?»
Это полезный доклад о картах реальности, о конструктивной конфронтации, о потребностях, которые мы удовлетворяем в процессе работы, о том, как переключиться с раздражения на интерес, с «я прав, а ты нет» на «почему у тебя так?». Будет полезно всем, кто взаимодействует с другими людьми, то есть вообще всем!
Забавно, что уже на следующий день пригодилась техника, про которую рассказывал Александр: прежде чем делать выводы и расстраиваться, можно прямо сказать о своих ожиданиях и спросить, почему собеседник делает или думает иначе. Тогда может оказаться, что и проблемы-то никакой нет, а у вас просто разное видение.
Нетехнологические проблемы «умных» продуктов — Андрей Сербант (презентация)
Доклад был посвящен тому, что мало придумать что-то инновационное, будь то искусственный интеллект или беспилотные автомобили — важно подготовить людей к тому, что новшества не опасны и принесут пользу обществу.
Себрант выделяет три основных тезиса о том, как надо готовить людей к инновациям:
- не нужно рассказывать о продукте также, как вы бы рассказали о нем своему коллеге-разработчику — человеку, не погруженному в тему, это непонятно,
- в коммуникациях с потребителями нужно делать упор не на рациональность, а на эмоции, сделать продукт источником эмоций для потребителя,
- продукт для конечного потребителя должен быть магией, а не инструментом.
Примером такой инновации являются беспилотные автомобили. Сейчас нетрудно найти в интернете, сколько опасений вызывают такие машины — они небезопасны, они будут переезжать людей, попадать в аварии, они не созданы для российских дорог и так далее.
Себрант говорит о том, что такие автомобили стали «новым электричеством» — электричества также боялись, а теперь мы не можем представить своей жизни без банальной лампочки.
Он рассказал об опыте управления эмоциями на примере беспилотного такси, разработанного Яндексом. Первые испытания на дорогах проводились с водителем внутри, который просто сидел и ничего не делал — автомобиль управлял собой сам. Такая демонстрация не впечатлила неподготовленных зрителей. Присутствие человека внутри машины наталкивает на мысль, что именно он управляет автомобилем.
Следующие испытания проводились на закрытом полигоне, где можно было запустить автомобиль уже без водителя. Возможность испытать его предлагалась все тем же обычным людям, которые были зрителями и в прошлый раз. Эффект от движущейся машины с пустым водительским сидением сложно описать. Люди совершенно по-новому взглянули на тот же самый автомобиль – был создан тот самый эффект «магии, а не инструмента».
Три маленьких таракана на пути к большому будущему — Максим Дорофеев
(презентация)
Доклад существенно отличался от других докладов в секции Future: в нем рассказывалось не про будущее, а про то, с чем мы сталкиваемся каждый день – почему устаем, почему не успеваем что-то сделать, почему не растем и т.д. Основными причинами этих повседневных проблем Дорофеев называет «тремя тараканами».
- Таракан первый: «Это не срочно, значит потом». Ошибка многих людей – есть задачи срочные, есть задачи не срочные. Очередность их выполнения чаще всего определяется исключительно показателем срочности, но не важности – это неправильно.
- Таракан второй: «Сейчас только с мелочью разберусь». Приходишь утром и начинаешь помаленьку делать задачи, на каждую из которых нужно минут 10-15, а по итогу их много и не остается времени на что-то реально важное.
- Таракан третий: «А вдруг там что-то срочное?» Наверняка знакомая всем ситуация – работаешь и параллельно кто-то присылает тебе письмо или сообщение в скайпе с какой-то «важной» задачей – отвлекаешься, по итогу сделано все и ничего. Здесь также есть эффект ложной важности – в моменте задача кажется тебе важнее, чем есть, ты отправляешь ее кому-то дальше, тому человеку она начинает казаться еще более важной. В конце цепочки испуганный разработчик начинает в панике быстро-быстро делать эту изначально неважную задачу.
Дорофеев говорит о том, что всем нам надо избегать встреч с этими тараканами в работе и в жизни в целом.
Важной мыслью в докладе также является разделение задач на «красные» и «зеленые». «Красные» задачи – это задачи срочные, за невыполнение которых последует неминуемое наказание. «Зеленые» задачи – это задачи интересные и важные для развития, которые обычно из-за текучки откладываются на потом. Лучше, имея «красную» и «зеленую» задачи, сделать обе хотя бы кое-как, но получить при этом более полезный результат, нежели сделать только «красную» задачу, но хорошо.
В целом в докладе было еще большое количество дельных советов на каждый день, поданных очень доступно и с юмором. Такие доклады нужно смотреть.
Автомобиль будущего. Разбираем Теслу на инженерные решения и прорывные идеи — Игорь Антаров
Доклад практически невозможно пересказать в формате текста – в презентации большое количество материалов, рассказ о Маске, о том, что он делает кроме Теслы и т.д. Пройдёмся по самым интересным фактам:
- Электромобили могут заполонить мир в течение 15 лет,
- Экономика будет экономной и экологичной – спасибо электромобилям,
- Отличие Теслы от других электромобилей в том, что это первый электомобиль, который не только экологичный и экономный, но еще стильный и мощный,
- У Маска был «секретный план» по развитию Теслы: cтроить спорткары, использовать деньги для создания доступного автомобиля, а пока занимаемся этим, также предоставить возможности генерации электроэнергии с нулевым выхлопом.
У плана было продолжение:
- Создать солнечные крыши с полностью интегрированным аккумулятором.
- Расширить линейку продуктов для электромобилей, чтобы охватить основные сегменты.
- Разработать автопилот, который в 10 раз безопаснее ручного вождения благодаря обучению всего флота
- Ваш автомобиль зарабатывает для вас деньги, пока вы им не пользуетесь – общественный каршэринг.
Тесла на данный момент уже умеет ездить по хайвеям и пробкам, парковаться (с водителем), перестраиваться по поворотнику, предлагать смену полосы, уступать дорогу перестраивающимся машинам, останавливаться на красный свет (скоро научится).
Тесла убивает ритейл. Возможно, вскоре не будет дилеров и автосалонов – машину можно будет купить в интернете, и она сама к вам приедет.
Этот электромобиль – пример настоящего Continuous Integration. Машина теперь не машина, а IT-платформа. Интересно, через сколько лет у нас появится должность автомобильного разработчика?
30 профессий будущего. 10 профессий прошлого. 2 профессии вне времени и пространства — Евгений Черешнев
Доклад от того же Евгения Черешнева, который в первый день открывал CodeFest «Трендами невозможного». На этот раз доклад был закрывающим кейноутом, оказался легким для восприятия и очень необычным.
Когда обычно говорят о профессиях прошлого, будущего и настоящего на ум приходят довольно стандартные варианты: профессии прошлого – те, которые вытеснят роботы (места на заводах, кассиры и так далее), профессии будущего – что-то с разработкой, робототехникой, вечные работы – учителя, ученые и другие незаменимые специальности.
В докладе Черешнева все не так. Чтобы это понять, достаточно просто посмотреть те списки, которые он предложил.
Профессии прошлого оказались совсем из прошлого:
- Трубочист
- Люди-будильники
- Расставляльщики-кеглей в боулинге
- Пионер-вожатые
- «Челодары» – люди, которые работали радарами до появления последних
Теперь перейдем к профессиям будущего:
- ДНК-инженер
- Фермер человеческих органов
- Разработчик кибер-питомцев
- Девелопер инфраструктуры для driverless (к слову о Тесле выше)
- Колонист Марса
- Космо-стюардесса
- Deep Space Comms инженер (налаживание коммуникаций в космосе)
- Колониальные войска
- Оператор бурения астероидов (новые перспективы студентам ГГФ НГУ)
- Drifting Cities: Архитектор, капитан
- Инженер Роя / Сферы Дайсона
- Офицер Кибербезопасности
- Полиция: офицер контроля искусственного интеллекта
- Полиция: офицер профилактики (людей смогут арестовать за то, что по биологическим показателям они склонны к преступлениям, но еще их не совершили)
- VR-военные, операторы (как в Аватаре, только в жизни)
- Full-Time Киберспортсмен (чтобы управляли аватарами, о которых речь шла выше, будущие операторы)
- Архитектор VR-пространства
- Time-travel Experience Инженер (не «назад в будущее» или «эффект бабочки», а скорее восстановленное искусственным интеллектом прошлое, чтобы просто посмотреть, что там было)
- Управляющий талантами (он же HR – вечная и нужная профессия)
И напоследок вечные профессии:
- Разведчик / Контрразведчик
- Математик/Физик (в общем, ученый)
- Писатель
- Художник
- Археолог
- Философ
Доклад был легкий, интересный и фантастический, а закончился милой ноткой о том, что в какое бы время мы ни жили, самой востребованной и важной профессией будет являться профессия родителей.
Автор: true_engineering