当前位置:网站首页>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 .
边栏推荐
- Handsontable data grid component
- Mathematical knowledge: 01 sequence satisfying conditions - find combinatorial number
- Check the disk usage of MySQL database
- Institute of Microbiology, commonly used biochemical reactions in microbiological testing
- Neo4j installation, operation, project construction and function realization
- More pragmatic in business
- 【agora】用户管理
- laravel 事件 & 订阅
- 软件测试的可持续发展,必须要学会敲代码?
- Handsontable數據網格組件
猜你喜欢

Fast understanding of forward proxy and reverse proxy
![[problem handled] -nvidia SMI command cannot obtain the GPU process number of its own container and the external GPU process number](/img/51/e48e222c14f4a4e9f2be91a677033f.png)
[problem handled] -nvidia SMI command cannot obtain the GPU process number of its own container and the external GPU process number

测试必备工具-Postman实战教程

Qt5 mvc: revealing the secrets of data visualization

After working for 6 years, let's take stock of the golden rule of the workplace where workers mix up

工作八年的程序员,却拿着毕业三年的工资,再不开窍就真晚了...

测试必备工具—Postman实战教程

Using recyclerreview to show banner is very simple
![[fundamentals of wireless communication-14]: illustrated mobile communication technology and application development-2-the first generation mobile analog communication big brother](/img/fa/f9bad44147ba9af21183b7bd630e32.png)
[fundamentals of wireless communication-14]: illustrated mobile communication technology and application development-2-the first generation mobile analog communication big brother

6月第4周榜单丨飞瓜数据UP主成长排行榜(哔哩哔哩平台)发布!
随机推荐
亲测有效,快速创建JMeter桌面快捷方式
[无线通信基础-15]:图解移动通信技术与应用发展-3- 数字通信2G GSM、CDMA、3G WDCMA/CDMA200/TD-SCDMA、4G LTE、5G NR概述
[Qt5 basics] random number display
Use of typora
【agora】用户管理
Open3d point cloud color rendering
Mysql database foundation: process control
微生物安全與健康,什麼是生物處理?
Basic knowledge II - Basic definitions related to sta
mysql插入\更新前+判断条件
小程序中实现excel数据的批量导入
【多源bfs】934. Shortest Bridge
测试必备工具—Postman实战教程
C # customize and dynamically switch cursor
Handsontable数据网格组件
元宇宙为 VR/AR 带来的新机会
org.redisson.client.RedisResponseTimeoutException: Redis server response timeout (3000 ms)错误解决
Neo4j installation, operation, project construction and function realization
Digital IC design process summary
用 Flutter 的 Canvas 画点有趣的图形