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

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

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





…………………………………………………………Page 14……………………………………………………………

第 1 章  编程的精义  



   所以除了先天智障或后天懒惰者,都是可以学会写程 



序的。如果你能确信,自己知道在早上起床后需要:  



   )  如果天冷则先穿衣服后洗漱  



   )  如果天热则可反之  



   )  日复一日直到死亡  



   那么你就可以开始编程了。甚至,如果你认为以下条 



件成立:  



   )  如果有类似于生病、不能行动、以及意外的紧急 



      事件,则当日可以略过  



   那么你就可以开始向设计师发展。因为你已经具备了 



一项常人不具备的基本素质:折衷。  



3。  程序  =   算法  +   结构  



   编程作为一种行为,只需要知道其逻辑方法就可以 



了。所谓编程实际上是把一件事情交给计算机去做,你认 



为这件事该如何做,就用“程序语言”的形式描述给计算 



机。如果你原本就不明白如何去做,那么你也不要期望计 



算机去理解你想要做什么。  



   所以编程的第一要务是先把事情分析清楚,事件先后 



的逻辑关系和依赖关系搞清楚,然后再去代码实现。一接 



到任务就开始 Coding  的程序员,通常就是加班最多的程 



序员。  



   记住:积极工作和勤于思考都要占时间。  



     



   第一个完成关于编程本质的思考的人,提出了一个公 



                                  …10


…………………………………………………………Page 15……………………………………………………………

                                         『大道至简』  



式“程序  =   算法  +   结构”。这个公式的精彩之处,在于 



它没有任何的地方提及到 Code 。甚至可以说,在这个公 



式里,代码是不存在的。  



    存在的只是思想。  



      



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



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



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



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



                                               

      



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



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



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



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



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



是用上面这三种执行逻辑来描述的。  



                                            …11


…………………………………………………………Page 16……………………………………………………………

第 1 章  编程的精义  



4。  语言  



   当你熟悉了一门语言之后,你会发现,编程语言只有 



喜欢与不喜欢的问题,没有会不会的问题。任何的一门语 



言,你都可以在两周内掌握并开始熟练编程。因为任何的 



一门语言,他们的底层函数库都是那么的相似,而他们 



API 都是那样的依赖于操作系统。A 语言里有的,B 语言 



里也基本都有。  



   通常而言,语言的差别主要表现在适用范围上。一些 



语言适合做数值处理,小数点后可以精确到原子级,而小 



数点前则可以表达到宇宙之无穷;另一些语言则适合做图 



形处理,它的底层函数库比其它语言可以快上十倍或数十 



倍;还有一些语言则适合于做网页,要用它来做一个通讯 



薄软件都将是史无前人的挑战。  



   成天讨论这门语言好,或者那门语言坏的人,甚至是 



可悲的。不但是悲其一叶障目,更要悲叹于那种大愚若智 



的自得心态。  



5。  在没有工程的时代  



   在没有工程的时代,上面所说的就是一个程序员的全 



部。他们掌握了一门语言,懂得了一些生活中最常见的逻 



辑,他们用程序的方式思考和学习了一些算法,并根据前 



人的经验,把这些算法跑在了一些数据结构之上,最后, 



                              …12


…………………………………………………………Page 17……………………………………………………………

                                         『大道至简』  



我们就看到了他们写的程序。  



    在没有工程的时代,出现了非常非常多的人物。其中 



算法大师,有游戏大师,有语言大师,有挣钱的大师……  



    唯独,没有工程大师。嗯,可以理解嘛,那是没有工 



程的时代。好蛮荒,好远古的。  



     



                                            …13


…………………………………………………………Page 18……………………………………………………………

                         



     第2章  是懒人造就了方法  



    “ 道有蜀王兵      ,亦有神作大滩江中。其崖崭峻不 

     僰         蘭 



可破,(冰)乃积薪烧之。”  



                             ——《华阳国志》  



1。  是懒人造就了方法  



    战国时期的李冰凿了一座山。  



   史记中说是“蜀守冰凿离堆”,是说李冰在成都的时 



候凿出了离堆。一说是李冰将都江堰附近的玉垒山凿了一 



个大口子,叫宝瓶口,而凿的石头就堆成了离堆。另一说, 



则是李的确是凿了一座“(溷) 崖”,但是是在沫水,亦即 



是今天的大渡河。  



   在哪里凿的山,是史学家都说不清楚的事。但的确凿 



了一座山,而且方法是“( 因)其崖崭峻不可破,(冰)乃积 



薪烧之”。  



   我们已经看到事物的进化了。同是战国时代,《列 



子·汤问篇》里的愚公就要“碎石击壤”,而李冰就已经 



懂得“积薪烧之”了。  



   会有人说愚公是“碎石”,并没有说他“碎石”的方 



法究竟是“斧钺以凿之”,还是“积薪以烧之”。但想想那 



个时代,如果有人懂得了烧石头这个方法,哪能不立即载 



     

                                      …14


…………………………………………………………Page 19……………………………………………………………

                                 『大道至简』  



文志之,永世传承。  



   再说了,愚公嘛。愚者怎么会呢?这还需要分析吗? 



需要吗?  



     



   所以愚公会凿,而李冰会烧。那李冰又是为什么会用 



 “烧”这种方法来碎石的呢?如果李冰也象愚公那样日复 



一日地督促着他的团队凿石开山,那他一定没有时间来学 



习、寻找或者观察,当然也不会发现“烧”这种方法可以 



加快工程进度,使得一大座山短时间就被哗啦哗啦地给 



 “碎”掉了。  



   要知道李冰的团队可是成百上千人,要修堰筑坝,还 



要“凿离堆”,当然还要吃喝啦撒睡。所以李冰如果忙起 



来的话,他必然是“受命以来,夙夜忧叹”,必然食难下 



咽,睡无安枕。反之,李冰一定是个闲人,可以闲到没事 



去看火能不能把石头烧爆。  



   这么大个工程里,如果有一个人会闲到看火烧石头, 



那他一定很懒。那么多事堆着不去做,去看烧石头,你说 



他不是懒是什么。  



     



   正是一个懒人造就了“烧石头”这个“碎石”的方法。 



愚公太勤快了,勤快得今天可以比昨天多凿一倍的石头。 



或者在愚公的项目计划案的首页里就写着朱笔大字:“吾 



今胜昨倍许,明胜今倍许,而山不加增,何苦而不快。” 



但是越发的勤快,愚公将越发没有机会找到更快的方法,  



   人的精力终归是有极限的。提出新的“方法”,解决 



                                   …15


…………………………………………………………Page 20……………………………………………………………

第 2 章  是懒人造就了方法  



的将是影响做事成效的根本问题。而愚公可以多吃点饭, 



多加点班,但突破不了人的精力的极限。  



                                                

      



    记住,在两千年前的某一天,闲极无聊的李冰下厨给 



夫人炒了一个小菜,他突然发现垒灶的鹅卵石被烧得爆裂 



开来,遇水尤甚。从此《史记》上记下了“蜀守冰凿离堆”, 



而《华阳国志》上记下了他做这件事的方法“积薪烧之”。  



    在差不多同一时间,愚公在山北之塞“碎石击壤”。  



2。  一百万行代码是可以写在一个文件里的  



    早期写程序,都是将代码打在穿孔纸带上,让计算机 



去读的。要让计算机读的纸带当然是连续的,这无需多讲。 



其实我也没有那样写过程序,真实的苦楚我也不知道。  



                                           …16


…………………………………………………………Page 21……………………………………………………………

                                『大道至简』  



   后来有了汇编语言,可以写一些代码了。这时的代码 



是写在文本文件里,然后交给一个编译器去编译,再由一 



个链接器去链接,这样就出来了程序。  



   第一个写汇编的人,可能写的是有名的“Hello World ” 



程序,那个程序写在一个文件里就行了。所以后来就成了 



习惯,大家都把代码写到一个文件里。早期的汇编语言里, 



GOTO 语句是用得非常非常频繁的,将一个语句 GOTO 



到另一个文本文件里去,既不现实也不方便。所以大家习 



以为常,便统统地把代码写到一个文件里。  



   再后来出了高级语言,什么 C  呀,Pascal  呀之类的。 



既然大家已经形成习惯了,所以很自然地会把一个程序写 



到一个文件里。无论这个程序有多大,多少行代码,写到 



一个文件里多方便呀。  



   直到如今语言发展得更高级了。可是程序员的习惯还 



是难改,一旦得了机会,还是喜欢把代码写到一个文件里 



的。  



     



   好了,有人说我是想当然尔。En ,这当然是有实据的。 



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