В этом году мне посчастливилось посетить свою первую полноформатную конференцию по 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, была эмпатия и то, как эмпатия к другим разработчикам может значительно улучшить технологическую отрасль как сообщество. Рэйчел Уайт рассказала о том, что пробовать что-то новое может быть страшно из-за таких вещей, как страх быть отвергнутым и синдром самозванца, и как мы можем исправить это, проявляя больше сочувствия к людям, пробующим что-то новое. Выступление Рэйчел было воодушевляющим, так как она изучила несколько совершенно новых инструментов для создания кормушки для кошек на основе узла, которая работает через Интернет и продемонстрировала потрясающую живую демонстрацию этого в действии.

Ник Хер повторил некоторые замечания Рэйчел и рассказал о том, что конструктивная и положительная обратная связь — это гораздо лучший способ помочь кому-то в их проекте, а не разглагольствовать о ком-то, когда что-то работает не так, как ожидалось.

Возможно, наиболее хорошо принятый доклад за всю конференцию был сделан Леной Рейнхард и назывался Работает на моей машине, или Проблема между клавиатурой и стулом.

«Привилегия — это человеческая версия «работает на моей машине»»

Лена говорила о том, как технологическая индустрия должна смотреть на «отладку» самой себя и совершенствоваться, проявляя сочувствие к другим, чтобы повысить креативность, разнообразие и инклюзивность. Также было много идей о том, как мы можем улучшить себя, чтобы помочь отладить систему:

  1. Узнайте о системных проблемах и притеснениях
  2. Проявляйте эмпатию, потому что она нужна нам, чтобы быть хорошими дизайнерами и разработчиками.
  3. Поработайте над смирением, потому что никто из нас не единорог.
  4. Понимание привилегий и использование их во благо
  5. Устранение предубеждений и разработка правил для их устранения
  6. Слушайте и активно ищите голоса за пределами вашей сети.
  7. Усилить голоса других и меньше говорить
  8. Работать над разнообразием, потому что это наш моральный долг
  9. Работайте над инклюзивностью, чтобы сделать пространство уютным и безопасным.
  10. Дайте, наши знания, время, технические навыки, деньги
  11. Старайтесь быть союзниками, постоянно

Закрытие

Я прекрасно провел время в Будапеште и успел познакомиться и пообщаться со многими крутыми людьми. Организаторы и волонтеры проделали отличную работу, организовав мероприятие и сделав его действительно замечательным опытом для всех нас. Докладчики также были действительно великолепны, и я узнал много нового, что я могу использовать, чтобы стать разработчиком.

Первоначально опубликовано на www.danielgynn.com 26 мая 2016 г.