Разработка плагинов: делайте меньше
В поиске плагинов, существующих в сети, которые подошли бы мне для моей работы над Tidy Repo, я обнаружил следующие тенденции. Некоторые плагины были очень маленькими; я люблю говорить, что такие плагины, как Quick Page / Post Redirect и Simple Google Maps Shortcode «делают всего одну вещь, но делают ее хорошо».
Другие, более мощные плагины предлагали готовые решения для крупномасштабных вопросов. Вспомните WooCommerce или Buddypress. Лишь в очень редких ситуациях я сталкивался с плагинами, которые находились фактически где-то между этими двумя категориями, и это заставило меня думать над тем, какой подход является более предпочтительным для меня. В итоге я пришел к определенной мысли, общей философии, которой я придерживаюсь в процессе разработки плагинов.
Делайте меньше
Мой мыслительный процесс начался с того, что я вновь посмотрел Forgetting Sarah Marshall, прекрасную комедию, по моему мнению. В одной из сцен Kunu, которого играет Paul Rudd, обучает Peter’а, которого играет Jason Siegel, тому, как правильно заниматься серфингом. Его совет достаточно нелогичен.
Поскольку я являюсь заядлым гиком WordPress, мой разум сразу же провел параллели с разработкой плагинов. «Делайте меньше!» – именно таким должен быть девиз всех разработчиков плагинов. Есть очень много плагинов, которые просто напичканы бесконечными опциями, большая часть которых никогда не используется. Много плагинов с неудобным интерфейсом и сложной навигацией. Мои любимые плагины делают много всего «за кулисами», после чего предлагают пользователям достаточное пространство для небольших изменений и настроек. Они предлагают только те опции, в которых вы нуждаетесь. В них нет опций, которые вам не требуется.
Нужно дать ответ. Нам нужны плагины, которые делают меньше. Плагин делает одну вещь, и делает ее хорошо. Если функциональность слишком переполнена, то просто отбросьте ее в новый плагин и двигайтесь дальше. Именно это я почувствовал, когда наконец-то смог кристаллизовать свои мысли в виде одной фразы.
Делайте меньше, иногда
Это чувство продержалось примерно минуту. Некоторые из плагинов поставляются вместе с настройками. Ninja Forms, который, как мне кажется, нравится многочисленным пользователям WordPress, имеет опции для настройки индивидуальных форм, глобальные опции, API для разработчиков, и даже свои собственные расширения. Было бы глупо отбросить все эти дополнительные функции как ненужные. Или, допустим, плагин должен просто создавать формы, чтобы вам не понадобилось отправлять дополнительные почтовые уведомления, миксовать произвольные стили и т.д. Эти действия нужны WordPress-пользователям, которые желают создавать формы. Плагин должен делать несколько вещей, иначе он просто не будет работать.
Как же определить границу? Я решил создать запись по поводу моего нового плагина и указал, что Advanced Custom Fields – один из моих любимых плагинов, и я использую его практически в каждом своем проекте. Должно ли каждое отдельное произвольное поле быть представлено в виде своего плагина? Должны ли они разделяться по группам? Как много опций нужно добавить, и как их интегрировать? Наконец, мне нравится, что Advanced Custom Fields предлагает мне широкий диапазон настроек и изменений. Время от времени.
Размышление в контексте хранилищ функциональности не привело к каким-либо результатам. Мой слоган «делайте меньше» перестал работать.
Делайте меньше, дорабатывайте
Отбросив несколько известных исключений, я стремился к достижению простой функциональности, изолированных случаев использования и реализации интерфейса, который предлагал бы тонкие опции и настройки. И я действительно считаю, к сожалению, что большая часть плагинов вырастает во что-то чересчур амбициозное, реализуя каждый новый функциональный запрос, который приходит от пользователей, медленно превращаясь во что-то неподъемное.
Есть и другая цитата, которая активно используется дизайнерами в последнее время. Относится она к Антуану Экзюпери, французскому поэту 19 века.
В области дизайна она указывает на то, что нужно стараться сокращать количество слоев, чтобы контент мог «дышать», удаляя лишние завитушки, пока не останется ничего кроме важных предметов. Собственно, именно на это указывают современные тенденции к минимализму и новому плоскому (flat) дизайну.
Это также прекрасный ответ на мой слоган «делайте меньше». Плагин действительно должен выполнять всего одну вещь, решать одну задачу, нести в себе узкую функциональность. Однако иногда, чтобы сделать одну вещь хорошо, разработчик должен расширить сферу охвата. Только тогда, когда плагин делает несколько вещей хорошо, он справится и с одной вещью.
Да, теперь я больше похож на Kunu.
Делайте как можно меньше
Смысл этой статьи заключался в том, чтобы получить определенный совет, изучив сотню плагинов, протестировать их и передать вам, сообществу WordPress. Таким образом, вот этот совет.
Заставьте свой плагин делать только то, что нужно, и ни одной задачей больше.
Прекрасное и простое правило, верно? Если оно выглядит несколько неопределенным, просто подумайте о своих любимых плагинах и ответьте на вопрос: «Что этот плагин делает?» Для самых лучших плагинов ответ на данный вопрос уложится в одно предложение. Разве вы не бормочите «Ох, супер» при использовании этих плагинов, когда вы обнаруживаете именно ту возможность, которая вам требуется именно в тот момент, когда вам она нужна?
Давайте попробуем охватить эту стратегию в нашей разработке плагинов. Первое, что нужно сделать – это свести функциональность вашего плагина до одного предложения.
- Мой плагин делает поиск более релевантным.
- Мой плагин добавляет изображения в комментарии
- Мой плагин упрощает редактирование записей.
В этих предложениях не должно быть союза «и». Действительно, подумайте над возможностями ваших плагинов и определите их существенную функциональность.
Затем составьте график. Отметьте, что пользователь должен сделать, чтобы завершить задачу. Набросайте такой чертеж, чтобы он был перед глазами еще до разработки плагина. Как только вы приступите к разработке, он поможет вам грамотно поставить процесс. Если у вас появится новая возможность или опция, вы сможете проверить, согласуется ли она с вашим графиком.
Убедитесь в том, что опции необходимы вашему плагину, иначе не включайте их. Оцените определенные возможности, посмотрите, нельзя ли их как-то объединить между собой. Если что-то слишком массивное, удалите это. Затем поиграйтесь с плагином, проведите пользовательское тестирование плагина, чтобы понять, что будут спрашивать люди. Я понимаю, что вы, возможно, потратили долгое время на разработку той или иной возможности или опции, но если вы оставите их, то от этого может пострадать качество вашего приложения. Определите пункты, которые могут запутать пользователей, и улучшите их либо удалите. Продумайте их.
И, что самое важное, делайте как можно меньше. Поскольку чем меньше вы делаете, тем больше вы в итоге сделаете.
Источник: torquemag.io