Это было в конце лета 2018 года. Я был стареющим разработчиком, который не совсем понимал, какое место в мире WordPress занимаю. Я потратил более десяти лет на изучение всех тонкостей платформы, с которой началась моя карьера, а также послужил хобби для других любимых проектов, которыми я хотел заняться.
Отчасти мне было скучно. Мне нужен был новый вызов.
Я люблю WordPress. Более того, я ценю то, что WordPress позволил мне достичь за эти годы. Однако меня это больше не устраивало для моего личного блога. Он подходил для работы, но я часто обнаруживал, что в нем гораздо больше устройств и приспособлений, чем мне нужно. Я также много лет писал сообщения в блогах в Markdown, а не в классическом редакторе. WordPress просто больше не был частью моего рабочего процесса для моего блога. Иногда это было помехой.
Вызов принят.
За выходные я создал рабочую индивидуальную систему блогов. Я не решаюсь называть это системой управления контентом (CMS), потому что ей не хватало важных функций, таких как административный интерфейс, которые лежат в основе любой CMS. Тем не менее за два дня я построил рабочую систему с нуля.
Я понятия не имел, что смогу совершить такой подвиг, не полагаясь на полезные функции и инструменты, которые WordPress так щедро предоставлял на протяжении большей части моей карьеры программиста. Я не могу сосчитать, сколько раз я случайно печатал, esc_attr()или esc_html()просто вспомнил, что это были функции WordPress. Моя мышечная память WordPress была сильной. Не зная об этом, все, что я узнал, создавая поверх WordPress, подтолкнуло меня к тому, чтобы стать более разносторонним разработчиком PHP. Есть несколько API, с которыми я не работал в ядре WordPress. Я понимал большую часть исходного кода и знал причины большого количества устаревшего мусора.
Мой личный проект бледнел по сравнению с мощью WordPress и остается таковым по сей день. Однако это вывело меня из зоны комфорта. Это позволило мне исследовать старые идеи по-новому.
Одним из примеров было понимание того, как работают правила перезаписи и маршрутизация. Некоторые из моих друзей и я недавно пошутили, что никто толком не разбирается в WordPress Rewrite API. Вы просто возитесь с этим, пока что-то не сработает, и новый код больше не нарушит работу вашего сайта. Есть много существующих библиотек, но я хотел понять, как это работает, для моего собственного назидания. Поэтому я решил создать класс HTTP-запроса, маршрутизатора и контроллера. Конечным результатом стало элегантное решение, в значительной степени заимствованное из других фреймворков PHP.
С помощью простой строки кода, как показано ниже для настройки типа содержимого «книга», я мог обрабатывать входящие запросы для страницы книги, отображать ее на правильный ресурс и выводить шаблон в интерфейсе пользователя. Я начал задаваться вопросом, почему я так много лет избегал этой фундаментальной концепции веб-сайта как разработчик.
// Create ‘example.com/books/book-name’.
$this->router->get( ‘books/{name}’, Controller::class );
Было много других областей, в которых я начал сомневаться в «способе работы WordPress». Во время этого путешествия открытий я смог узнать вещи, которые я мог бы использовать в своих проектах WordPress. Выйдя в более широкий мир разработки веб-сайтов, я смог лучше увидеть недостатки платформы, которые помогли мне влюбиться в программирование. Тем не менее, я также смог лучше разглядеть красоту системы, которую тысячи разработчиков использовали на протяжении последних 15 лет.
Дело не только в коде
У меня была возможность изучать и изучать большие фреймворки, такие как Laravel и Symfony . Тем не менее, я также изучил, как работают другие платформы, с чисто пользовательской точки зрения.
Единственное, что я знал наверняка, – это то, что я хотел протестировать платформы, созданные для людей, которые пишут на Markdown. Я не искал огромных платформ, способных конкурировать с мощью WordPress, таких как Joomla или Drupal. Вместо этого я смотрел на более легкие решения, такие как Grav , Jekyll и Hugo . Я хотел понять, как пользовательский опыт вписывается в мой рабочий процесс.
Из всех протестированных мной решений у каждого были свои преимущества. У каждого также были особенности или методы выполнения вещей, которые мне не нравились. Хорошим моментом в этом опыте было то, что я смог определить, как я хочу, чтобы моя платформа для ведения блогов работала на меня. Чтение мыслей других участников этих сообществ также позволило мне узнать от пользователей за пределами сообщества WordPress о том, почему им нравится их предпочтительная система ведения блогов.
Я пошел вперед. Используя то, что я узнал на этих платформах, я создал то, что с удовольствием использовал. Это было не идеально и, вероятно, никогда не будет. Пространство для роста – неплохая вещь.
За это время я возродил свою любовь к ведению блога с помощью WordPress. Хотя это не всегда популярное мнение, редактор блоков ощущался на дрожжах лучше, чем классический редактор. Я видел, что регулярно использую это. Помимо личного блога, я начал использовать его в других проектах. Я до сих пор каждый день пишу в Markdown. Тем не менее, мне впервые за много лет нравится писать в редакторе WordPress.
Почему вам стоит попробовать новые платформы
С точки зрения разработчика, не стоит расслабляться и полагаться на одну систему. Вместо того, чтобы называть себя «разработчиком WordPress», задумайтесь над этой терминологией. Вместо этого вы должны быть программистом PHP или программистом JavaScript. Или, еще лучше, просто назовите себя программистом. Программисты решают проблемы. Инструменты или языки – это то, что вы используете, чтобы добраться из точки А в точку Б.
На рынке труда быть более разносторонним программистом открывает больше возможностей. Хотя большинство из нас может только надеяться, что WordPress станет ведущей платформой в следующие 10, 20 или 50 лет, вы должны быть готовы к любому будущему.
Еще одно преимущество работы с другими платформами время от времени заключается в том, что вы изучаете идеи, которые можете вернуть в экосистему WordPress. Например, интересно посмотреть, как стартовая тема Sage реализует механизм шаблонов Laravel Blade. Эти идеи могут помочь сформировать будущее WordPress.
Некоторые идеи можно перенести в ядро WordPress. Другие могут улучшить командные рабочие процессы в агентствах.
Непрерывное образование приносит пользу сообществу WordPress в целом. Не ограничивайте это обучение идеями, специфичными для WordPress. Учитесь извне и возвращайте это.