6 советов по оптимизации кода для создания шаблонов электронной почты
28 декабря 2022 г.Сегодня я хочу поговорить о коде, который мы сейчас пишем для нашего проекта LLazyEmail.
Чтобы получить более подробную информацию, вы можете прочитать мои предыдущие статьи на эту тему.
* О шаблонах * Зачем запускать рассылку * Коммерческие письма запутаны, часть первая
Поскольку я хочу улучшить наш генератор шаблонов электронной почты, мы начали работу над третьим шаблоном электронной почты, который мы включим в нашем генераторе.
Одна из наших целей — оптимизация кода, улучшения и охват различных пограничных случаев.
Создание нового шаблона было интересным опытом. В основном мы его завершили.
Готово около 95%, мне просто лень доделывать. Переход к созданию функций вместо полировки строк HTML.
<цитата>Вот почему этот проект имеет ценность, потому что код для электронной почты уродлив и легко ломается.
Итак, при создании третьего шаблона и помощи со стороны я выяснил, что можно улучшить в будущих итерациях.
1. У других людей могут быть другие уровни навыков и знаний в области кодирования
Всегда забывайте об этом :)
Даже с простым шаблоном у нас могут возникнуть проблемы. Так что мое предположение было неверным.
Результат: я потрачу больше времени и создам подробные инструкции с пошаговыми инструкциями. Возможно, опубликую здесь статью и об этом.
2. Отчет об ошибках
Наш шаблон содержит много слоев. Иерархия странная (по-прежнему), поэтому наличие проверки и хороших отчетов об ошибках имеет решающее значение для отладки кода и экономии времени.
3. Нам нужно начать повторно использовать наш код.
Я хочу создать шаблон GitHub с пустыми папками, файлами, конфигурацией и т. д.
4. Я хочу попробовать некоторые модули с открытым исходным кодом, которые делают то же самое.
Звучит проще, чем есть на самом деле. Я попытался установить несколько модулей npm, но наша текущая установка с Rollup, Babel и Jest дает сбой по каким-то странным причинам.
Результат: я пытаюсь разделить наш код на несколько частей и решить эту проблему отдельно. будет песочница для игры с новыми функциями. А позже это будет подмодуль, который будет делать только одну вещь и может быть встроен в текущий проект.
5. Я хочу организовать тесты Jest и команды, вызывающие их по-разному.
Я уже начал исследовать этот путь. Теперь для каждой большой части, которая у меня есть, я использую отдельный файл и добавляю номер в качестве префикса.
Это помогает мне поддерживать правильный порядок в папке «тесты».
И наш файл package.json > раздел сценариев начинает выглядеть уродливым и неуправляемым. Я решил проверить, как хаски упорядочивает свои скрипты, и перенес некоторые команды в скрипты bash.
Автоматизация!
Основная цель – сократить время преобразования следующего шаблона в части, совместимые с нашим генератором. И иметь возможность перенести нашу логику в компоненты React в будущем.
6. Сложные блоки требуют большего внимания и лучшей оценки перед началом кодирования.
Поскольку наш генератор имеет некоторые правила, логика шаблона должна им подчиняться. Текущее решение не является идеальным. Но это работает. И как заметил, создал задачу, чтобы потом попробовать разные варианты.
Приведу пример.
Вызов БД или API возвращает сложный объект, который мне нужно отобразить внутри нашего шаблона.
Как я должен передать его в наш шаблон?
Должен ли я создать несколько слоев для отображения: раздел > ряд > блок > элемент?
или лучше просто создать кусок этого шаблона, он же скелет, и поместить все в один файл?
Кроме того, важно отметить, что иногда люди заполняют эти данные вручную. Например, создание контента в Google Docs или Notion и его экспорт. Нам также необходимо обрабатывать эти случаи.
Но мне все еще нужно вернуться к нашим ошибкам.
Если вам интересно узнать подробности -> поделитесь этой статьей, оставьте комментарий или просто пометьте наш главный репозиторий на GitHub, чтобы нас заметили больше разработчиков .
Оригинал