编程是一种“组合的艺术”

来源:互联网 发布:戴森吹风机 知乎 编辑:程序博客网 时间:2024/04/28 03:36

 

编程是一种“组合的艺术”

 

——WPF实例分析

金旭亮

        

         有这么一句名言——政治是一种妥协的艺术。这一规律同样适用于软件技术。就我个人的观点,软件开发在一定意义上是一种“组合的艺术”,优秀的软件工程师类似于优秀的厨师,能将一些常见的原料变成一盘色香味俱全的美味佳肴。

         为何说编程是一种“组合的艺术”?且让我慢慢道来。

         众所周知,在软件开发过程中,每名软件工程师都要掌握大量的编程知识,比如如何访问数据库,如何控制线程的推进顺序等,掌握这些知识是顺利进行开发的必要条件。然而,仅有这些就够了吗?仅仅掌握了这些编程知识就足以开发出优秀的软件?

         在我看来,开发者还需要掌握“组合”的艺术,你必须知道在某个完成特定功能的程序中,你可以组合哪些基本的构造块,而这些基本的构造块又以何种方式优雅地组合在一起,构成一个有机的整体。

         基本的构造块不仅仅指可以直接拿来复用的软件组件(或者是SOA中的Service),还包括可以在不同项目间复用的典型代码(比如如何将一个double类型的数字保留两位小数的典型代码段)、技术解决方案(比如各种设计模式)或软件架构(比如成熟的多层分布式组件化系统框架、基于管道的系统架构)等等。

         我喜欢将软件开发中用到的构造块称为“七巧板”,而每一个成形的程序都是用这些七巧板拼出的图形。

 

 

1 七巧板

 

         如何开发出好的软件,不取决于你基于什么平台,使用什么技术,甚至也不完全取决于你的技术能力和对技术内幕的深刻把握,而取决于你是如何组合这些基本构造块的。

         在某项软件技术的学习过程中,你实际上完成的是“形成软件构造块”的任务,而在软件项目实际开发过程中,你实际上完成的是“使用现有软件构造块”拼“七巧板”的过程。

         这个有效并且成功地“拼图”的过程,就是我们软件工程理论中有关软件开发过程与方法部分的内容。

         明了这些思想,能指导我们更有效地学习软件技术。

         自学的过程,就是“形成软件构造块”的过程。

         开发的过程,就是“将软件构造块”组合为完成某一特定功能的程序的过程。

原创粉丝点击