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功能
需求面向问题,面向客户。描述了系统的行为、特性或属性,是在开发过程中对系统的约束。
功能面向解决问题,面向开发。描述了系统所能完成的任务,可达到的目标。通过系统设计,考虑程序由多少功能组成,以满足需求。
好的程序设计,功能需要刚好覆盖需求。一个需求可能对应多个功能。【一个更细化的功能也可以被多个需求复用】
其他观点:
我觉得功能是需求的扩充,因为需求实际上应该只有很小一部分,大部分软件做出来都超出了需求,也遗漏了一部分需求,还有一部分就是不对的需求
作者:西伯尔
出处:http://www.cnblogs.com/sybil-hxl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。