Hui Xinchen은 2011년 8월 PHP 언어 공식 개발팀에 핵심 개발자로 합류했습니다. 그는 현재 조직 내 유일한 중국인이자 국내에서 가장 영향력 있는 PHP 기술 전문가 중 한 명입니다. Hui Xinchen은 유명한 PHP 기술 블로그인 "Wind and Snow"(http://www.laruence.com/)의 블로거로서 PHP의 기본 원리를 연구하고 공유하는 데 주력해 왔습니다. 그 중 "PHP 원리에 대한 심층적인 이해" 시리즈 기사는 널리 권장되었으며 중국에서 PHP 언어를 심층적으로 사용하고 사용자 정의하기 위한 고전적인 입문 교과서가 되었습니다. 그가 PHP 확장을 기반으로 개발한 PHP 프레임워크인 Yaf는 가장 빠른 PHP 개발 프레임워크로 알려져 있습니다. 동시에 그는 Lua 및 Taint와 같은 PHP 확장의 작성자이기도 합니다. PHP 5.4를 개발하는 동안 그는 거의 400건에 달하는 PHP 제공에 기여했습니다. 이번에는 Hui Xinchen과의 인터뷰를 통해 PHP 프레임워크와 확장, PHP 개발에 대한 지식을 공유해 달라고 요청했습니다.
InfoQ: 본인과 현재 팀에 대해 간략하게 소개해주세요.
Hui Xinchen: 안녕하세요 여러분, 저는 산시성 북부 출신의 Hui Xinchen입니다. 많은 PHP 서클 친구들이 저를 Brother Bird라고 부릅니다. "Linux Private Kitchen" 형님, 제 IM 별명은 "Xue Migratory Bird"인데, 제가 Baidu에 있을 때 엔지니어들 사이에서 가장 연장자로 여겨졌기 때문에 모두가 저를 그렇게 부르기 시작했습니다.
현재 저는 Sina Weibo 애플리케이션 아키텍처 팀에서 일하고 있습니다. 우리 애플리케이션 아키텍처 팀은 주로 고성능 및 신속한 개발 요구 사항을 충족하기 위해 Sina Weibo LAMP의 아키텍처를 최적화하는 데 전념하고 있습니다.
Weibo는 매일 수십억 개의 PV를 보유하고 있으며 테라바이트급의 데이터를 생성합니다. 처리 프로세스의 밀리초 최적화 또는 1바이트 감소는 우리에게 매우 흥미롭고 도전적인 작업입니다. 팀은 비즈니스 로직을 변경하지 않는 일부 최적화 방법을 통해 Weibo 홈페이지의 응답 시간을 44% 단축하고 TPS를 78% 높였습니다. 게다가 우리 팀은 기술 개선과 강우 작업도 담당하고 있는데, 이 역시 매우 흥미로운 일입니다. 공유하면 더 많은 것을 얻을 수 있기 때문입니다.
InfoQ: 공식 PHP 언어 개발팀의 유일한 중국인 멤버로서 이 조직에 합류한 후의 경험에 대해 이야기해 주세요.
후이 신첸: '유일한 것'이라는 타이틀은 확실히 일시적인 것 같아요. 앞으로 더 많은 국내 개발자들이 합류할 거라 믿습니다. 저는 작년 8월에 PHP 개발팀에 합류했습니다. 개발팀은 정확히 말하면 커미터라고 불러야 할 것 같습니다. 개발팀에 속하지 않고 PHP용 패치를 제공하는 학생들도 많습니다.
입사 후 오픈 소스 프로젝트를 실행하는 방법에 대해 새로운 통찰력을 얻었습니다. 가장 인상 깊었던 것은 다양한 프로세스 사양이었습니다. 프로세스 사양 버전을 공개하는 것부터 새로운 기능을 추가하는 것까지 다양합니다. 이러한 겉보기에 번거로운 사양은 어느 정도 느린 응답으로 이어지지만, PHP가 성장함에 따라 큰 사고를 피하기 위해 최선을 다할 것입니다.
또 다른 경험은 기술직에게 영어가 정말 중요하다는 것입니다. 특히 학부 과정에서 영어를 잘 배우지 못한 것을 후회합니다. 농담, 농담이 있습니다. 개발팀의 한 개발자는 내가 말한 내용을 이해하려면 정규식처럼 읽어야 한다고 말했습니다.
정보Q: 귀하의 블로그를 오랫동안 팔로우해 온 사람이라면 귀하가 PHP 홍보에 전념하고 있다는 것을 알고 있을 것입니다. 또한 중국의 여러 대형 인터넷 회사에서 근무하셨으며 개발에 대해 말씀해 주시겠습니까? 중국의 PHP?
Hui Xinchen: 이전에 내 블로그에서 숫자도 공유했는데, 즉 전 세계 상위 100만 개 웹사이트 중 70% 이상이 PHP를 사용하여 개발된다는 것입니다. 내 생각에는 PHP의 학습 용이성, 사용 용이성 및 확장 용이성이 인기 있는 주요 이유입니다. 여기서는 주로 PHP에 대해 이야기하고 싶습니다. 확장성.
PHP는 매우 강력한 확장 빌드 시스템을 제공합니다. 이 확장 빌드 시스템을 사용하면 현재 PECL 확장 라이브러리에 200개 이상의 표준 확장이 있습니다.
제가 2008년에 PHP 확장 작업을 시작했을 때는 인터넷에 관련 중국어 정보가 거의 없었으나 지금은 온라인에 매우 풍부한 정보가 있다는 것을 알 수 있습니다. 점점 더 많은 개발자들이 PHP를 확장하여 직면한 문제를 해결하려고 노력하고 있으며, PHP의 오픈 소스 정신은 개발자들이 이러한 확장을 커뮤니티에 오픈 소스하도록 어느 정도 영향을 미쳤습니다. 이것이 바로 PHP가 계속해서 개발될 수 있다고 생각하는 이유입니다. 장기적으로는 주요 원동력이다.
InfoQ: 오픈소스 프레임워크 Yaf의 저자이십니다. 오픈소스 프레임워크 Yaf의 특징을 간략하게 소개해주세요.
Hui Xinchen: 오랫동안 PHP에서 프레임워크를 사용해야 하는지에 대한 많은 논쟁이 있었습니다. 가장 일반적인 모순은 프레임워크를 사용한 후에는 개발 속도가 빨라지지만 성능이 보장되지 않는다는 것입니다.
Yaf는 이러한 모순을 해결하기 위해 개발되었습니다. PHP 확장(C 언어)을 사용하여 PHP를 구현하는 MVC 프레임워크입니다. 가장 큰 특징은 PHP로 구현된 기존 프레임워크에 비해 성능이 뛰어나고 리소스 소모가 적다는 것입니다. , 신속한 개발을 보장합니다.
Yaf는 주로 라우팅, 배포, 자동 로딩, 플러그인 메커니즘 및 간단하고 고성능의 뷰 엔진을 제공합니다. 이러한 기능은 모든 MVC 프레임워크에 필수적이며 휘발성이 아니므로 확장에 적합합니다. .
InfoQ: Yaf 프레임워크와 관련된 다음 개발 계획은 무엇입니까?
Hui Xinchen: Yaf는 앞으로 더욱 세련되고 전문화되는 방향으로 발전해야 한다고 생각합니다. 예를 들어 Yaf 1.0에 비해 Yaf 2.0은 새로운 기능을 추가하지 않고 주로 아키텍처 재설계와 성능을 추가합니다. 동조. 나는 Yaf가 모든 기능을 포괄하는 "초포괄적"이 되는 것을 원하지 않습니다. 단지 고성능을 추구하는 개발자에게 간단하고 효율적이며 확장 가능한 도구를 제공하고 "저탄소"에 기여할 수 있기를 바랍니다. 삶.
또한 Yaf를 좋아하는 친구들에게 감사의 말씀을 전하고 싶습니다. Yaf는 현재 커뮤니티에 많은 사용자를 보유하고 있습니다. 이것은 제가 처음 Yaf를 출시했을 때 예상하지 못했던 일입니다. 사용자 커뮤니케이션 포럼, QQ 그룹 등을 출시하고 설립했습니다. 이러한 일을 할 의도는 있지만 에너지는 없습니다. 그들의 열정이 제가 Yaf를 지속적으로 개선할 수 있는 원동력입니다. 저는 이 친구들에게 매우 감사합니다.
InfoQ: PHP 프레임워크인 Zend, Yii, CakePHP의 장단점을 간단하게 분석해 주실 수 있나요?
Hui Xinchen: 이 프레임워크는 모두 훌륭한 PHP 프레임워크입니다. 저는 이전 프로젝트에서 Zend와 Yii를 사용해 본 적이 있지만 아쉽게도 CakePHP를 사용할 기회가 없었습니다.
Zend Framework는 Zend Company에서 개발한 PHP 개발 프레임워크로, 잘 설계되어 있고 강력하며 광범위한 사용자를 보유하고 있으며 완전한 문서를 보유하고 있으며 활발한 커뮤니티를 갖추고 있습니다. 코드는 표준화되고 깔끔한 방식으로 작성되어 PHP 개발자가 읽고 배우기에 매우 적합합니다. 단점은 약간 부풀어 오르고 성능이 낮다는 것입니다.
Yii에서 가장 인상 깊었던 점은 AR입니다. AR은 실제 개발에 매우 편리하고 시스템에 자동 생성 도구를 제공하기 때문에 개인적으로 Yii를 매우 좋아합니다. 그러나 AR의 단점도 분명하며, 리소스를 많이 차지하며 대규모 데이터 애플리케이션에는 적합하지 않습니다.
InfoQ: 개발한 PHP 확장 3개를 추천해 주세요. 이 3개 확장을 추천하는 이유는 무엇인가요?
Hui Xinchen: 제가 작성한 오픈소스 확장 프로그램은 4개뿐이고, 시간순으로 보면 Yaf, Lua, Taint, Couchbase입니다. 각각 해결해야 할 문제가 다릅니다. 이러한 확장 기능을 간략하게 소개하겠습니다.
Yaf는 이전에 소개되었으므로 여기서는 반복하지 않습니다.
Lua는 PHP 확장에 Lua 엔진을 캡슐화한 것입니다. 이는 PHP에서 Lua 스크립트 실행을 지원하고 Lua 스크립트와 데이터를 교환할 수 있습니다. Taint는 XSS, Sql & Shell 주입 감지 확장 프로그램으로 주로 정적 감지 스크립트가 처리할 수 없는 일부 사항을 보완하는 데 사용됩니다.
Couchbase는 Couchbase Client를 캡슐화한 것이며, Couchbase Server는 고성능, 실시간 K-V 데이터베이스입니다. 그런데 우리 Sina Weibo 애플리케이션 아키텍처 팀은 여전히 Sina Weibo에 대한 몇 가지 확장 기능을 개발 중입니다. 이러한 확장 기능은 Weibo의 몇 가지 실제적인 문제를 해결하기 위한 것입니다. 이러한 확장 기능의 유용성과 안정성이 검증된 후, 우리는 해당 확장 기능을 오픈 소스로 제공할 것입니다. 커뮤니티.