贡献式编程(一)
来源:互联网 发布:玩天龙八部网络延迟 编辑:程序博客网 时间:2024/05/01 17:29
[贡献式编程]是一个编程的思考方法,因为这种思考方法没有一个很有系统的归纳,程序员一般通过很多年实际工作中的磨练方可体会,故此我在这里做一下归纳。
这并不是什么新的概念,把它归纳成一种思考方式,可以促进程序员对模块的思维、理清系统架构和提高代码质量。
下面没有太多严谨的格式,比较随意,敬请见谅。
所谓贡献
贡献泛指代码的添加(不是代码的修改)。
针对贡献,可以有以下场景:
- 添加一个JAR包到项目
- 添加一个对象到项目
我们都知道面向对象的原则SOLID,其中的Open-Close Principle,意思是扩展功能是通过添加代码,而不是修改代码。[贡献]就是针对这个部分做实在的讨论。
任何贡献都会对系统有一定的影响,这些影响可以是UI上的,可以是处理逻辑上的。如果一个贡献没有对系统做成任何影响,相信这个贡献可以被去掉而令系统变得精简一点。
例子
假如我们要做个订单处理系统,假设订单数据是从某个平台下载回来的(如Amazon),这个系统有个UI可以显示每一个订单。
第一版
我们可能会有以下结构:
- 一个类叫 OrderDownloader ,负责调用某平台上的API,把数据插入到数据库。
- 一个定时器,定时调用 OrderDownloader
- 在UI上,直接显示订单列表、点击进入订单明细。
搞定!
当系统需要扩展的时候,不同的程序员在实际编程上会出现不同的结果,当然不同的结果可能是因为商业决定(如时间不容许)而导致的,这里讨论的是如何从根本思考上的改变,导致一种比较优秀的架构。
接下来会继续用这个例子,讨论如果使用贡献式编程,继续为系统做出贡献。
0 0
- 贡献式编程(一)
- 贡献式编程(二)
- 贡献式编程(三)
- 贡献式编程(四)
- 贡献式编程(总结)
- 贡献 高效的MIDlet 编程
- 【每周一译】如何贡献开源代码
- 防御式编程(一)
- 在改善编程语言方面Google都有哪些贡献?
- 高亚科技公司笔试回来,贡献一下笔试题
- ACM图灵奖现状、最新一届得主及其贡献
- 埃及对数学的贡献—数学起源(一)
- Confluence 贡献人(Contributors)宏
- 股票学习(技术指标--个股贡献度)
- 51nod 1737 配对(求贡献)
- C++函数式编程(一)
- 函数式编程小结(一)
- java中的函数式编程(一)
- WCF Service Application和WCF Service Library的区别
- jsp有哪些内置对象作用分别是什么?
- NeHe OpenGL lession 4
- 设计模式(三)--抽象工厂模式
- sdut 面向对象程序设计上机练习四(变量引用)
- 贡献式编程(一)
- jsp面试题
- 另5个你不知道的HTML5接口API
- [leetcode] Minimum Window Substring
- AFNetworking2.0源码解析<一>
- HTML5 Web Storage 特性
- hdoj 2102 A计划 【BFS】
- 安装内核模块的编译环境
- Android多媒体学习十三:检索MediaStore中的Video和其对应的缩略图信息