Добавить в корзинуПозвонить
Найти в Дзене

Экономичные паттерны проектирования

В продолжение предыдущего поста — да, было бы здорово, конечно. Но где бы тогда я находил вот такие экономичные паттерны разработки: Если во фронт-энде нужна иконка, и она уже есть в каком-то из установленных модулей, плагинов, библиотек, или иных зависимостей — не нужно копировать иконку в свой фронт. Нужно использовать ту, что в библиотеке. Не важно, что разработчик библиотеки её может заменить, удалить, или вся зависимость окажется больше не нужна. Просто никогда ничего не обновляйте, и тогда иконка пребудет веки. Допустим у тебя есть модуль или плагин, который больше не нужен. Но в то же время есть задача в трекере, совершенно с модулем не связанная, но для неё нужно написать немного кода. Правильный порядок действий: 1. Сотри всё что происходило в ненужном больше модуле. 2. Вставь туда новый функционал. 3. Описание и название модуля не меняй. Все равно никто не читает. Определенно, это жемчужина моей небольшой и беспорядочной коллекции. Нам нужно аяксифицировать кнопочки в Drupal.
Оглавление

В продолжение предыдущего поста — да, было бы здорово, конечно. Но где бы тогда я находил вот такие экономичные паттерны разработки:

Экономим 2 килобайта

Если во фронт-энде нужна иконка, и она уже есть в каком-то из установленных модулей, плагинов, библиотек, или иных зависимостей — не нужно копировать иконку в свой фронт.

Нужно использовать ту, что в библиотеке. Не важно, что разработчик библиотеки её может заменить, удалить, или вся зависимость окажется больше не нужна.

Просто никогда ничего не обновляйте, и тогда иконка пребудет веки.

Экономим две минуты

Допустим у тебя есть модуль или плагин, который больше не нужен. Но в то же время есть задача в трекере, совершенно с модулем не связанная, но для неё нужно написать немного кода. Правильный порядок действий:

1. Сотри всё что происходило в ненужном больше модуле.

2. Вставь туда новый функционал.

3. Описание и название модуля не меняй. Все равно никто не читает.

Экономим… что-то экономим

Определенно, это жемчужина моей небольшой и беспорядочной коллекции.

Нам нужно аяксифицировать кнопочки в Drupal. Чтобы события не навешивались повторно, используется once(), который добавляет элементу атрибут data-once="ajax". Но чтобы враги ничего не поняли, сделаем так:

1. Кнопочки будем рендерить сразу с атрибутом data-once="ajax" 😮

2. В коде JS первым делом удалим этот атрибут 😱

3. Скрестим пальцы и вознадеемся на правильный порядок исполнения и что вызов ajax-биндинга произойдет позже и не заметит удаленных атрибутов 🤯

Возможно, таким образом пытались победить какие-то «гонки» в JS. Ведь, как известно, чтобы победить racing condition, нужно самому стать racing condition.