大道至简阅读笔记001
时间:2019-06-12
本文章向大家介绍大道至简阅读笔记001,主要包括大道至简阅读笔记001使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
编程的精义
大道至简的作者周爱民老师和构建之法的作者邹欣老师一样,都擅长用例子生动形象的将抽象枯燥的东西讲的妙趣横生,生动有趣。正是这种写作风格才能让比较浮躁的我能耐下心来读下去。
今天是本书的第一章:编程的精义。
“仅仅就编程序来说,实在是一件很简单的事,甚至可以说是一件劳力活。”,老师第一句就有些让我惭愧和哭笑不得,对于我们这种初学者来说编程实在不是一件so easy的事。老师通过愚公的故事将项目组织者、团队经理、编程人员、技术分析师等众多角色的优秀素质展示了出来。
汤问篇中所述的愚公移山这一事件,我们看到了原始需求的产生:“惩山北之塞,出入之迂”
我们也看到了项目沟通的基本方式:“聚室而谋曰”
然后,我们看到愚公确定了一个项目的目标:“毕力平险,指通豫南,达于汉阴”
并通过研讨,择定了一个井然有序的、可以实现的技术方案:“扣石垦壤,箕畚运于渤海之尾”
在这个项目中,动用了三名技术人员和一名工程管理人员:“(愚公)率子孙荷担者三夫”
并获得了一名力量较弱,但满富工作激情的外协:“邻人京城氏之孀妻,有遗男,始龀,跳往助之”
基本上,这已经描述了“愚公移山”整个工程的概况。
“ 虽 我 之 死 , 有 子 存 焉 ”, 这 里 描 述 了 可 能 存 在 的分支结构,即“IF”条件判断。
“子又生孙,孙又生子;……子子孙孙,无穷匮也”,这里描述了完成这个工程所必须的循环结构。
作为优秀的程序分析师,愚公论述了这个循环的可行性:由于“山不加增”,所以条件“山平”必将成立(“何苦而不平”),所以这不会是一个死循环。
老师用一个程序员的眼光将愚公移山的故事分解,为我们讲述了一个工程的整体。
在愚公的论述中,我们看到了编程的根本:顺序、分支和循环。庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来实现的。这,就是编程的精义了。
编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。一接到任务就开始 Coding 的程序员,通常就是加班最多的程
序员。第一个完成关于编程本质的思考的人,提出了一个公『大道至简』式“程序 = 算法 + 结构”。这个公式的精彩之处,在于它没有任何的地方提及到 Code。甚至可以说,在这个公式里,代码是不存在的。存在的只是思想。
原文地址:https://www.cnblogs.com/2205254761qq/p/11011124.html
- 三分钟理解“状态模式”——设计模式轻松掌握
- JS生成UUID
- Mysql性能优化之开启Mysql慢查询日志
- 三分钟理解“命令模式”——设计模式轻松掌握
- 把表单转成json,并且name为key,value为值
- PHP经典面试题目汇总(上篇)
- 横向滑动的HorizontalListView滑动指定位置的解决方法
- 高可用架构-- MySQL主从复制的配置
- 零基础入门深度学习 | 第二章:线性单元和梯度下降
- 比特币价,黄金和无稽之谈 - 怎样不去给比特币估值
- 在PHP中,cookie和session的使用
- 剑指 offer代码解析——面试题29数组中出线次数超过一半的数字
- 剑指offer代码解析——面试题25二叉树中和为某一值的路径
- Spring MVC 4.2 CORS 跨域访问
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用jasmine.createSpyObj测试具有依赖关系的Angular服务
- 使用setup函数替代beforeEach函数进行Angular单元测试
- 对Angular使用了HttpClient的服务进行单元测试
- Elasticsearch中什么是 tokenizer、analyzer、filter ?
- ElasticSearch Snowball token filter
- Hibernate入门篇(三)——编写第一个Hibernate例子
- RabbitMQ与Kafka选型对比
- Hibernate进阶篇(三)——transaction简介
- Elastic search N-gram tokenizer
- java.io.IOException: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 110
- io.protostuff.runtime.RuntimeUnsafeFieldFactory cannot have the same number
- dubbo 调用报Null 空指针 ,可能并不是真正的空指针
- Hibernate单表操作(四)——组件属性
- Dubbo consumer消费端启动报错java.lang.RuntimeException: [source error] not available in a static method: h
- Groovy小记it关键字和IDE报错