当前位置:网站首页>Upstream and downstream in software development
Upstream and downstream in software development
2022-07-01 01:43:00 【hys__ handsome】
After listening to Tencent rhinoceros bird Wang Jia's explanation of open source , Upstream of the technical terms (upstream) And downstream (downstream) incomprehension , Read this article blog I understand that the records are hereby reproduced .
Look at the following blog I understand : In nature, water flows from high to low , The kinetic energy of the water at the bottom is higher than that at the top , Abstract into value , So value ( Kinetic energy ) The relatively high is downstream , On the contrary, it is upstream .
What is Upstream and Downstream in Software Development Chinese translation of .
In the last period of time , I began to come into contact with “ The upstream ” and “ The downstream ” These two words , Often confused . Every time I have to check its meaning , So I decided to write them as blog To help understand .
Upstream and downstream in the production process
Let's start with a simple production process , Although it has nothing to do with software development , But we can define the upstream and downstream of software development on this basis .( Activity diagrams , A solid indicates the beginning , The middle point means the end )

In the example above , We have three steps :
- Collect parts
- Assemble parts
- Draw the assembly
The above production process is very similar to the river , So it's easy to understand As the process moves from one step to the next , Gradually " The downstream " Move
We can infer the following rules :
- Rely on the rules : Each current project depends on all upstream projects
- Value added rules : In the process of moving downstream , Each step adds more value to the product
Now? , Let's try to apply these rules to different software development environments .
Upstream and downstream of software dependencies
Most software components depend on other components . So what are upstream dependence and downstream dependence ?
As shown in the figure :

Components C Component dependent B, And components B And depends on components A.
application Rely on the rules , We can definitely say components A It's a component B Upstream , And components B It's a component C Upstream ( Even if the arrow points in the other direction ).
Apply here Value rules A bit abstract , But we can say components C Have the greatest value , Because it “ Import ” Components B and A All the characteristics of , And add your own value to these features , Make it a downstream component .
Upstream and downstream open source projects
The other is often used “ The upstream ” and “ The downstream ” The environment of these two words is open source development . It is actually very similar to the component dependencies discussed above
Consider the project A and B, among A It's the original project ,B yes A The branch of :

This is a fairly common development style in open source projects : We create a branch of the project , Fix the error or add functionality to this branch , Then submit the patch to the original project .
under these circumstances , Rely on the rules Make the project A Become an upstream project , Because it can be in no project B To survive well , But if there is no project A( Original project ), project B( Bifurcation ) It won't even exist .
Value rules It also applies here : project B Added new features or bug fixes , It is the original project A Added value .
therefore , Every time we contribute a patch to an open source project , We can all say We have sent a patch to the upstream .
Upstream and downstream in the microservice architecture
By microservices ( Or just old-fashioned distributed services ) In a system composed of , There are also discussions about upstream and downstream Services .

Rely on the rules and Value rules It also applies to this situation
service B It is an upstream service , Because the service A Depend on it . service A It is a downstream service , Because it adds Services B The value of .
Please note that , In this case, the upstream and downstream definitions of “ flow ” Not through service A Data flow into the system , It is Data flow system to user oriented service .
The service is far away from the user ( Or any other end consumer ) Closer , The farther it is from downstream .
Conclusion
In the use of “ The upstream ” and “ The downstream ” In any context of the concept , We can apply two simple rules to find out which project is upstream or downstream of another project .
If one project adds value to another project or relies on it in any other way , It must be downstream .
边栏推荐
- 短信在企业中的应用有哪些?
- Zero of DC learning notes -- overview and basic process introduction
- 小程序中实现excel数据的批量导入
- gin_ gorm
- 思特奇加入openGauss开源社区,共同推动数据库产业生态发展
- Understanding and application of Qt5 layout in creation
- Using recyclerreview to show banner is very simple
- PHP数组拼接MySQL的in语句
- Mathematical knowledge: finding combinatorial number IV - finding combinatorial number
- QT web development - VIDEO - Notes
猜你喜欢

短信在企业中的应用有哪些?

孙宇晨接受瑞士媒体Bilan采访:熊市不会持续太久

迪赛智慧数——其他图表(平行坐标图):2021年应届专业就业情况

3dsmax plug-in development traversal node object and object acquisition and inode transformation matrix description

One of the basics - overview of sta Basics

图灵奖得主LeCun指明AI未来的出路在于自主学习,这家公司已踏上征途

小程序中实现excel数据的批量导入

亲测有效,快速创建JMeter桌面快捷方式

qt5-MVC:数据可视化的层次揭秘

3500 word summary: a complete set of skills that a qualified software testing engineer needs to master
随机推荐
Factory + strategy mode
工作6年,来盘点一下职场人混迹职场的黄金法则
gin 配置文件
laravel 事件 & 监听
[problem handled] -nvidia SMI command cannot obtain the GPU process number of its own container and the external GPU process number
System. Csrebot for commandline
使用 C# 创造 ASCII 艺术
【动态规划】路径dp:931. Minimum Falling Path Sum
45 year old programmer tells you: why do programmers want to change jobs? It's too true
Laravel+redis generates an order number - automatically increase from 1 on the same day
关于白盒测试,这些技巧你得游刃有余~
Qt5 mvc: revealing the secrets of data visualization
qt5-MVC:数据可视化的层次揭秘
opencv -- 笔记
Open3d point cloud bounding box
After working for 6 years, let's take stock of the golden rule of the workplace where workers mix up
Some essential differences
Working for eight years as a programmer, but with a salary of three years after graduation, it's too late to be enlightened again
【多源bfs】934. Shortest Bridge
Using recyclerreview to show banner is very simple