Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Качество сборки проектов WordPress: практический пример

by
Difficulty:IntermediateLength:MediumLanguages:

Russian (Pусский) translation by Yuri Yuriev (you can also view the original English article)

Одним из лучших способов овладения новыми знаниями в программировании является повторение: когда вы, запустив процесс, узнаёте о допущенных вами ошибках, переписываете код и повторяете всё заново.

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

И правда, когда дело касается программирования, первое, что мы слышим и о чём говорим, качество. Если более точно, мы говорим о качестве сборки внутри программы.

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

Слово "качество" имеет три определения:

  1. Хорош предмет или плох,
  2. Свойство или особенность кого-то или чего-то: нечто, отличающее человека или вещь,
  3. Высший уровень объёма или мастерства.

Если на минутку задуматься, как это связано с построениями в WordPress, что приходит в голову?

  • Может, организация файлов, составляющих ваш проект?
  • Может, соответствие вашего кода правилам  WordPress Coding Standards?
  • Может, это связано с тем, насколько хорошо вы следуете лучшим примерам выбранной парадигмы?
  • Может, со всем вышесказанным; может, с тем, чего нет в списке.

Как бы то ни было, "качество" имеет разное значение для разных людей. Но я считаю, что есть определенные вещи, которые не имеют разночтений относительно WordPress разработок.

Качество и разработки WordPress

Прежде чем идти дальше, замечу, что при цитировании не называю имён, даже если это весьма известный источник.

Причина заключается в том, что я не хочу, чтобы читатели моих лекций отвлекались на личность автора высказывания. Надеюсь, это понятно?

Так случается.  Говорю по своему опыту.

Так вот, недавно некто высказался по поводу фрагмента кода, которым я пользовался при постройке тем в WordPress. Вкратце, вот это:

Сказать, что чем больше строк кода, тем лучше, мог только закоренелый, махровый разработчик WordPress. Чем меньше кода, тем лучше.

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

Я не заявлял, что длинный код всегда лучше. Нет. Я имел в виду, что иногда целая функция лучше, чем короткая строчка кода.

Как это выстроено в нашей собственной работе? Как это пересказать менее опытным программистам? Давайте возьмём конкретный пример и посмотрим, что можно оттуда почерпнуть.

Пример: как фильтры обеспечивают качество

В WordPress 4.4 поддержка тегов title устроена таким образом, что вам достаточно добавить следующую строку в файл functions.php:

Если вы не хотите использовать эту функцию, вам необходимо вставить элемент title в шаблон заголовка вашей темы.

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

Но почему никто не путается с названием? Спасибо SEO плагинам. Они часто изменяют title элементы для удобства поисковых систем.

Возьмём пример из реальной жизни: скажем, вы работаете над темой и её title элемент включает вызов wp_title. А вам надо быть уверенным, что этот wp_title фильтруется так, чтобы другой код, вроде вышеупомянутых плагинов, мог его обновлять.

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

Возможно, вы сделаете ещё шаг, введя название блога и его описание. Или вам понадобится заголовок, отличный от названия домашней страницы.

Тогда вы поступите таким образом:

Отдельно - вне плагинов или прочей работы - всё выглядит замечательно. Это отдельная строка кода, с помощью которой любители добиваются своей отдельной цели.

Но что происходит, когда кто-то выдаёт целую тему? То есть, что происходит, когда кто-то хочет использовать плагин, чтобы изменить title элемент?

Он не работает.

Это лишь одна из причин, почему не всегда краткость кода является преимуществом и почему, чем меньше код, тем меньшего он качества.

Больше кода, больше качества

Для того, чтобы убедиться в гибкости wp_title(), нам надо определить пользовательскую функцию и фильтр, применив wp_title, поставляемый WordPress:

Этот образец кода значительно длиннее единственной строчки из предыдущего примера, но он более гибок.

Во-первых, код проверяет, отражается ли страница в формате RSS. Если это так, он возвращает только указанный заголовок. В противном случае, добавляет имя заголовка в строку заданного $title. При просмотре главной или титульной страницы код помещает описание после разделителя.

Наконец, если пользователь разбивает сайт на страницы, код добавляет номер страницы для разделителя и названия.

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

Если так, значит, вы всегда настроите функцию, которая лучше всего подходит для вашей собственной работы.

Это качество?

Ключевой смысл этого урока не в том, как установить фильтр заголовка или фильтры, не в том, как обращаться с заголовками. Тем более, что wp_title устарел, как было сказано выше.

Мы закончили с настроенной версией заголовка. Мы также оставляем сторонним разработчикам возможность переопределения нашего собственного кода.

Хотя здесь кода больше, это решение высшего качества.

Заключение

Хотя так бывает не всегда. Иногда длинный код может снизить качество и может увеличить сложность. Но это не мысль нашего урока. Возможно, повод для обсуждения в другом месте.

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

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

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

Всё вместе обеспечит вам качество.

Если вы ищете примеры других тем WordPress для проверки качества кода или для своих работ и проектов клиентов, можете подыскать что-то интересное на the marketplace.

Если интересуетесь другими моими работами для Envato, вы их найдёте на my profile page, заходите on my blog и/или на Twitter @tommcfarlin , где я рассуждаю о развитии софта в контексте WordPress.

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

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.