Press This: CI/CD в WordPress упускают из виду и как это изменить с помощью Maciek Palmowski

Опубликовано: 2022-02-05

Добро пожаловать в Press This, подкаст сообщества WordPress от WMR. Здесь ведущий Дэвид Фогельполь беседует с гостями со всего сообщества о самых серьезных проблемах, с которыми сталкиваются разработчики WordPress. Ниже приводится транскрипция оригинальной записи.

Дэвид Фогельполь: Всем привет и добро пожаловать на подкасты Press This, подкасты сообщества WordPress на WMR. Это ваш ведущий, Дэвид Фогельполь, я поддерживаю сообщество WordPress благодаря своей роли в WP Engine, и мне нравится делиться с вами лучшими из сообщества, которые вы слышите каждую неделю в прессе. Это как напоминание, вы можете найти меня в Твиттере @wpdavidv , или вы можете подписаться на это в iTunes, iHeartRadio, Spotify или загрузить последние выпуски на wmr.fm. В этом выпуске мы поговорим о чем-то, что я нахожу очень захватывающим, а именно о CI/CD и WordPress, о том, как это упускают из виду и как мы можем это изменить, и присоединяемся к этому разговору. Тот, кто хорошо знает эту тему. Присоединяйтесь к нам из buddy.works. Я хотел бы поприветствовать Мацека Пальмовски в прессе. Мачек, Добро пожаловать.

Мациек Пальмовски: Привет, Дэвид. Спасибо. Спасибо, что приняли нас.

ДВ: Я так рад, что ты здесь. Это тема, которую мы освещали несколько раз за эти годы здесь, в прессе. И, конечно же, удивительный мир морского льда постоянно меняется, и у каждого есть свои уникальные перспективы. И я очень жду этого разговора, тех, кто слушает. Что волшебство собирается покрыть, так это важность CICD, его мысли о том, почему CI CD часто упускается из виду в мире WordPress, как в последнее время, благослови кодеров. И, конечно же, несколько доступных аукционов для внедрения CI CD и практики WordPress. Итак, сегодня мы расскажем о многих хороших вещах, и я с нетерпением жду возможности погрузиться в магию. Я задам вам тот же вопрос, который задавал каждому гостю, вы, вероятно, помните его из своего профиля на wordpress.org. Но не могли бы вы вкратце рассказать мне историю вашей версии WordPress?

МП: Потому что я WordPress. Разработчик PHP в первый разработчик WordPress Лейтер. В какой-то момент своей карьеры я разрабатывал свою собственную CMS. Я имею в виду, что почти у каждого PHP-разработчика есть такой этап в жизни, как создание собственной CMS. В какой-то момент я понял, что это действительно сложно поддерживать, вы должны обновлять все, что вам нужно, чтобы все работало, и вы должны делать это в одиночку. Итак, в какой-то момент я понял, что, может быть, будет неплохо поискать что-то, что было создано большей группой людей, может быть, что-то установщики. После некоторого тестирования я нашел WordPress. Вот и с тех пор я работаю с WordPress, так что будет уже больше 10 лет.

ДВ: Итак, вы знаете, это забавно, я думаю, что у меня было несколько странных интервью, подобных этому, и я не знаю, была ли у кого-нибудь такая точная история происхождения, но я очень хорошо знаком со многими люди, которые, включая мою команду и наше агентство, когда мы начинали не как бизнес, основанный на WordPress CMS, а как свою собственную, а затем переняли такие вещи, как WordPress, торт и Laravel. Я так думаю, но это действительно интересно. В каком году вы открыли для себя WordPress?

МП: О, это было так давно. Я думаю, это было то, что я начал свое исследование в 46 лет, так что это было очень, очень долго. тому назад. Как вы сказали, умнее нас точно.

ДВ: Хорошо, хорошо. Ага. 2010 год для меня, когда настраиваемые типы сообщений и поля были введены или были частью ядра, был похож на тот критический момент, когда я рассматривал его как полнофункциональную CMS без серьезных изменений.

МП: Я помню, я помню этот момент, это было просто по-настоящему революционно. Потому что до этого мне приходилось использовать посты и страницы и создавать какие-то обходные пути кастомных типов постов, которые буквально всё меняли.

ДВ: Да, точно так же, как ваша собственная CMS. У вас, вероятно, был свой собственный тип лица. Так и у нас было. Это был большой год. И сразу после этого появился большой релиз WP Engine, компания, в которой я работаю. Группа крупных агентств, таких как 10 студий веб-разработки, а также такие вещи, как WooCommerce, — это действительно революционное время и история WordPress. Прохладно. Ну, я понял, что у меня есть небольшая уникальность, и эта история происхождения довольно интересна. Так что я говорил об этом ранее, когда во вступлении я как бы упомянул их слушателям, что вы знаете, buddy dot работает. И вы говорите всем там, какой приятель работает или какой приятель делает то, что вы делаете. Там.

MP: Итак, я думаю, что это приложение-заявитель CIC работает, поэтому оно делает почти то же самое, что и действия GitHub, или действия GitLab — это все другие приложения, которые помогают автоматизировать ваши развертывания. Разница в том, что у нас очень дружественный пользовательский интерфейс, так что вы можете начать свое приключение с CAC. Например, в действиях GitHub вам придется поиграть с этим файлом Yamo. И когда вы начинаете использовать body, у вас действительно приятный пользовательский интерфейс, он просто похож на Gutenberg, он просто создает конвейер CI CD из блоков. Так что это очень легко. И это было также причиной того, почему я начал использовать его много-много лет назад. Я хотел автоматизировать свой, мой процесс разработки, и я не должен был это делать.

ДВ: Он сделал эту штуку, но даже до того, как ты там работаешь, да, конечно, я был твоим пользователем. Это круто.

МП: Да, сначала я был пользователем, чем был. Я могу сказать, что я был, скажем так, официальным послом, потому что, где бы я ни работал, я всегда пытался убедить людей, работающих во время смены тела, потому что это было легко использовать для всех. И это было очень приятно. Было очень приятно услышать год назад, что ребята из from buddy спросили меня, не хочешь ли ты работать у нас?

ДВ: Что ты делаешь в летучих мышах? Кем вы работаете?

МП: Я работаю в Messenger, а это значит, что я пытался рассказать людям, в основном из пространства WordPress, о CIC. Как внести свой вклад, как автоматизировать их процессы, что вы можете сделать благодаря автоматизации DevOps, потому что речь идет не только о развертывании вашего кода с вашего локального сервера или с вашего локального хоста из-за сервера, но есть много вещей, которые вы сможет сделать. В промежутках вы можете протестировать свой код, вы можете купить что-нибудь.

ДВ: Мы предоставим вам массу возможностей поделиться этой историей. Мне просто любопытно, прежде чем мы перейдем к подробностям CI CD, я предполагаю, что у Бетти есть вещи, которые помогают WordPress, ci CD легче адаптироваться. Это правда? Конкретные вещи WordPress или более общие, и они также хороши для WordPress

MP: Во-первых, у нас так много действий, что многие из них можно очень легко использовать вместе с WordPress, например, все, что связано с Composer NPM. Так что это немного общее, но почти каждый разработчик в пространстве WordPress использует, но мы также работаем над некоторыми конкретными действиями, например, прямо сейчас мы готовим среду для модульного тестирования WordPress. Вероятно, мы также расширим этот сниффер PHP-кода, чтобы в наши действия были встроены стандарты WordPress WordPress, поэтому подумайте о таких вещах, и мы всегда пытаемся рисовать, чтобы добавить что-то новое. Так что, если кто-то хотел бы иметь новое действие, было бы здорово просто связаться с нами, потому что, когда у нас будет все больше и больше голосов о необходимости какого-то действия, больше шансов, что мы просто создадим, а если нет, то это очень легко сделать самому. Всегда есть возможность настроить любое действие так, как

ДВ: ты знаешь, что ты создал так много команд, использующих стандарты кодирования PHP и WordPress, мэшапы. Никогда так не приятно слышать, что ты работаешь над чем-то, что люди могут взять и уйти. Хорошо, давайте перейдем к более подробным сведениям о компакт-дисках CI на сверхвысоком уровне, потому что мы были здесь довольно хорошо осведомленными людьми, но не могли бы вы сделать для тех, кто может быть не очень знаком, как люди понимают, что такое CI CD.

MP: Да, прежде всего, как мы знаем, CI, CD часть CI CD не имеет ничего общего с компаниями, даже говорящими «да», но CI CD означает две вещи. Этот CI представляет собой непрерывную интеграцию. И это означает, что каждый раз, когда мы что-то изменяем в нашем коде, мы должны запускать все тесты, которые есть, поэтому каждое маленькое изменение делает так, что мы всегда должны быть уверены, что наш код постоянно работает. Итак, это часть CI. И затем у нас есть часть CB, и это означает две вещи, потому что это может означать либо непрерывную разработку, либо непрерывное развертывание. непрерывная разработка означает, что каждый раз, когда наша встроенная версия готова к отправке, человеку, ответственному за выпуск, просто нужно нажать кнопку президента, чтобы запустить ее. И они продолжаются, поскольку развертывание означает, что все происходит автоматически. Таким образом, каждый раз, когда кто-то отправляет изменения, он делает это и автоматически развертывается в рабочей среде.

ДВ: Я думаю, что это та часть, когда люди начинают думать о внедрении CI CD, они просто представляют себе все головные боли, которых они могут избежать, включив эти автоматические проверки в свои рабочие процессы, и я думаю, это то, что, как вы знаете, привлекает многих людей. к этому. Тем не менее, мне любопытно, что вы думаете о понятии, например, об использовании CIC и ваших рабочих процессах, и о том, зачем беспокоиться или каковы преимущества, но я хочу, чтобы вы, я хотел бы изучить это после нашего следующего перерыва после после этого перерыва. Пора включить рекламную паузу. Оставайтесь с нами, чтобы узнать больше, нажмите на это через мгновение. Всем привет. С возвращением, чтобы поделиться этим подкастом сообщества WordPress на W EMR. Это ваш ведущий Дэвид Фогель Пол, и у него будет интервью с магией Лебовски. Офски Бадди работает вокруг, посмотрите ICD и магию WordPress прямо перед перерывом, о котором вы немного рассказали о том, что такое CI CD. Это было очень краткое объяснение. Спасибо тебе за это. Так что очевидно, что CI CD — это, возможно, дополнительная работа. Я определенно думаю, что это дополнительная работа с точки зрения настройки ваших рабочих процессов и, возможно, даже работы с вашими рабочими процессами в некоторой степени. И я знаю, что многие люди могут использовать WordPress, и я думаю, что даже помимо любви к ковбойскому или ковбойскому кодированию, я раньше называл это кодированием из дикого списка. Но как вы думаете, в чем преимущества CI CD? Например, зачем беспокоиться об этой дополнительной работе?

МП : Для меня всегда было важно быть уверенным, что мое маленькое изменение в одной части кода на разрыв какой-то части счета, о которой я даже не знаю, потому что это было сделано кем-то еще из моей команды. Как на другом конце нашего скрипта нашего приложения. И это происходит постоянно, особенно когда мы создаем приложения большими командами. Мы не знаем всего кода, и действительно может случиться так, что наше небольшое изменение может сломать что-то еще, и благодаря фабрике, поэтому мы можем быть уверены, что этого не произойдет или, по крайней мере, это произойдет. Не так часто, как если бы у вас не было этих тестов. Единственная проблема с тестированием заключается в том, что многие разработчики знают, что мы должны тестировать наш код. Всегда есть проблема в основном с менеджерами с владельцами компаний. И знаменитая поговорка, что у нас нет времени на создание тестов, что, конечно же, неверно, потому что каждый раз, когда я слышу об этом, у меня нет времени на создание тестов. После двух недель. Мы, вероятно, будем исправлять что-то, что было упущено из-за отсутствия тестов. Что мы тратим время на исправление вещей, которых можно избежать, просто потратив час или два раньше.

ДВ: Так что это как двигаться медленно, чтобы двигаться быстро. Да, это займет у вас немного дополнительного времени, но позже вы сэкономите гораздо больше времени. Отсутствие необходимости тушить пожары и расслабляться — это точная реакция.

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

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

МП: именно с без теста, солнце было бы очень долго, т.к. в коде есть неопределенное количество багов. Вот в этом проблема.

ДВ: Есть еще одна детская песенка. Это песня, которая никогда не заканчивается. А может быть, это версия для NCIC. Ладно, круто. Ну, за этим стоят наши аналогии с песнями, и мы можем копнуть немного глубже. Как выглядит собственный стек CAC у вас или вашей команды за пределами приятеля, о котором вы говорили? Я предполагаю, но он использует свой собственный стек в потоке. Но какие еще инструменты вы считаете важными, в частности, для WordPress CAC.

МП: Может быть, для моего примера, потому что вне тела я также постоянно работаю над своим письмом веб-сервисов. И, конечно же, я использую тело, чтобы все было обновлено. В этом случае я использую Baddeck, например, чтобы сделать мой сайт статическим, чтобы преобразовать его в статический с помощью статического плагина WP. Я также использую его для выпуска одного или двух плагинов на GitHub, потому что я большой поклонник обновлений. Итак, есть так много способов, которыми мы можем его использовать. Как я уже сказал, не только для, для развертывания вещей.

ДВ: Как я имею в виду, как и ранее, вы говорите, что это примеры таких вещей, как Snipper стабильности PHP и качество кода WordPress, которые выделяются для меня, это как, вы знаете, основные элементы в стеке CAC WordPress. Мне просто любопытно, например, есть ли какие-нибудь другие ключевые моменты, о которых вы можете подумать навскидку?

МП: Я имею в виду, что в большинстве случаев давайте назовем их классикой, потому что phpcs — это модуль PHP для модульных тестов. Я также большой поклонник Cypress IO для сквозного тестирования. Так что да, это О, и, конечно же, мне также нравится, и это встроено в тело, у нас есть нечто, называемое Визуальным тестом. Так что он просто сравнивает экран до и после развертывания, чтобы увидеть, не сломалось ли что-то?

ДВ: Есть также юнит-тесты WordPress, помимо основной команды WordPress Core Team, что-то в этом роде.

M P: Да, я имею в виду, что в большинстве случаев я предпочитаю использовать WP mock by 10 up. Но да, иногда я использую эти два основных модульных теста, и я имею в виду, что иногда они раздражают. Я не знаю, как настроить. Например, на моем компьютере на Windows у меня постоянно возникают проблемы.

ДВ: То есть, как вы говорите, иногда это означает, что на стороне модульных тестов означает ли это, что вы предпочитаете писать свои собственные модульные тесты? Я бы так догадался. Но мне просто любопытно.

MP: В большинстве случаев некоторые, как я, используют WP mock, потому что они не требуют подключения к базе данных, а модульные тесты не должны иметь подключения к тем WordPress, которые в таких крупных и крупных фармацевтиках в этом случае чаще всего являются интеграционными тестами. Книга Да, WP mock. Позвольте мне просто сосредоточиться на том, что я должен проверить в своем плагине, и не беспокоиться о создании целой среды для тестов. Так намного проще. Иногда я также использую другой скрипт под названием Brain Monkey, он чем-то похож. Итак, в целом, я предпочитаю подход без базы данных, когда дело доходит до использования модульного теста.

ДВ: Это действительно интересно услышать. Когда мы задали побочный вопрос по этому поводу, вы как бы упомянули, как вы открыли для себя WordPress. Вы всегда использовали исследования CAC, когда создавали приложения для WordPress, или вы начали с ковбойского кодирования и увидели ICD?

МП: Конечно, я начал с ковбойского кодинга. Я буду Нет нет я могу сказать умнее больше линейных чистых прямо да, мы проталкиваем все через FTP потом удивляемся какой файл он не закачал. Ага. Ага. Итак, я начал так, я думаю, как и все, как открыть файл в Блокноте, пытаясь исправить что-то почти на сервере, просто чтобы через мгновение обнаружить, что по какой-то причине файл не загружается, а затем Я закрываю окно, и файл исчез. Так что да, таких случаев было много-много, но в какой-то момент я понял, что, во-первых, гораздо лучше разрабатывать на своем локальном хосте, а затем переходить на производство, и потому что разработчики ленивые люди, давайте будем честными и из этой лени приходит много интересных открытий. Поэтому я начал изучать, как автоматизировать некоторые процессы. Например, как помочь вам вернуться к этому с хорошим, как развернуть его на сервере, не беспокоясь о том, что вы не используете FileZilla или что-то в этом роде. Подумай о конце Да, я нашелся к концу, и вот я здесь,

ДВ: Ну вот. Это действительно входит в нашу следующую тему, например, принятие, поток и процесс, но интересно услышать о ваших мотивах. Я бы сказал, я думаю, что многие люди ленивы. И я думаю, что эффективность — это большая ничья, но мы должны окупить ее позже проблемами, вашим временем и вашей энергией в кризис. Вы знаете, что лень возвращается, чтобы укусить вас, если вы не будете осторожны. Поэтому я думаю, что это очень и очень актуально. Сделаем последний перерыв и скоро вернемся. Пора включить рекламную паузу. Оставайтесь с нами, чтобы узнать больше, нажмите на это через мгновение. Добро пожаловать обратно, чтобы нажать на это. Мы как раз сейчас говорим о важности CI CD в WordPress и о том, как мы можем получить более широкое распространение и большую безопасность, я думаю, поскольку люди продвигают свой код вживую. Прямо перед перерывом. Мэджик немного рассказал о своей истории с принятием CAC, уничтожением файлов и сжиганием приложений дотла, я думаю, с выпуском плохих функций и тому подобными вещами. Конечно, я был там, право, мы можем себе представить. Итак, позвольте мне задать вам этот вопрос. Как вы намекали ранее, вы думаете, что лень является причиной того, что люди не принимают CI CD. Вы думаете, я имею в виду, очевидно, что в мире WordPress есть вектор для некоторых. Как вы думаете, это также связано с техническим характером этого, как вы думаете, почему, по вашему мнению, C ICD часто упускается из виду в WordPress?

MP: Во-первых, самая большая проблема, когда дело доходит до CIC, — это начать свое приключение, которое говорит о том, что вам сначала нужно узнать что-то о контроле версий? Потому что без знаний о Git вы просто не сможете пользоваться глазами. И когда я разговариваю во время различных WordCamps с некоторыми людьми во время всех этих переговоров в коридоре, Виктуар несёт управление, потому что сейчас мы в основном не ищем увеличения. Я узнал, что есть много-много разработчиков, которые до сих пор не используют никакого контроля версий, как это. Я не знаю почему. Я имею в виду, большинство из них так говорят. использование Git только замедляло их работу. Весь процесс разработки стал сложнее и тому подобное. И если честно, я этого не понимаю. Но это что-то интересное. Это первый шаг, который не только мы как орган, но я думаю, что любая компания, связанная с CSV, должна начать обучать людей тому, почему они должны использовать версию, потому что без этого они хотят сделать следующий шаг в автоматизации. И когда они, когда они начнут его использовать, я думаю, что C ICD станет чем-то естественным, особенно сейчас, когда у нас все более и более сложные потоки разработки, верно, потому что теперь мы не только пишем наши файлы с локальной машины на сервер , во многих случаях нам приходится создавать наш CSS из CSS. Мы должны сжимать наш JavaScript, мы должны сжимать наши изображения, мы должны иногда, когда дело доходит до маршрутизации безголовых приложений, создавать все приложение целиком. Итак, есть много вещей, которые должны произойти, прежде чем мы запустим наш код в производство. Так что действительно помните, что иногда, много лет назад, я просто открывал блокнот, писал код и запускал его в производство. Это было все, а теперь сложнее

ДВ: Ага. Я думаю, что это очень важный момент. о размышлениях о путешествии и этапах внедрения и о том, что контроль версий, как вы знаете, является критически важным первым этапом, более доступным, чем совокупность того, что вам нужно освоить, чтобы внедрить CI CD. Думаю, в последние пару минут или в последнюю минуту здесь. У вас есть какие-либо другие ресурсы, которыми вы могли бы поделиться с теми, кто слушает и думает о внедрении компакт-диска CI?

МП: Думаю, я обману человека. Во-первых, после этого человека я, конечно же, узнал о контроле версий, потому что, как я уже сказал, это основы, без которых есть шанс пойти дальше. Я бы просто попробовал использовать тело, потому что именно так из-за этого графического интерфейса. Это очень легко. Начать очень просто, даже методом проб и ошибок. Но это очень легко. И я знаю, как я это сделал, и настоящие попытки поиграть с Бадди помогли мне понять весь счетчик CIC, точно так же, как я вижу, что он такой же сильный. Да, это действительно помогает. Это действительно очень помогает, и когда кто-то поймет основы. Следующим шагом будет изучение всех этих модульных тестов о различных способах развертывания кода, потому что мы можем сделать это разными способами. И я не имею в виду использование разных протоколов, потому что нам не нужно использовать FTP или SFTP в рамках Windows, мы можем, например, войти на сервер и загрузить его из Git или любым другим способом. так много способов сделать это. Но сначала просто попробуйте изучить основы и посмотрите, насколько это просто. А затем следующая часть, которую может принести все тестирование, будет происходить шаг за шагом. Худшая вещь

ДВ: Я нашел то, на что вы ссылались ранее из tunap, с предварительно выполненными модульными тестами и возможностью любить рифф, это тоже своего рода хороший мост. Это было бы полезно для многих других людей. Но это все было очень круто, действительно очень интересно. И я думаю, вы знаете, я, конечно, знаю свою долю, и, может быть, даже иногда я сам, кто продвигал ваше производство в Калгари, получая ваше прикрытие, ладно, в любом случае, поэтому мне пришлось копнуть немного глубже здесь по некоторым из этих моментов. Но когда GQ был очень хорош, хорошо, что ты сегодня на шоу.

МП: Спасибо, Дэвид. Было действительно здорово поделиться некоторыми мыслями о CI CD, и я очень надеюсь, что все больше и больше людей попробуют его.

ДВ: Отлично. Что вам нравится, чтобы узнать больше о том, чем занимается волшебство, или узнать о своем путешествии по CI/CD, вы можете посетить buddy.works. Спасибо всем за то, что слушали этот подкаст сообщества WordPress на WMR. Это был ваш ведущий Дэвид Фогельполь. Я поддерживаю сообщество WordPress через свою роль в WP Engine. И я люблю приносить лучшее из сообщества сюда каждую неделю на Press This.