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

2、需求vs功能

需求面向问题,面向客户。描述了系统的行为、特性或属性,是在开发过程中对系统的约束。
功能面向解决问题,面向开发。描述了系统所能完成的任务,可达到的目标。通过系统设计,考虑程序由多少功能组成,以满足需求。

好的程序设计,功能需要刚好覆盖需求。一个需求可能对应多个功能。【一个更细化的功能也可以被多个需求复用】

其他观点:

我觉得功能是需求的扩充,因为需求实际上应该只有很小一部分,大部分软件做出来都超出了需求,也遗漏了一部分需求,还有一部分就是不对的需求

参考:
https://bbs.csdn.net/topics/30451785

posted on 2023-04-20 15:50  西伯尔  阅读(34)  评论(0编辑  收藏  举报