Swoole
Open source projects from2012
The first edition began to be released in, and it is nearly now.7
Years of history. During these seven years:
- Submitted
8821
Secondary code change - Published
287
Versions - Receive and resolve
1161
nextissue
Feedback - Merged
603
nextpull request
- in common
100
A developer contributed code - In
GitHub
Harvest11940
A star
coroutine
2018
We launched a brand newSwoole4
Version, prior to thisSwoole
The main programming method is synchronous blocking mode or asynchronous callback. New Implementation Based on ConcordeCSP
Programming has gradually become usOnly
Recommended programming mode. Concorde greatly simplifies the complicated asynchronous programming. UseSwoole4
Synergy is both simple and powerful. In the futureSwoole5
Version, we plan to delete non-synergetic related features and codes, reduce historical burden, improve stability, reduce complexity, reduce unnecessary options, and purely synergize.
In the past6
Our team mainly took part-time development as its main task in 2008. Most of the team members came from top-tier domestic Internet companies such as Tencent, Ali, Didi, Baidu, 360 and Xiaomi, and some of them were from abroad.PHP
Developers, evenPHP
LanguageZendVM
Kernel authorDmitry Stogov
He also askedSwoole
Contributed to the code. In addition, we have also recruited some college studentsSwoole
Write code to gradually train the younger generation of developers.
In2018
Year7
In January, we formed a full-time development team focused onSwoole
Kernel andSwoole Cloud
Development of cloud primary components and ecological chains. Say goodbye to the rebellious team in the past and transform it into a professional open source technology research and development team.
Our goal is to makeSwoole
The project becameNode.js
、Go
This kind of industrial technology, becomePHP
In Asynchronous of Programming LanguageIO
And network communication.
Research and development management
After setting up a full-time research and development team, we have gradually established a very perfect research and development management system to upgradeSwoole
The quality of the software. Mainly includes the following aspects:
Test driver (TDD)
Now we are devoting a lot of energy to implement unit test scripts, pressure test scripts and automated tests to improve unit test coverage. At present, it already exists680
Item test case,17
Item pressure test items, inTravis-CI
The platform can see every timeCommit
AndPull Request
The compilation and test results of.
The research and development work is also based onTDD
, in the development of new features, reconstruction,Bug Fix
When, will write the corresponding unit test script first, the test covers all scenarios of code changes.
Code Review
The team members cross-checked the codes and exchanged opinions with each other.Code Review
To fully evaluate and discuss the details of code changes.
Major changes will be made by the team.Review
, spend hours or even days discussing the details of each line of code change.
RFC mechanism
For nonBug Fix
, non-performance enhancement, non-refactoring, new features or changes that may change the underlying behavior, we will divide into4
Three steps were taken.
- Initiate
RFC
Of the United States of America,https://github.com/swoole/rfc …The content of the proposal will elaborate on the antecedents and consequences of the change, related configuration items, scope of impact, usage and examples. - In the discussion of the proposal, we will fully discuss the proposal, dig into the root of the problem, analyze the advantages and disadvantages, and weigh the details. After all the issues have been discussed clearly, the project will finally be approved and will begin to be implemented.
- Development manager creates
git
Branch, write unit test script, write code, realize all contents in the proposal, and finally initiatePull Request
- Cross-review, code check, suggestions for improvement, feedback to development manager, continue to improve the details. Finally merged into the trunk.
The whole process is inGitHub
The platform is open, rightSwoole
Interested in the projectPHPer
All can participate.
Grayscale test
In order to ensure the stability of the official version, we will conduct gray scale tests on the internal items before the release to check the stability of the new version.
In addition, we and most of themSwoole
The authors of the framework have established contact and the new version will be sent to the authors of the major frameworks for trial use in advance. There are significant underlying changes, or incompatibilities, that will advance with otherSwoole
The author of the above open source project.
Summary
In the past few years,Swoole
The project is not very professional, there are manyBUG
And many users stepped on many pits.After setting up a full-time R&D team in the past six months, we have made rapid progress in R&D management.Swoole
In terms of stability and maturity, it is no longer what it used to be.. Stability is always the first, we will be more cautious and rigorous in the future to ensure quality.
Reconstruction
2018
In the second half of this year, we have refactored the underlying code many times and optimized the code structure, readability, reusability and encapsulation. MakeSwoole
The software is more concise and elegant.
In terms of programming language, we are gradually using it now.C++
SubstituteC
Language.C++
The provided object-oriented, smart pointer, containers, templates and other features can help us further improve the team’s development efficiency.
I also welcome all of you here.PHPer
participate inSwoole
Project, contribution code.
Document
Swoole
It is also an aspect widely criticized by developers. In2018
In 2003, our team gradually increased its investment in documentation. Rewrite and sort out documents, add rich example programs, add more detailed diagrams, fix detailed problems, delete emotional statements, and be more objective, neutral and rigorous.
Future 2019
In the new year, we mainly have3
We will exert our strength in all directions.
Do subtraction
Deleting non-cooperative features, deleting unnecessary modules, reducing historical burden, improving stability, reducing complexity, reducing unnecessary options, simplifying complexity and making it simpler.
Swoole
The kernel level will continue to restructure and streamline, reduce the number of lines of code, clean up redundant code and reuse code as much as possible.
In-depth project
In2018
At the end of the year, we have gradually started to use it in large quantities in the production environment.Swoole
The establishment of contacts between enterprises, includingTencent cloud
、Read articles
、Good future
、Momo
、Youxin
Such as enterprises. Understand the actual application scenarios and business models, conduct in-depth communication and cooperation, provide suggestions, help enterprise technical teams to better solve business problems, and accept feedback to improve the bottom layer.
Ecological chain
2019
We will be based onSwoole4
Xie Cheng developed some supporting tools and components to make up for it.PHP
InCloud Native
Deficiencies in the ecological chain of the times.