- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java编程基础-大道至简
程序设计思想 一、编程精义 “虽我之死,有子存焉;子又生孙,孙又生子;子又有子,子又有孙。子子孙孙,无穷匮也。而山不加增,何苦而不平?” ——《愚公移山》,《列子·汤问篇》 循环结构? 作为优秀的程序分析师,愚公论述了这个循环的可行性:由于“山不加增”,所以条件“山平”必将成立(“何苦而不平”),所以这不会是一个死循环。 编程的根本:顺序、分支和循环 可以学会编程? 除了先天智障或后天懒惰者,都是可以学会写程序的。如果你能确信,自己知道在早上起床后需要: ?? 如果天冷则先穿衣服后洗漱 ?? 如果天热则可反之 ?? 日复一日直到死亡 那么你就可以开始编程了。甚至,如果你认为以下条件成立: ?? 如果有类似于生病、不能行动、以及意外的紧急事件,则当日可以略过 那么你就可以开始向设计师发展。因为你已经具备了一项常人不具备的基本素质:折衷。 劳力活 程序 = 算法 + 结构 这个公式的精彩之处,在于它没有任何的地方提及到code。甚至可以说,在这个公式里,代码是不存在的。 编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。 算法是对一个程序的逻辑实现的描述,而结构是逻辑实现所依附的数据实体。 三种执行逻辑:顺序、分支和循环 语言 当你熟悉了一门语言之后,你会发现,编程语言只有喜欢与不喜欢的问题,没有会不会的问题。任何的一门语言,你都可以在两周内掌握并开始熟练编程。因为任何的一门语言,他们的底层函数库都是那么的相似,而他们API都是那样的依赖于操作系统。A语言里有的,B语言里也基本都有。 语言的差别主要表现在适用范围上! 二、懒人造就了方法 “僰道有蜀王兵蘭,亦有神作大滩江中。其崖崭峻不可破,(冰)乃积薪烧之。” ——《华阳国志》 怎么读? 僰 bo(2) 溷 hun(4) 愚公 积薪烧之 这么大个工程里,如果有一个人会闲到看火烧石头,那他一定很懒。那么多事堆着不去做,去看烧石头,你说他不是懒是什么! 人的精力终归是有极限的。 一百万行代码可以写在一个文件里 早期写程序,都是将代码打在穿孔纸带上 汇编语言,可以写一些代码了。这时的代码是写在文本文件里,然后交给一个编译器去编译,再由一个链接器去链接 第一个写汇编的人,可能写的是有名的“Hello World”程序,那个程序写在一个文件里。 如今语言发展得更高级了。可是程序员的习惯还是难改,一旦得了机会,还是喜欢把代码写到一个文件里的。 BUG Delphi 1.0版发布的时候,全世界一片叫好声。连“不支持双字节”这样的大问题,都不影响他在华语地区的推广。然而不久,爆出了一个大BUG !什么大BUG呢?Delphi 1.0的编译器居然不支持超过64K的源代码文件! 这被Fans们一通好骂。直到用Delphi 2.0时,改了这个BUG 64k的文件是什么概念呢? 1行代码大概(平均)是30字节,64k的源代码是2184行,如果代码风格好一点,再多一些空行的话,差不多也就是3000行上下。 程序员把3000行代码写到一个文件里,是司空见惯的事了!? 单元文件 勤快的愚公创造不了方法。这我已经说过了。对于要把“一百万行代码写到一个文件”,查找一个函数要在编辑器里按五千次PageDown/PageUp键的勤快人来说,是不能指望他们创造出“单元文件(Unit)”这样的开发方法来的。 接着,“模块”的概念出现 --结构化编程的时代终于开始了 你桌上的书是乱的吗? “为什么我学了一年的编程,却还是不知道怎么写程序呢”。 学生问?其实很多同学不仅仅学了一年了,哈哈… 他学了,也把知识学进去了,就是不知道这些知识是干什么的。或者说,他不知道各种知识都可以用来做什么。 数学干嘛的?离散数学?线性代数?… 思考?程序 = 算法 + 结构 + 方法 所谓“面向过程开发”,其实是对“结构化程序设计”在代码阶段的一个习惯性的说法。而我忽略了这个阶段的“方法”的根本原因,是即使没有任何“方法”的存在,只需要有了“单元(Unit)”和“模块(Module)”的概念,在面向过程时代,一样可以做出任意大型的程序。在那个时代,“方法”问题并不会象鼻子一样凸显在每一个程序员的面前。 方法?面向对象? 面向过程开发中,“过程(procedure)”是CPU提供的,“单元(unit)”则是编译器提供的(机制)。程序员不需要(至少是不必须)再造就什么“方法”,就可以进行愚公式的开发工作了。 如果不出现面向对象的话,这样伟大的工程可能还要再干一百年?? 而与“面向对象”是否出现完全无关的一个东西,却因为“过程”和“单元”的出现而出现了。这就是“工程(engineering)”
您可能关注的文档
- Canada名人简介(英文版).ppt
- CNAS-GL05《实验室内部研制质量控制样品的指南》.pdf
- CONCEPT 80 简单操作说明.pdf
- console方法属性大全.pdf
- CSS语义化标准.pdf
- creoproe有限元分析常用材料密度表杨氏模量泊松比等.pdf
- COPD护理查房-PPT课件.ppt
- CSS基础知识(用例子来讲解).ppt
- CT的基本构成.ppt
- CY1530-ZKZM500W楚域光纤激光切割机.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)