WordPress, 구텐베르크 블록 구축에 대한 JavaScript Framework-Agnostic 접근 방식 탐색

게시 됨: 2017-09-23
사진제공:found_drama E.의 해적마을 – (라이센스)

다음 주 회의를 앞두고 #core-js Slack 채널에서 워드프레스의 JavaScript 프레임워크 선택에 대한 토론이 계속됩니다. 최근 주제 중 하나는 개발자가 선호하는 JS 라이브러리를 사용하여 새 편집기를 확장할 수 있도록 하는 Gutenberg에 대한 프레임워크 불가지론적 블록 렌더링의 가능성입니다. 이것은 "Gutenblocks"라고 구어체로 불리는 Gutenberg 블록이 Vue, React, Preact, Angular 또는 개발자가 편안하게 사용하는 모든 것으로 구축될 수 있음을 의미합니다.

이 아이디어를 지지하는 사람들은 보다 유연한 접근 방식을 추구하면 WordPress의 핵심 JS 프레임워크 결정이 덜 중요하다고 주장합니다. #core-js 채널에서 질문에 답하면서 Gary Pendergast는 분리를 유지하기 위해 Gutenberg를 구축할 수 있는 방법을 설명했습니다.

Pendergast는 “이 결정이 구텐베르그에 기여하는 사람들에게도 중요하지 않다고 말하는 것은 정말 농담이 아닙니다. “#2463에서 라이브러리는 예를 들어 lodash를 사용하는 것처럼 완전히 유틸리티 라이브러리로 처리됩니다. 몇 가지 작업을 수행하며 나머지 코드베이스에 지장을 주지 않으면서 비교적 쉽게 꺼내어 완전히 다른 것으로 대체할 수 있습니다. 구텐베르크에 기여하는 사람들은 우리가 우연히 가져온 라이브러리의 스타일이 아니라 구텐베르크 코딩 스타일에 기여하고 있습니다.”

결정이 언제 내려지고 어떤 요소가 고려되고 있는지에 대한 일정에 대해 질문을 받았을 때 Pendergast는 일정이 없으며 참여에 관심이 있는 사람들은 자신의 경험을 블로그에 올리고 JS 프레임워크로 구축할 수 있는 것들의 예를 작성해야 한다고 대답했습니다. 에 익숙합니다.

Pendergast는 "로드맵도 타임라인도 없으며, 그럴 필요도 없습니다. “Matt가 언급했듯이 이것은 기술적인 결정일 뿐입니다. 더 넓은 커뮤니티를 위한 중요한 결정은 'not React'를 선택하는 것이었습니다. 불행히도, 이 결정은 과도하게 빗나갔고 '어떤 JS 라이브러리로 플러그인을 만들 수 있을까요?'와 크게 혼동되었습니다. 때로는 '구텐베르그가 차단하는 JS 라이브러리의 관행은 무엇과 비슷할까요?', 어느 쪽도 관련이 없습니다. 경마처럼 취급하는 트윗과 게시물은 이런 식으로 도움이되지 않습니다."

Pendergast는 선택한 라이브러리가 "WordPress 요소에 의해 계속 래핑되고 기본 라이브러리가 노출되지 않을 것"이라고 말했습니다. Gutenberg 팀은 플러그인 개발자가 선택한 라이브러리를 사용할 수 있도록 구성 요소에서 모든 라이브러리 종속성을 제거하기 위해 노력하고 있습니다.

그러나 다른 커뮤니티 구성원은 핵심으로 선택된 JS 라이브러리를 단순한 기술 결정 또는 유틸리티 라이브러리로 격하하는 것을 열망하지 않습니다.

Kevin Hoffman은 "대부분의 개발자는 플러그인이 코어/구텐베르그용으로 선택된 프레임워크에 구속되지 않는다는 것을 이해합니다."라고 말했습니다. “그러나 그것이 결정의 중요성을 감소시키지는 않습니다. 더 많은 기여자를 격려하고 싶다면 대다수가 유능하고 자신감을 느낄 수 있는 프레임워크를 선택하는 것이 좋습니다. 이 대다수가 하나의 프레임워크로 플러그인을 개발 중이고 코어에 기여하기 위해 다른 프레임워크를 배워야 한다면 잠재적 기여자의 수를 제한하는 것입니다.”

Peter Booker는 Gutenberg의 분리가 아무리 우아하더라도 핵심용으로 선택된 라이브러리에 대한 적절한 이해는 특정 문제를 심층적으로 해결하는 개발자의 능력에 영향을 미친다고 주장합니다.

부커는 "나는 우리가 그 선택을 사소한 기술적 결정으로 그렇게 무시해서는 안 된다고 생각한다"고 말했다. “PHP, JavaScript 및 Backbone(무엇보다도)이 작동하는 방식을 이해하는 것은 WordPress의 문제를 올바르게 디버그할 수 있는 데 필수적입니다. Gutenberg를 위해 선택된 JS 프레임워크는 우리가 핵심 기여자가 아니더라도 많은 사람들에게 영향을 미칠 것입니다. 문제를 완전히 해결할 수 있는 필수 지식이 될 것입니다. 이것은 구텐베르크 팀보다 훨씬 더 많은 사람들에게 영향을 미칠 결정입니다.”

Gutenblocks 구축에 대해 유연하고 프레임워크에 구애받지 않는 접근 방식을 제공하면 어떤 의미가 있습니까?

Jason Bahl은 단일 앱에서 React, Preact, Vue 및 Angular를 혼합하여 "성능 악몽을 위한 레시피"인지 확인하는 사람이 있는지 물었습니다. 그는 Gravity Forms가 Vue 기반 Gutenblocks를 구축하고, Yoast가 React 기반 블록을 구축하고, WooCommerce가 Preact로 블록을 구축하고, 다른 플러그인이 Ember를 사용하는 예시 시나리오를 제시했습니다.

Bahl은 "유연하고 사람들이 무엇이든 사용할 수 있게 하는 것은 좋은 일이지만 모범 사례에 대한 많은 분열과 잠재적인 성능 문제로 이어질 수 있습니다."라고 말했습니다. “Vue, React, Preact, Ember, Vanilla JS 등에서 Gutenblocks를 빌드하는 방법에 대한 튜토리얼 팝업을 보게 될 것입니다. 이 튜토리얼은 보기에 멋지지만 또한 혼란스럽고 잠재적으로 커뮤니티와 수용된 모범 사례에서 더 많은 분열을 일으킬 수 있습니다. . 융통성은 어느 정도 좋지만, 어느 정도는 강한 의견도 좋다.”

Gravity Forms의 공동 설립자인 Carl Hancock은 Gutenblocks 구축에 프레임워크에 구애받지 않는 접근 방식을 제공하는 것이 프로젝트를 확장하는 개발자에게 거의 영향을 미치지 않을 것이라고 주장합니다. 개발자는 필연적으로 WordPress 핵심 사용을 채택하기 때문에 더 많은 유연성을 제공하여 결정을 덜 중요하게 만들 수는 없습니다.

Hancock은 "플러그인/테마 개발자가 원하는 것을 사용할 수 있도록 추상화 계층을 만드는 것과 관련이 있기 때문에 일부 사람들이 주장하는 무지개와 나비에도 불구하고 사람들은 대부분의 경우 핵심 용도가 무엇이든 채택하게 될 것입니다."라고 말했습니다. "즉, 코어 프레임워크가 아무리 복잡해도 결국 플러그인 및 테마 개발자의 진입 장벽에 직접적인 영향을 미칠 것입니다. 진입 장벽은 지금까지 역사적으로 낮았으며 자체 호스팅 CMS로서 WordPress의 성장에 직접적인 기여를 했습니다. 진입 장벽을 극적으로 높이는 것이 반드시 나쁜 것은 아닙니다. 예를 들어, Gravity Forms는 Preact, Vue 등 무엇이든 사용할 것입니다. 핵심에서 결정을 내린 후에 마침내 그렇게 하기로 결정할 수 있을 때 그렇게 할 수 있는 인력과 기술이 있기 때문입니다.”

웹을 발전시킬 워드프레스의 기회

W3 Techs에 따르면 WordPress는 현재 모든 웹사이트의 28%를 지원하며 어떤 프레임워크를 선택하든 많은 개발자가 소프트웨어를 확장하고 경력을 발전시키기 위해 배우기로 결정하는 라이브러리에 큰 영향을 미칩니다.

Gutenberg 프로젝트의 기술 책임자 중 한 명인 Matias Ventura는 토론 참가자들에게 더 큰 그림을 보고 웹을 발전시킬 WordPress용 솔루션에 대해 협력하고 공동 작업할 수 있는 기회를 받아들이도록 권장했습니다. 경쟁 프레임워크의 대표자들과 협력하려는 팀의 노력은 일반적으로 파편화되고 난해한 생태계에서 두드러집니다.

Ventura는 "WordPress가 지난 10년 동안 웹 표준의 원동력이었던 것과 유사한 방식으로 JavaScript UI 표현 측면에서 웹 개발을 발전시켜야 할 기회에 대해 기쁘게 생각합니다."라고 말했습니다. “사람들이 WP를 통해 웹 개발을 계속 배우게 될 것이기 때문에 우리가 프로젝트로서의 책임을 지고 있다고 생각하는 부분이기도 합니다. 많은 사람들이 WordPress를 통해 PHP를 소개받았습니다. 원래는 WP 기능 및 API와 상호작용만 하다가 결국에는 필요에 따라 언어에 대해 좀 더 깊이 파고들었습니다. 모든 프레임워크와 라이브러리에 걸쳐 가장 의미 있는 학습 도구를 제공하기 때문에 핵심이 JS 언어에 가깝다고 생각합니다.”

Ventura는 진행 중인 토론에서 참가자들에게 Gutenberg 팀이 웹을 발전시킬 솔루션을 위해 귀를 기울이고 노력하고 있다고 확신했습니다.

Ventura는 "구텐베르그를 통해 구축하는 방법과 제공하는 내용이 개발자 커뮤니티에 영향을 미칠 것이라는 점을 절대적으로 알고 있으며 이를 가볍게 여기지 않고 있습니다."라고 말했습니다. "저는 Evan(Vue) 및 Jason(Preact)과 이야기를 나눴습니다. '프레임워크 선택' 경연을 하는 것보다 웹을 공동 작업하고 발전시킬 수 있는 기회인 것 같습니다."