官术网_书友最值得收藏!

Smaller projects

The second benefit is breaking the complexity of the project. When you add a feature to an application such as PDF reporting, even if you do it cleanly, you make the base code bigger, more complicated, and sometimes, slower. Building that feature in a separate application avoids this problem, and makes it easier to write it with whatever tools you want. You can refactor it often, shorten your release cycles, and stay on top of things. The growth of the application remains under your control.

Dealing with a smaller project also reduces risks when improving the application: if a team wants to try out the latest programming language or framework, they can iterate quickly on a prototype that implements the same microservice API, try it out, and decide whether or not to stick with it.

One real-life example in mind is the Firefox Sync storage microservice. There are currently some experiments to switch from the current Python + MySQL implementation to a Go-based one, which stores users' data in standalone SQLite databases. That prototype is highly experimental, but since we have isolated the storage feature in a microservice with a well-defined HTTP API, it's easy enough to give it a try with a small subset of the user base.

主站蜘蛛池模板: 武夷山市| 阜城县| 贵州省| 凭祥市| 措美县| 安丘市| 湘潭市| 大渡口区| 临汾市| 馆陶县| 乌兰浩特市| 武鸣县| 永川市| 黄陵县| 南木林县| 尚志市| 桂平市| 永春县| 尚志市| 佛教| 安乡县| 枞阳县| 新晃| 百色市| 淮安市| 武宣县| 九台市| 班戈县| 电白县| 安义县| 三明市| 新丰县| 滦平县| 那坡县| 灵寿县| 南平市| 金堂县| 岢岚县| 云安县| 察哈| 青阳县|