В этом году мне посчастливилось посетить свою первую полноформатную конференцию по JavaScript и CSS, что также означало, что я смог поехать в Будапешт. Конференция проходила в Аквариум Клубе — ночном клубе под водой, расположенном прямо в центре города.
В этом сообщении в блоге я расскажу о некоторых своих личных впечатлениях от обеих конференций. Я также включу некоторые фотографии, которые я сделал со всего города. Больше моих фотографий из Будапешта можно найти здесь.
День первый — Семинар по прогрессивным веб-приложениям
Во вторник, за день до начала конференции, был проведен ряд мастер-классов, входящих в обычные билеты. Было много крутых мастер-классов на выбор, но я решил посетить Ускоренный курс прогрессивных веб-приложений от Нолана Лоусона.
Прогрессивное веб-приложение сочетает в себе лучшее из веб-и нативного опыта и может продвигаться браузером. Это означает, что PWA может работать в автономном режиме, может запускаться с главного экрана, поддерживает push-уведомления, фоновую синхронизацию и обладает многими другими характеристиками, которые обеспечивают собственные приложения. Прогрессивные веб-приложения используют работников служб для создания этих богатых возможностей в автономном режиме. Сервис-воркер — это, по сути, просто скрипт, который работает в фоновом режиме, чтобы позволить запускать функции, которые не требуют какой-либо страницы или взаимодействия с пользователем.
В последнее время о прогрессивных веб-приложениях много говорили, и было действительно здорово изучить эту новую технологию на примере pokedex.org Нолана.
День второй — CSSConfBP
Итак, первым днем конференции стала CSSConf, которую вел ведущий церемонии Thomas Gorissen, который придумал несколько новых значений для CSS — Centering Shit, Иногда. На CSSConfBP было много отличных докладов, и я дал много отличных советов по улучшению своих навыков работы с CSS. Вот полный список переговоров:
- CSS-анимация, оркестровка — Дэвид Хуршид (Слайды)
- Проливая свет на тень DOM — Дэвид Бернер (Слайды)
- Принцип Super Mario Bros. — Стефан Баумгартнер (Слайды)
- Новый макет CSS — Рэйчел Эндрю (Слайды)
- Просто Доступно — Эстель Вейл
- CSS-модули, CSS-переменные и будущее повторно используемого CSS — Глен Мэддерн (Слайды)
- Отзывчивые веб-приложения с контейнерными запросами — Джонатан Снук
- Веб-сайт Шредингера: использование Sass для создания неопределенных, генерируемых пользователями веб-сайтов — Джеки Бальцер
- Визуальное регрессионное тестирование CSS — Кевин Лоренц (Слайды)
- Компонентизация Интернета — Андрей Ситник
- В дикой природе — Тим Холман
Макеты с сеткой и флексбоксом
Один из моих любимых докладов на CSSConf был посвящен Новому макету CSS от Рэйчел Эндрю. В своем выступлении Рэйчел обсуждала новые способы создания макетов страниц в CSS, которые улучшают старые методы, такие как использование плавающих элементов, отображение таблиц и беспорядочная разметка из фреймворков (Bootstrap).
Использование таких инструментов, как Сетка (для 2D-макета) и Flexbox (для 1D-макета), автоматически сделает макеты адаптивными и гибкими по умолчанию, а также позволит более точно контролировать вертикальное и горизонтальное выравнивание. Мне очень нравится использовать Flexbox для упрощения размещения элементов на странице, и я считаю, что минимальный синтаксис является хорошей альтернативой добавлению бесконечного количества ‹div class="col-md-12"› к дочерним элементам.
.parent { display: flex; } .child { flex: 1 1 250px; }
Например, этот сокращенный пример позволит всем дочерним элементам, определенным в родительском, быть равномерно распределенными по строке с размером по умолчанию 250 пикселей каждый.
Модульный и повторно используемый CSS
Еще одним важным событием на CSSConfBP стал доклад Модули CSS, переменные CSS и будущее повторно используемого CSS, который провел Глен Мэддерн. В своем выступлении Глен говорил о том, что мы должны создавать более качественные компоненты, а не полагаться на инструменты, чтобы сделать наши текущие компоненты тематичными. Он также говорил о том, как компоненты должны реагировать на свое окружение, а это означает, что внешние факторы не должны переопределять компоненты.
«Макет — заботародителя»
Глен также повторил мнение Рэйчел об использовании таких инструментов, как Flexbox, для создания макетов с использованием родительских оболочек вместо указания столбцов сетки в дочерних элементах. Мы также должны обязательно использовать переменные для создания надежных, многократно используемых пользовательских свойств в нашем CSS.
День третий и четвертый — JSConfBP
JSConf вел Джейк Арчибальд из команды Google Chrome, который проделал большую работу, чтобы развлечь всех. О нас действительно заботились на конференции, много еды и отличный кофе предоставил Блумберг.
Вот список докладов первого дня:
- Что все должны знать о NPM — Лори Восс (Слайды)
- Автостопом по всему Память в JavaScript — Сафия Абдалла (Слайды)
- Зашифровать Интернет за 0 долларов — Ян Чжу
- Почему производительность имеет значение — Денис Мишунов (Слайды)
- Естественный пользовательский интерфейс с использованием JavaScript — Princiya Sequeira
- Event Sourcing для ваших приложений React-Flux — Maurice de Beijer (Слайды)
- Интернет кошек — Рэйчел Уайт
- Другая сторона эмпатии — Ник Хер (Слайды)
- Мы ❤ Музыка и интернет — Тим Пьетруски и Мартин Шуфусс
И список выступлений за второй день:
- Формулартический спектр — Суз Хинтон
- Создание офлайн-страницы для theguardian.com — Оливер Джозеф Эш (Слайды)
- Высокая производительность на пути критического рендеринга — Николя Бевакуа (Слайды)
- Наступательные и защитные стратегии для клиентской безопасности JavaScript — Ананд Вемури
- Изменение живого аудио с помощью API веб-аудио — Сэм Беллен (Слайды)
- Наука в браузере: организация и визуализация нейронных симуляций — Роб Керр
- HTTP/2 грядет! Разложить все по полочкам?! — Стефан Баумгартнер (Слайды)
- Вниз по кроличьей норе: JS в стране чудес — Клаудия Эрнандес (Слайды)
- Работает на моей машине, или Проблема между клавиатурой и стулом — Лена Рейнхард
Советы и рекомендации NPM
Один из лучших докладов на JSConf был сделан техническим директором NPM Лори Восс. Доклад Лори был первым на JSConf и содержал множество отличных советов, которые пользователи NPM могут использовать для улучшения своих рабочих процессов разработки.
Лори говорил о том, что вам не нужно ничего писать в файле package.json вашего проекта самостоятельно, так как вы можете использовать npm init для его создания. Также можно создать файл npm-init.js в корне каталога вашего проекта, содержащий некоторые настройки для дальнейшего управления файлом package.json вашего проекта.
Также было много советов о том, как использовать команды npm для улучшения рабочего процесса разработки, в том числе:
$ npm install --cache-min 999999 # ensure local installs $ npm publish --tag # publish package and push tags $ npm deprecate # safer alternative to unpublish $ npm outdated && npm update # check and update outdated dependencies
Еще один ключевой момент, который я вынес из конференции, касался производительности веб-приложений. На эту тему было несколько докладов от Денис Мишунов на тему Почему важна производительность и Николас Бевакуа на тему Высокая производительность на пути критического рендеринга.
Денис говорил о том, что производительность связана не с математикой, а с восприятием, с тем, как пользователь воспринимает эффективность вашего приложения. Это довольно важный момент, и очень полезно подумать о сокращении времени, в течение которого пользователь ожидает «пассивно».
Доклад Николаса больше касался технической стороны повышения производительности, и он предоставил некоторые инструменты, которые помогут в этом. Во-первых, важно знать, что происходит, и это можно измерить с помощью таких инструментов, как Chrome DevTools Audits и Google PageSpeed Insights. PageSpeed Insights также доступен в виде модуля NPM.
$ npm install -g psi $ psi danielgynn.com
Может быть полезно установить бюджет производительности для отслеживания влияния каждого коммита, который можно настроить с помощью Grunt task.
Сочувствие
Действительно важным вопросом, о котором несколько человек говорили на JSConfBP, была эмпатия и то, как эмпатия к другим разработчикам может значительно улучшить технологическую отрасль как сообщество. Рэйчел Уайт рассказала о том, что пробовать что-то новое может быть страшно из-за таких вещей, как страх быть отвергнутым и синдром самозванца, и как мы можем исправить это, проявляя больше сочувствия к людям, пробующим что-то новое. Выступление Рэйчел было воодушевляющим, так как она изучила несколько совершенно новых инструментов для создания кормушки для кошек на основе узла, которая работает через Интернет и продемонстрировала потрясающую живую демонстрацию этого в действии.
Ник Хер повторил некоторые замечания Рэйчел и рассказал о том, что конструктивная и положительная обратная связь — это гораздо лучший способ помочь кому-то в их проекте, а не разглагольствовать о ком-то, когда что-то работает не так, как ожидалось.
Возможно, наиболее хорошо принятый доклад за всю конференцию был сделан Леной Рейнхард и назывался Работает на моей машине, или Проблема между клавиатурой и стулом.
«Привилегия — это человеческая версия «работает на моей машине»»
Лена говорила о том, как технологическая индустрия должна смотреть на «отладку» самой себя и совершенствоваться, проявляя сочувствие к другим, чтобы повысить креативность, разнообразие и инклюзивность. Также было много идей о том, как мы можем улучшить себя, чтобы помочь отладить систему:
- Узнайте о системных проблемах и притеснениях
- Проявляйте эмпатию, потому что она нужна нам, чтобы быть хорошими дизайнерами и разработчиками.
- Поработайте над смирением, потому что никто из нас не единорог.
- Понимание привилегий и использование их во благо
- Устранение предубеждений и разработка правил для их устранения
- Слушайте и активно ищите голоса за пределами вашей сети.
- Усилить голоса других и меньше говорить
- Работать над разнообразием, потому что это наш моральный долг
- Работайте над инклюзивностью, чтобы сделать пространство уютным и безопасным.
- Дайте, наши знания, время, технические навыки, деньги
- Старайтесь быть союзниками, постоянно
Закрытие
Я прекрасно провел время в Будапеште и успел познакомиться и пообщаться со многими крутыми людьми. Организаторы и волонтеры проделали отличную работу, организовав мероприятие и сделав его действительно замечательным опытом для всех нас. Докладчики также были действительно великолепны, и я узнал много нового, что я могу использовать, чтобы стать разработчиком.
Первоначально опубликовано на www.danielgynn.com 26 мая 2016 г.