软件工程经典问题

发布时间 2023-04-20 16:01:21作者: 西伯尔

1、反对“全局变量”

问题1 : context可以理解为是一个“全局变量”吗?

在软件设计的工程中,对全局变量基本持否定态度

1、代码变得耦合;
2、暴露了多余的信息;
3、全局变量在多线程环境下使用锁,浪费CPU资源;

但是它也有好的方面:提升了某些变量的作用域,保证了这些数据的生命周期。

为了解决负面影响,很多语言出现了“不那么全局的全局变量”,就比如 针对“线程局部”、“包局部”的全局变量而出现的this ,匿名形式的 “闭包”。

有一个说法就是:每一段程序都有很多外部变量(极度简单的函数略过),一旦有了外部变量,这段程序就不完整,不能独立运行,而为了让他们能运行,就要给所有的外部变量设置值,而这些值的集合就叫做Context

参考:
https://www.cnblogs.com/sybil-hxl/p/17337031.html 【利用channel关闭,实现Context.Done()】
https://www.cnblogs.com/sybil-hxl/p/17078866.html 【web网络协议中的Context】
https://zhuanlan.zhihu.com/p/439718947