Байки из библиотеки: пролог
Обеспечение эффективности и возможности повторного использования вашей библиотеки компонентов
Это первая из серии публикаций о библиотеке компонентов React, которую мы недавно завершили на thirteen23. Если вы понятия не имеете, что это такое, есть масса ресурсов по этому шаблону и его преимуществам. Мы рекомендуем следующие статьи здесь, здесь и здесь.
Что мне больше всего нравится в агентской работе, так это инкапсуляция наших проектов: все, что мы делаем, в конечном итоге упаковывается и отправляется нашему клиенту.
На thirteen23 все никогда не устареет, потому что каждые несколько месяцев мы начинаем заново с новой проблемы. Обратная сторона? Разделение может идти в обе стороны. Мы не всегда можем объяснять наш код клиентам. Мы стараемся компенсировать это, отдавая приоритет ясности и возможности многократного использования кода.
Задача
Этот фокус только усилился с нашим последним проектом: веб-библиотекой многоразовых компонентов для компании, которую мы гипотетически назовем… ну, скажем, Acme Corporation.
Итак, входит Acme, и мы, по сути, получаем Ikea, чтобы получить наш типичный результат. Вместо того, чтобы доставлять комплексное приложение, мы делаем детали и оставляем сборку клиенту.
Товары в разобранном виде сложно продать, но Ikea проста в использовании, вплоть до науки. Как разработчики, мы взяли страницу у наших шведских друзей и постарались сделать упор на простую интеграцию с нашим кодом. В частности, мы хотели решить эту проблему с помощью трех направлений:
- Ясность: код должен быть простым для понимания. Это выходит далеко за рамки тщательной документации. Код должен избегать кривых в структуре (меня не волнует, насколько красиво это выглядит, когда вы картируете четыре функции высшего порядка в одной строке). Компоненты должны быть разбиты на подкомпоненты, где это необходимо, чтобы мы могли легко рассуждать о сложном поведении и тестировать его.
- Гибкость: компоненты должны быть достаточно плавными, чтобы работать в любом контейнере или контексте. Они также не могут пропускать CSS или иным образом влиять на свое окружение после интеграции.
- Фрикадельки: Ладно, ладно, здесь мы используем метафору Ikea, но если мы подадим тарелку шведских фрикаделек в середине нашего проекта, наши клиенты будут доволен и жаждет большего.
Инструменты
Если у вас есть возможность выбирать инструменты, вы можете начать оптимизацию для удобства использования, прежде чем писать одну строку кода. Подумайте о таких вещах, как безопасность типов или возможности для чистых функций. Но прежде чем мы начнем, давайте рассмотрим наш стек:
- Машинопись: мы рекомендуем строго типизированный язык, если это возможно - не потому, что мы ненавидим отладку слабых типов (мы делаем),, а потому, что явность типов действует как мощный инструмент для самостоятельной документации.
- Реагировать: Ха-ха! Это был я все это время, Obnoxious React Evangelist ™!
Разрабатывая только компоненты, мы не могли делать никаких предположений о какой-либо вышестоящей архитектуре. Определяя представления как выходы заданных свойств, мы получаем две вещи: во-первых, заставляя нашу информацию поступать извне, мы откладываем выборку данных в любую среду, в которой будет находиться компонент . Во-вторых, мы получаем ясность, когда компоненты диктуют, что им нужно для работы. - Таблицы стилей SCSS: Sassy CSS или SCSS - это находка, позволяющая не только упорядочить таблицы стилей, но и легко их изменить. SCSS поддерживает конструкции, подобные программированию, такие как переменные, функции и даже циклы . Мы рассмотрим это подробнее в следующей публикации.
- Сборник рассказов: демонстрационная среда для демонстрации ваших блестящих новых компонентов. Сборник рассказов подходит для вашего проекта, как модель кухни - для каталога Williams Sonoma. Если вы не развертываете компоненты прямо на существующей странице, вашим компонентам нужно где-то жить, чтобы вы могли продемонстрировать их инвесторам и своей маме. Storybook не только предоставляет этот контекст, но и организует ваши компоненты и предлагает набор плагинов, которые помогают упростить процесс проверки.
Дальнейшие действия
Фундамент = заложен. В следующем посте мы начнем демонстрацию кода с набора советов по таблицам стилей, которые помогут упростить интеграцию ваших компонентов. Будьте на связи!
Найдите нас в Facebook, Twitter и Instagram или свяжитесь с нами на thirteen23.com.