软件开发沉思录<一>
《软件开发沉思录》
1. 最后一英里
1.1 理解问题
????? 从商业的角度来说,之所以要开发一套新的软件,是因为它能够创造更多业务价值。但是如果下列情况之一发生的话,开发新软件反而会得不偿失:
????? 新软件给现有业务带来的风险很可能超过它能够提供的价值,所以很自然地,公司越大,在引入新软件时就必须越发小心。这也就导致了旧系统和过时的技术堆积在产品环境中,而不是被替换掉。而与这些堆积的遗留系统集成这一难题又会增加引入新软件的成本与风险。于是这就成了一个恶性循环。
?????这个恶性循环使得企业越来越难以改变业务模式,因为做出改变的成本与风险越来越高。没有技术包袱的新公司或许可以在一段时期内将老迈的对手甩在身后,但最终它们自己也会走上同样的衰老之路。
?
2. 语言的盛景
?
2.1 编程泛型
?
????? 一般而言,编程泛型包括命令式、过程式、函数式、面向对象式、声明式以及逻辑式。
?
类别定义实例命令式修改内存状态的语句序列Fortran,汇编过程式通过过程(即一组语句)组织程序C,Pascal,Cobol面向对象式通过对象组织程序Smalltalk,Java,Ruby函数式通过无状态函数组织程序Lisp,Scheme,Haskell逻辑式通过公理和推演规则表述期望结果的特征Prolog,OPS5声明式描述解决方法而不是如何实现解决方法XSLT,SQL,Prolog