5。 审视 MDA ························································100
8。 是思考还是思想
1。 软件工程三个要素的价值 ·································103
2。 其实 RUP 是一个杂物箱 ···································104
3。 UML 与甲骨文之间的异同 ·······························105
4。 经营者离开发者很远,反之亦然 ······················106
5。 矛盾:实现目标与保障质量 ·····························107
6。 枝节与细节 ······················································108
7。 灵活的软件工程 ···············································110
…………………………………………………………Page 10……………………………………………………………
…………………………………………………………Page 11……………………………………………………………
第1章 编程的精义
“虽我之死,有子存焉;子又生孙,孙又生子;子又
有子,子又有孙。子子孙孙,无穷匮也。而山不加增,何
苦而不平?”
——《愚公移山》,《列子·汤问篇》
1。 编程的精义
仅仅就编程序来说,实在是一件很简单的事,甚至
可以说是一件劳力活。两千年前的寓言中,已经成就
了一位工程名家:愚公。在这位名家的身上,浓缩了
项目组织者、团队经理、编程人员、技术分析师等众
多角色的优秀素质。他的出现,远远早于计算机发展
的历史,甚至早于一些西方国家的文明史。
汤问篇中所述的愚公移山这一事件,我们看到了原
始需求的产生:
“惩山北之塞,出入之迂”
我们也看到了项目沟通的基本方式:
“聚室而谋曰”
然后,我们看到愚公确定了一个项目的目标:
…7
…………………………………………………………Page 12……………………………………………………………
第 1 章 编程的精义
“毕力平险,指通豫南,达于汉阴”
并通过研讨,择定了一个井然有序的、可以实现的
技术方案:
“扣石垦壤,箕畚运于渤海之尾”
在这个项目中,动用了三名技术人员和一名工程管
理人员:
“( 愚公) 率子孙荷担者三夫”
并获得了一名力量较弱,但满富工作激情的外协:
“邻人京城氏之孀妻,有遗男,始龀,跳往助之”
基本上,这已经描述了“愚公移山”整个工程的概
况。接下来,我们应该注意到愚公作为编程人员的基
本素质。在与“河曲智叟”的对答中,他叙述了整个
工程的实现程序:
“虽我之死,有子存焉”,这里描述了可能存在的
分支结构,即“IF ”条件判断。
“子又生孙,孙又生子;……子子孙孙,无穷匮也”,
这里描述了完成这个工程所必须的循环结构。
作为优秀的程序分析师,愚公论述了这个循环的可
行性:由于“山不加增”,所以条件“山平”必将成立
( “何苦而不平”) ,所以这不会是一个死循环。
在愚公的论述中,我们看到了编程的根本:顺序、
分支和循环。庞大若“愚公移山”这样的工程,都是
可以通过这样简单的编程来实现的。这,就是编程的
精义了。
…8
…………………………………………………………Page 13……………………………………………………………
『大道至简』
2。 会或者不会写程序的问题
我经常会被人问到“(我) 能不能学会写程序”这样的
问题。
这个问题由来以久。上溯七、八年,程序员还是少有
人从事的职业。听说的人少,真正了解的人也不多。而当
一个程序软件被装在电脑里并开始运行时,人们便开始惊
讶于程序员的厉害。所以“能不能学会写程序”甚至成了
一些人对自己的智力考评,所以便有人向我这样发问。
愚公都能明白的编程精义,那些向我发问的智叟们又
怎么会不明白呢?
…9
…………………………………………………………Page 14……………………………………………………………
第 1 章 编程的精义
所以除了先天智障或后天懒惰者,都是可以学会写程
序的。如果你能确信,自己知道在早上起床后需要:
) 如果天冷则先穿衣服后洗漱
) 如果天热则可反之
) 日复一日直到死亡
那么你就可以开始编程了。甚至,如果你认为以下条
件成立:
) 如果有类似于生病、不能行动、以及意外的紧急
事件,则当日可以略过
那么你就可以开始向设计师发展。因为你已经具备了
一项常人不具备的基本素质:折衷。
3。 程序 = 算法 + 结构
编程作为一种行为,只需要知道其逻辑方法就可以
了。所谓编程实际上是把一件事情交给计算机去做,你认
为这件事该如何做,就用“程序语言”的形式描述给计算
机。如果你原本就不明白如何去做,那么你也不要期望计
算机去理解你想要做什么。
所以编程的第一要务是先把事情分析清楚,事件先后
的逻辑关系和依赖关系搞清楚,然后再去代码实现。一接
到任务就开始 Coding 的程序员,通常就是加班最多的程
序员。
记住:积极工作和勤于思考都要占时间。
第一个完成关于编程本质的思考的人,提出了一个公
…10
…………………………………………………………Page 15……………………………………………………………
『大道至简』
式“程序 = 算法 + 结构”。这个公式的精彩之处,在于
它没有任何的地方提及到 Code 。甚至可以说,在这个公
式里,代码是不存在的。
存在的只是思想。
算法是对一个程序的逻辑实现的描述,而结构是逻辑
实现所依附的数据实体。只要开发人员将这个程序的算法
设计出来了,把结构描述出来了,那么程序就已经定型了。
剩下的事,简而言之,就是劳力活。
在计算机专业所学的课程中,同时讲述算法和结构
的,是“数据结构”。现在,你放下手边这本书,再去读
读被你扔到不知哪个角落的《数据结构》,你仔细看看,
在所有的算法描述中,有且仅有三种执行逻辑:顺序、分
支和循环。简单若顺序表,复杂如树、图,它们的算法都
是?
小说推荐
- 软件工程思想
- 作者:林锐前 言 在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地
- 最新章:第53章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- Linux实用培训教程(PDF)
- -Page 1-rrktqt的个人空间 Linux实用培训教程第一部分 作者:红联Linux实用培训教程第一部分-共三部分解的Linux知识,循序渐进的介绍Linux相关知识,从入门到提高,希望对所有学习Linux的朋友都有帮助 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章
- 最新章:第42章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章