友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

软件工程实践者的思想(PDF格式)-第3章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






   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 。甚至可以说,在这个公 



式里,代码是不存在的。  



    存在的只是思想。  



      



    算法是对一个程序的逻辑实现的描述,而结构是逻辑 



实现所依附的数据实体。只要开发人员将这个程序的算法 



设计出来了,把结构描述出来了,那么程序就已经定型了。 



剩下的事,简而言之,就是劳力活。  



                                               

      



    在计算机专业所学的课程中,同时讲述算法和结构 



的,是“数据结构”。现在,你放下手边这本书,再去读 



读被你扔到不知哪个角落的《数据结构》,你仔细看看, 



在所有的算法描述中,有且仅有三种执行逻辑:顺序、分 



支和循环。简单若顺序表,复杂如树、图,它们的算法都 



是�
返回目录 上一页 下一页 回到顶部 赞(1) 踩(1)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!