Increment — выпуск про фронтенд

Инкремент — это журнал о том, как команды разрабатывают, управляют и используют масштабные программные системы.

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

С 2017 года набежало уже 13 выпусков. Каждый выпуск посвящен одной теме. Разные темы были затронуты, например: документация, опен сорс, тестирование, безопасность и интернационализация.

В мае 2020 года вышел выпуск про Фронтенд. Поделюсь небольшой выжимкой самого интересного, что я для себя нашел в этом выпуске. Это не пересказ и не сокращенная версия, а нечто вроде затравки.

Это всё мои субъективные мысли и выводы, мне нельзя верить. Но может кто-то найдет для себя тему интересной и погрузится в неё.

Ссылка на весь выпуск →

When frontend means full stack

Статья про то как фронтенд изменился. Раньше ты писал хтмл и цсс, нужно было заботиться о разметке, семантике, доступности и скорости.

Сегодня в добавок ко старым, появились новые трудности. Например: архитектура, потоки данных, эффективный план кеширования, производительность и версионирование.

Технологии с фронтенда можно использовать и в бэкенде. Один язык, одни инструменты и подходы здорово упрощают жизнь. Проекты можно сложить в монорепозиторий, а типы из Тайпскрипта использовать и на фронте и на бэке.

Мало того, даже бэкендом можно и не заниматься. Простые лямбды на Яваскрипте хорошо ложатся в Серверлесс мир.

Ссылка на статью →

A user’s guide to CSS variables

Статья про кастомные цсс свойства. В первую очередь, это свойства, а не цсс-переменные. Кастомные свойства, которые подчинены обычному поведению свойства. Например: наследование или каскад.

Кастомные свойства реактивные. Если использовать значение этого свойства и потом поменять (например при ховере), изменятся все стили с участием этого свойства. То есть изменяя значение свойства те места где оно используется — пересчитаются.

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

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

Короче, разберитесь как работают кастомные свойства и процветайте.

Ссылка на статью →

How to reevaluate your frontend architecture

Статья про то, как портал БаззФид подошел к вопросу обновления своего кода. Раньше сам был статическим набором статей. Со временем появились комменты, аналитика, реклама, админка и еще куча внутренних штук.

Со старой системной дальше ехать нельзя, нужна новая. Автор предлагает системный подход к решению такой задачи. Замерить показатели текущей системы: метрики и фичи. Новая система должна быть не хуже.

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

Ни один проект не может жить вечно на одном софте. Все умирает и теряет актуальность. Правильно подойти к вопросу обновления — первый шаг к успешному завершению такого проекта.

Ссылка на статью →

The process: Making Vue 3

Статья Эвана Ю про разработку третьей версии Вью. Каждый модуль Вью2 изучен и доработан. Вью3 не будет совместим с предыдущей версией.

Автор рассказывает о том что происходит сейчас. Над чем работает кор тима и как работают с рфц от комьюнити.

Тем кому не безразличен Вью будет интересно прочесть.

Ссылка на статью →

Micro-frontends in context

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

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

В статье описываются способы как можно организовать микрофронтенды, как их научить общаться друг с другом и какие преимущества можно получить от такого подхода.

Ссылка на статью →

A frontend stack for video games

Статья про разработку игр с помощью веб-технологий. Вместо Юнити и C# взяли Электрон и Тайпскрипт.

Игра еще в разработке, поэтому нет примеров кода или демо-версии. Но есть много скриншотов, размышлений и заключений, что на этом проекте веб-технологии составляют конкуренцию олдфагу Юнити.

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

Ссылка на статью →

Case study: Web components for screen readers

Статья про то как в Слаке разрабатывали доступные компоненты. И на инициативе Команды разработки сделали СлакКит с доступными компонентами.

Занимательно, что такая штука, как Слак, такое внимание уделяет доступности.

Ссылка на статью →

Ask an expert: Why is CSS. . . the way it is?

Статья описывает почему ЦСС такой каким мы его знаем. Автор рассказывает как принимались некоторые исторические решения и к чему они привели.

Сейчас многое изменилось и решения принимаются не только комитетом. Каждый может внести свой вклад: поработать над существующими спецификациями или предложить свою идею.

Ссылка на статью →

On composable, modular frontends

Статья описывает проблему современных фронтендов. Они большие, связные и переусложненные. Эта сложность означает большие количество багов и проблем с поддерживаемостью.

Автор предлагает рассматривать фронтенд, как систему из композиции модулей.

Модуль — это часть системы, которая слабо связана с другими частями. Такой модуль легко понять и внести изменения.

Композиция модулей означает, что модули могут эффективно взаимодействовать друг с другом.

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

Эта статья хорошо сочетается с мысли из статьи про Микрофронтенды.

Ссылка на статью →

The rise of React

Статья рассказывает про важность Реакта в развитии фронтенда. Реакт принес из мира больших проектов идею модульности и переиспользования.

Сама идея Реакта изначально решает проблемы Фейсбука. Все наши проблемы из этого и вытекают. Приложения на Яваскрипте едят батарейку устройств. Реакт делает многие вещи сложнее, взамен решая проблему модульности.

Короче, Реакт решает узкий круг задач. Брать эту штуку себе в проект надо аккуратно. Если ты считаешь по-другому, try me

Но нельзя недооценивать вклад в опенсорс и собравшееся сообщество, которое двигает индустрию вперед.

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

Ссылка на статью →

A chatbot expedition

Статья про устройство чатботов у больших игроков. Автор предлагает выделить из этой системы четыре основных пункта:

  • Логика диалогов (Dialogue logic)
  • ИИ модули (AI modules)
  • Управление отношениями (Relationship management)
  • Ядро (Kernel)

Такое разделение подтверждает актуальность соседних статей выпуска про модульности и композицию.

Полезно будет прочесть тем кто хочет погрузиться в мир взрослых чатботов и устроиться работать на Алисой Яндекса или Сири Эпла.

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

Ссылка на статью →

Design by design

Статья описывает развитие инструментов дизайнеров.

Если раньше хватало Фотошопа и ПСД файла, но сейчас все и двигается быстрее и эффективность лучше при работе в команде.

Фигма — хороший пример инструмента, который позволяет дизайнеру делать многие вещи в одном месте: прототипировать, прорабатывать, собирать комментарии и передавать разработчикам.

Фигма и все будущие инструменты будут рассчитаны на более удобную работу в команде.

Чего уж там, даже я, как разработчик, часто пользуюсь Фигмой. Че-то набросать, прикинуть или даже задизайнить. Если прет, то надо делать. Так можно.

Ссылка на статью →

A frontend of our own

Статья про то как фанаты фанфиков собрались и создали крутую платформу для публикации фанфиков и обмена мнениями. Они даже смогли в 2019 получить премию Хьюго за Лучшую Связанную Работу.

Ссылка на статью →

Interview: Sarah Allen

Интервью с разработчицей участвовавшей в разработке After Effects, Shockwave и Flash. Просто интервью.

Ссылка на статью →

Frontend at scale

Статья в виде интервью или ответов на вопросы. Представители Тиндера, Вимео, Канвы и Атлассиана рассказывают как у них устроена работа, как собираются метрики и некоторые ближайшие планы. И всё в разрезе фронтенда.

Ссылка на статью →

Case study: Mobile payments in India

Статья про то как Гугл запустил в Индии мобильную платежную систему. Интересно было прочесть про то как они заставили всё работать на телефонах где не было даже камеры. Они изобрели Audio QR — штуку для отправки и приёмки данных через динамики и микрофоны.

Ссылка на статью →

Итоги

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

И помните, любите то, чем занимаетесь.

P.S. Свежие посты публикуются в телеграме. Если чувствуешь, что они полезны, то подпишись.

Об Артуре Борденюке

Привет!

Меня зовут Артур. Раньше работал тимлидом и фуллстэк-разработчиком.

Чибик Артура