贡献式编程(一)

来源:互联网 发布:玩天龙八部网络延迟 编辑:程序博客网 时间:2024/05/01 17:29

[贡献式编程]是一个编程的思考方法,因为这种思考方法没有一个很有系统的归纳,程序员一般通过很多年实际工作中的磨练方可体会,故此我在这里做一下归纳。

这并不是什么新的概念,把它归纳成一种思考方式,可以促进程序员对模块的思维、理清系统架构和提高代码质量。

下面没有太多严谨的格式,比较随意,敬请见谅。

所谓贡献

贡献泛指代码的添加(不是代码的修改)。

针对贡献,可以有以下场景:

  • 添加一个JAR包到项目
  • 添加一个对象到项目

我们都知道面向对象的原则SOLID,其中的Open-Close Principle,意思是扩展功能是通过添加代码,而不是修改代码。[贡献]就是针对这个部分做实在的讨论。

任何贡献都会对系统有一定的影响,这些影响可以是UI上的,可以是处理逻辑上的。如果一个贡献没有对系统做成任何影响,相信这个贡献可以被去掉而令系统变得精简一点。

例子

假如我们要做个订单处理系统,假设订单数据是从某个平台下载回来的(如Amazon),这个系统有个UI可以显示每一个订单。

第一版

我们可能会有以下结构:

  • 一个类叫 OrderDownloader ,负责调用某平台上的API,把数据插入到数据库。
  • 一个定时器,定时调用 OrderDownloader
  • 在UI上,直接显示订单列表、点击进入订单明细。

搞定!

当系统需要扩展的时候,不同的程序员在实际编程上会出现不同的结果,当然不同的结果可能是因为商业决定(如时间不容许)而导致的,这里讨论的是如何从根本思考上的改变,导致一种比较优秀的架构。

接下来会继续用这个例子,讨论如果使用贡献式编程,继续为系统做出贡献。

0 0
原创粉丝点击