Swoole
開源項目從2012
年開始發佈第一個版本,到如今已經有近7
年的歷史。在這七年的時間裏:git
8821
次代碼變動287
個版本1161
次issue
反饋603
次pull request
100
位開發者貢獻代碼GitHub
收穫了11940
顆星
2018
年咱們推出了全新的Swoole4
版本,在此以前Swoole
主要的編程方式仍是同步阻塞模式或異步回調。新的基於協程實現的CSP
編程逐漸成爲咱們惟一
推薦使用的編程模式。協程將紛繁複雜異步編程大大簡化。使用Swoole4
協程,既簡單又強大。在將來的Swoole5
版本,咱們計劃刪除非協程的相關特性和代碼,減小歷史包袱,提高穩定性,下降複雜度,減小沒必要要的選項,純粹協程化。 github
過去6
年咱們的團隊主要以兼職開發爲主,團隊成員大多來自於騰訊、阿里、滴滴、百度、360、小米等國內一線互聯網企業,還有一部分是國外的PHP
開發者,甚至PHP
語言ZendVM
內核做者Dmitry Stogov
也曾向Swoole
貢獻了代碼。除此以外,咱們還招募了一些在校大學生爲Swoole
編寫代碼,逐步培養年輕一代開發者。編程
在2018
年7
月份咱們組建了全職開發團隊,專一於Swoole
內核以及Swoole Cloud
雲原生組件和生態鏈的開發。告別過去的草莽班子,轉變爲專業化的開源技術研發團隊。swoole
咱們的目標是讓Swoole
項目成爲Node.js
、Go
這樣的工業級技術,成爲PHP
編程語言的在異步IO
和網絡通訊方面的基石。網絡
成立全職研發團隊後,咱們逐漸創建了很是完善的研發管理體系,提高Swoole
的軟件質量。主要包括如下幾個方面:框架
如今咱們投入大量精力實現單元測試腳本、壓測腳本、自動化測試,提高單元測試覆蓋率。目前已有680
項測試用例,17
項壓測項目,在Travis-CI
平臺能夠看到每一次Commit
和Pull Request
的編譯、測試結果。異步
研發工做也基於TDD
進行,在開發新特性、重構、Bug Fix
時,會先編寫對應的單元測試腳本,測試覆蓋到代碼變動的全部場景。編程語言
團隊成員之間進行代碼交叉審查、互相Code Review
,對於代碼變動的細節進行充分的評估和討論。異步編程
重大變動,會進行團隊Review
,花費數小時甚至數天討論每一行代碼變動細節。工具
對於非Bug Fix
、非性能提高、非重構,新特性或有可能改變底層行爲的變動,咱們會分爲4
個步驟進行。
RFC
的提案,https://github.com/swoole/rfc...,提案內容會詳細闡述此項變動的來龍去脈、相關配置項、影響的範圍、使用方法、示例。git
分支,編寫單元測試腳本,編寫代碼,實現提案中的全部內容,最終發起Pull Request
整個過程均是在GitHub
平臺公開進行的,對Swoole
項目感興趣的PHPer
都可參與。
爲了保證正式版本的穩定性,咱們在發佈前會在內部項目上進行灰度測試,檢驗新版本的穩定性。
另外咱們與大部分Swoole
框架做者創建了聯繫,新版本會先發給各大框架的做者提早試用。有重大底層變動、或不兼容項會提早與其餘Swoole
之上的開源項目做者進行溝通。
在過去的幾年,Swoole
項目作的並非很專業,存在較多BUG
和難用的地方,也讓不少使用者踩到了很多坑。最近半年成立全職研發團隊後,咱們在研發管理方面進步飛快,Swoole
的穩定性、成熟度方面已今非昔比。穩定性始終是第一位的,咱們在將來將會更加謹慎、嚴謹,保證質量。
2018
年下半年咱們對底層的代碼進行了屢次重構,在代碼結構、可讀性、複用性、封裝度方面進行了不少優化。使得Swoole
軟件更爲簡潔、優雅。
編程語言方面,咱們如今逐漸使用C++
替代C
語言。C++
提供的面向對象、智能指針、容器、模板等特性可以幫助咱們進一步提高團隊的開發效率。
在此也歡迎各位PHPer
參與Swoole
項目,貢獻代碼。
Swoole
的文檔也是廣爲開發者詬病的一個方面。在2018
年咱們團隊在文檔方面逐漸加大投入。從新編寫梳理文檔,加入豐富的例子程序,加入更詳細的配圖,修復細節問題,刪除帶有感情色彩的語句,更加客觀中立嚴謹。
新的一年咱們主要有3
個方向上發力。
刪除非協程的特性,刪除沒必要要的模塊,減小歷史包袱,提高穩定性、下降複雜度,減小沒必要要的選項,化繁爲簡,更簡單。
Swoole
內核層面仍然會繼續不斷重構、精簡,減小代碼行數,清理冗餘代碼,儘量地實現代碼複用。
在2018
年末,咱們已經開始逐漸與在生產環境上大量使用Swoole
的企業創建聯繫,包括騰訊雲
、閱文
、好將來
、陌陌
、優信
等企業。瞭解實際應用場景、業務模式,進行深度交流合做,提供建議,幫助企業技術團隊更好的解決業務問題,接受反饋改進底層。
2019
年咱們會基於Swoole4
協程開發一些配套的工具和組件,彌補PHP
在Cloud Native
時代生態鏈方面的不足。