Хабрахабр

Обзор droidcon SF

Меня зовут Александр Колобанов, я Android-тимлид в компании FunCorp. Привет, Хабр! Под катом небольшой обзор конференции, путевые заметки и немного фоточек. В ноябре я был на droidcon в Сан-Франциско.

Зачем так далеко лететь?

Конференции droidcon проводятся не только в США, но и в Европе. Лететь туда ближе и дешевле, но, опираясь на свой опыт, могу заявить, что всё-таки географическое расположение решает. Чем ближе конференция к штаб-квартире Google и прочих топовых IT-компаний, тем больше вероятность, что в ней примут участие именитые спикеры.

Поэтому нужно смотреть на каждый город проведения в отдельности. К тому же в разных местах разные организаторы, и объединяет их лишь название. Из европейских я бы отметил droidcon London — достойная конференция по качеству организации и по уровню докладов. На мой взгляд, droidcon NYC — это вообще топчик. droidcon в Берлине и Вене, где я также бывал, больше подходят для начинающих и среднего уровня разработчиков, а именитые спикеры и хардкорные доклады на них большая редкость. Для Android-разработчиков из Европы она, пожалуй, главная.

Никто не присылает подробные планы, как добраться, 20 напоминалок о том, что скоро уже их конференция, не делает ботов и площадок для обсуждения и всего остального. Если же сравнивать droidcon SF с российскими аналогами, то её организаторы меньше думают о таких вещах, как питание (кофе есть — и ладно) и удобство участников. Тут на первом месте (а также на втором и третьем) техническая часть и уровень докладов. Никакого сюсюканья, супер-подробной навигации и шикарного ассортимента ништяков. Это не отменяет того, что в программу может просочиться парочка так себе докладов, но в целом droidcon SF — конференция от разработчиков для разработчиков, где только топовый контент и именитые докладчики.

Обошлось без откровенно халтурных докладов с пересказом тьюториалов с developer.android.com. Учитывая всё это, я бы сказал, что программа конференции в Сан-Франциско была на высоком уровне.

Транспорт и прочие расходы

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

Можно попробовать поискать билеты со скидками и присмотреться к распродажам. Универсальный совет, который работает всегда: брать билеты и бронировать жильё заранее. Смотреть стоит на авиакомпании среднего ценового диапазона, которые часто предлагают обслуживание не хуже, чем крутые и дорогие. Информации о таких вещах достаточно много на сайтах и в специализированных группах в соцсетях, посвященных экономии на путешествиях. Лоукостеры на такие расстояния не летают (и хорошо, наверное). Ну и вообще на трансатлантике обычно сервис у всех на уровне независимо от класса. В США есть что посмотреть и чем заняться. А поскольку стоимость перелёта составляет значительную часть бюджета на путешествие, поездку на конференцию лучше совместить с отпуском, если, конечно, есть такая возможность.

Поэтому совет: пользуйтесь общественным транспортом или car pooling (это когда такси собирает несколько человек, которые едут похожими маршрутами и делят стоимость поездки). Такси в штатах традиционно дорогое. Цена на парковки в городе бывает заоблачная, а условия сложные и странные (например, нельзя парковаться с 8 до 10 утра во второй четверг месяца — стойте и считайте), тогда как трассы очень удобные и безопасные, а люди на дороге в основном неагрессивные и предсказуемые. Между городами лучше передвигаться на автобусе или арендовать машину.

Для любителей есть коуч-сёрфинг, а в остальном всё так же — бронируйте заранее. Если говорить про жильё, то и здесь сэкономить особо не получится, тем более в таких дорогих городах, как Сан-Франциско.

Площадка проведения

Он располагается в одном из зданий Калифорнийского Университета в Сан-Франциско. Конференция проходила в Mission Bay Conference Center. Места было достаточно, даже несмотря на довольно большое количество участников (более 800). В этом же здании, кстати, расположена библиотека, фитнес-зал и кафе. В коридорах иногда приходилось толкаться, но места в залах хватало всем, вдоль стен никто не стоял.

Тут нужно сделать ремарку: сам Сан-Франциско — довольно компактный город. Сам Mission Bay Conference Center расположен довольно близко к центру города (минут 10 на такси от центра). Поэтому проблем с тем, чтобы добраться, возникнуть в принципе не должно. От центра до аэропорта ехать около 40 минут на такси (чуть больше в час пик). Единственное, с общественным транспортом в том районе всё довольно сложно, поэтому я предпочёл ездить на такси.

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

В нём же была зона выставки со стендами компаний-спонсоров (кстати, на втором этаже их было больше, а застройка плотнее) и кофе-поинты. За зоной регистрации располагался большой холл, из которого уже все расходились по залам. Приятно и уютно. Прямо из холла можно было выйти в небольшой парк, расположенный внутри кампуса.

Организационные моменты

Организовано всё было хорошо, но немного необычно по сравнению с российскими конференциями. Точно было меньше суеты и больше внимания к докладам и технической стороне. Из «еды» были только чай и кофе. У нас гораздо больше внимания уделяется кофе-брейкам, кейтерингу и питанию в целом. Здесь же, кроме горячих напитков, не было ничего. Точнее, в обеденное время ещё выносили холодильники с баночками «Колы». Хотите есть — вон там, за углом, кафе, где можно купить сэндвич. Никакой тебе супер-заботы и гипер-опёки. И, кстати, это было норм.

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

Проблем с WI-FI практически не было, хотя он был открытый и от кампуса. Но особо стоит отметить именно техническую часть организации. В ходе доклада постоянно следили, чтобы всё хорошо работало. Спикерам очень быстро всё настраивали и подключали, прямо за пару минут. В целом ни одной заминки и проблемы с техникой я не заметил, всё было супер. Даже убавляли и прибавляли звук почти молниеносно, когда докладчик, например, начинал говорить громче или тише. Разве что не на всех докладах носили микрофоны по залу, но докладчики сами проговаривали заданные им вопросы.

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

Программа

Доклады шли в четыре потока, практически с утра до ночи. Площадка открывалась в 8 утра, а первый доклад начинался в 9. Заканчивалось всё в районе 7 вечера. Какой-то чёткой тематики у потоков не было. Скорее всего, организаторы распределяли слоты по предположительной посещаемости для каждого доклада. Из основных тем можно отметить CI/CD (как и почти на всех Android-конференциях за последние пару лет), UI-тесты (внезапно оказалось, что их нет почти ни у кого), Kotlin (куда ж мы без него теперь), архитектуру приложения (собери двух Android-разработчиков, и скоро они будут говорить «за архитектуру»). Словом, тут всё довольно стандартно. Про keynote ничего интересного сказать не могу, он просто был. Говорили о том, что мы делаем приложения, которые находятся на телефоне почти у каждого, формируем этот мир и то, как люди в нём взаимодействуют и общаются. Но мне больше запомнилось комедийное (хотя никакой комедии изначально не планировалось) закрывающее выступление от Ромена Ги (Romain Guy) и Чета Хаазе (Chet Haase) — очень известных людей в мире Android-разработки, которые долгое время работали в Google и во многом определили то, как платформа выглядит сейчас. Я думаю, многие смотрели их выступления на Google I/O (кстати, очень крутые) про аппаратное ускорение, анимации и рендеринг. Если вдруг не смотрели, то очень рекомендую. Про их завершающий comedy talk много рассказывать не хотелось бы, потому что пересказывать шутки — занятие так себе. Лучше посмотрите сами.
Если попытаться выделить топ докладов, то он получится сугубо личным и зависимым от тем, которые больше других интересны мне. Вот он:

Отличное выступление, прям огонь. How to Build a Performance Testing Pipeline from Scratch от Валеры Захарова из Slack. Доклад про то, что не стоит делать собственную ферму устройств, если у вас нет отдельной команды, чтобы её поддерживать. Много хороших и дельных советов и интересный опыт. И если тесты часто «шумят» и падают зря, то они немного стоят, потому что скоро все просто начнут их игнорировать. И как важно не только сделать приложение быстрым, но и постоянно, от коммита к коммиту, следить, чтобы оно таким и оставалось, и не допускать регрессий.

Тот самый, который делает LeakCanary и ещё кучу не менее известных библиотек совместно с другими разработчиками из Square. Human Centered API Design, Пьер-Ив Рико (Pierre-Yves Ricau), Square. Сделать его интуитивно понятным. Он рассказал, как сделать внешнее API для людей. Хороший доклад не только про написание внешнего API, а про то, как правильно проектировать вообще. Так, чтобы свести к минимуму процент ошибок для тех, кто его использует. Кстати, ведь и API любого модуля вашего приложения тоже должно быть лёгким и по возможности понятным, так ведь?

Про то, как переделать приложение, которому 4+ года, оно довольно медленное и в процессе жизни несколько раз меняло концепцию. Building for the future at Snapchat, Бен Додсон (Ben Dodson), Густаво Моура (Gustavo Moura) — неожиданно, но из Snapchat. И даже Retrofit не было тогда, когда вы это писали. И вообще теперь в первую очередь фотокамера, а потом уже чат. Хорошо бы понять ваши приоритеты и чего вы хотите, ввести метрики и строго соблюдать их. Основная мысль в том, что не надо бросаться всё переписывать. И да, это, по сути дела, уже другое приложение, и его надо как-то представить пользователям, иногда просто незаметно заменить один модуль на другой и постараться, чтобы всё не упало. Хотя какой-то модуль можно и переписать с нуля. Основано на реальных событиях.

Можно выделить рассказ разработчиков из Uber, как они боролись с Out of memory. Интересных и полезных докладов было много. Ведь каждый поток выделяет себе кусочек памяти под стек, например. Часто к ним ведут не только утечки и огромный расход памяти, но и большое количество потоков (threads). Выход из этой ситуации довольно простой: использовать один инструмент для многопоточности во всём приложении (они выбрали Rx) и знать, как он работает. Мало потоков — тоже плохо: задачи, зависящие одна от другой, из-за нехватки потоков войдут в thread starvation deadlock (так они назвали ситуацию, когда одна задача ждёт результат другой, а той банально не хватает потока, чтобы выполниться). В случае Rx, например, изучить, в чём разница между schedulers.

По сложившейся традиции, библиотека Facebook использует нативный код, в том числе MozJPEG, который сейчас является одним из лучших кодеков для JPEG. Разработчики из Facebook презентовали новую библиотеку для работы с изображениями Spectrum. В общем, довольно интересный функционал, который до этого довольно сложно было найти в простом для использования виде. Умеет кодировать, сжимать, оптимизировать, добавлять различные трансформации.

Ну, и можете ещё подобие dsl построить на лямбдах. Из доклада про Kotlin, который назывался Advanced Kotlin, можно было узнать, что вы advanced in Kotlin, если знаете, что такое infix и tailrec, отличаете in и out для generic type, знаете про классы where и sealed.

Первые делают, так скажем, реактивный UI на состояниях, переключаемых через действия (actions) и используют для этого LiveData и ViewModel из архитектурных компонентов. Также были неплохие доклады про архитектуру UI от Tinder и Netflix. Вторые сделали свои компоненты, заключающие в себя часть логики вместе с View, и связали их через свою реализацию event bus.

Не было такого, чтобы какие-то доклады были откровенно плохие. Так что хороших докладов было много, и упоминание каждого, заслуживающего внимания, займёт, пожалуй, с десяток страниц. Он даже не про то, как делать фотки из вашего приложения, а просто про теорию фотографии. Но лично мне не понравился доклад Ромена Ги про фотографию. Разработчик он, конечно, уважаемый, по всё же люди платили деньги за конференцию про Android-разработку, а не за курс по фотографии.

Нетворк

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

Кому стоит посетить droidcon SF?

Эту конференцию стоит посетить тем, кто хочет послушать прикладные доклады известных разработчиков, а потом ещё и лично спросить, как и что у кого работает. Атмосфера очень открытая и дружелюбная. Но я бы не рекомендовал идти на конференцию тем, у кого мало опыта. Доклады достаточно сложные, темп конференции очень высокий. 8 лекций в день — это сурово. Настолько сурово, что Slack, например, раздавал у себя на стендах Survival kit — мешочек с витаминками и таблетками от головной боли. А, как известно, в каждой шутке есть только доля шутки. Плюс, по крайней мере в этот раз, многие темы были не только про программирование, но и про инфраструктуру, свой опыт и практику. Так что тимлиды и руководители разработки также смогут найти на droidcon SF подходящий для себя контент.

Кстати, одно моё интересное наблюдение: в тех компаниях, которые были представлены, всё чаще говорят просто про инженеров и не делят на разработчиков, тестировщиков и инфраструктуру. Пока жива и очень актуальна тема CI, тестирования и всего с этим связанного, возможно, стоит поехать QA и DevOps-инженерам. Почему нет, все же инженеры. Это проявляется в том, что многие могут сменить свою роль и, будучи разработчиком, перейти, например, в инфраструктурную команду.

Общее впечатление

Общее впечатление крайне положительное. Я ожидал более слабых докладов, но «проходных» почти не было. К организации питания, вернее, его отсутствию, я был в принципе готов. Ожидал, что могут возникнуть проблемы с пониманием всего сказанного, но большинство спикеров говорили понятно и не особо разгонялись, так что проблем в принципе никаких не было. Иногда только нужно было немного привыкнуть к акценту. И однозначно превзошли ожидания техническая организация и неформальное общение. И это не только моё мнение. В холле и у стендов между докладами было очень много интересных обсуждений.

S. P. По ссылкам ниже обзоры других зарубежных конференций из нашего блога:
droidcon Vienna
Atlassian
droidcon London
GOTO Berlin
Web Summit

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»