代码大全读书笔记 Part 1
简单的看了前言,印象最深的还是这本书崇尚“绝不注水”的原则。现实生活中,不仅仅有注水牛肉,瘦肉精的猪肉,很多书籍也是东拼西凑来的内容,不注水的厚书,是十分令人期待的。
第一章:欢迎进入软件构建的世界
软件工程的流程在敏捷开发之前有固定的模式:定义问题,需求分析,规划构建,软件架构,详细设计,编码与调试,单元测试,集成测试,集成,系统测试,保证维护。当然,每一步你都可以找到相关的书籍专门的讲述。
我的理解:软件构件主要的产物是源代码,编写源代码的工程师的素质对软件构建影响很大。在构建活动中,不同程序员的生产效率的差距是10倍-20倍。由此看来,5%的神话是很实际的内容,当然这5%的优秀程序员对“如何进行构建”的理解程度,决定了他的优秀程度,95%的程序员都是码农。
第二章:用隐喻来更充分的理解软件开发
隐喻是用比喻的方式来描述软件领域各种特定的现象和事物,使用隐喻的方法叫做建模(modeling),物理学中气体分子的撞球理论,光的波动理论都用比喻来形容对一个事物的理解。计算机中也可以用隐喻来帮助人们更好的理解软件开发的问题。
1973年,Charles Bachman(图灵奖获得者中比较特殊的一个。Bachman基本上是在工业界里,而没有在学术界里作过研究或教职工作)在图灵奖演说中用日心说和地心说来形容计算机时代的变化,因为1973年,数据处理正在从“以计算机为中心”的观点向“以数据库为中心”的观点转变,现在越来越多的公司使用云计算厂商提供的服务,数据处理都“云化了”,我们生在其中,看不清,总结不明。10后,回头看看,或许豁然开朗。
隐喻和算法的不同就在于算法告诉你怎么做,而隐喻是告诉你如何更好的理解编程,写出更好的代码。或许需要问一个最简单的问题:软件开发时什么?各个大牛都用不同的比喻解释了一下,还是觉得Fred Brooks(《人月神话》作者,1999年图灵奖得主)说像耕田,捕猎的比喻好。
如果把软件开发比喻成耕田,那么不能期待系统能够像种子一样,春天播下,秋天收获,中间不能忽略的一步是“系统生长”,和生长相关的术语:“增量的”, “迭代的”, “自适应的”, “演进的”,慢慢的就有了《软件工程管理原理》这本书介绍的演进式交付,它很大程度上奠定了敏捷开发方法的基础。
当然,建一个狗屋忘记开一个门可以很快修复,建帝国大厦忘记搭配电梯系统会怎么样呢?所以软件构建的过程需要很多的智慧。
代码大全读书笔记 Part 1的更多相关文章
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记2
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...
- C#小常识集锦(一)--《更锋利的CSharp代码》读书笔记
❀.采用类似匈牙利命名法为控件命令,对于其他变量申明则不需要了 e.g. Button btnAdd; e.g. TextBox txtUsername; e.g. ListBox lstFileNa ...
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记1
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] 第 3 章 用 JavaScri ...
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- 《梦断代码》读书笔记第0篇——“软件时间”、“死定了”、“Agenda之魂“
第0章 软件时间 在未读这本书前,刚看到名字觉得是本讲代码的书,后来老师说是一个个的故事,这引起了我的兴趣,于是我便速速开始了第0章的阅读,读完一遍大概能读懂在讲什么,可能由于是译过来的书,书里面一 ...
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记4
5.2.2 让瀑布流动起来 打好基建之后,就需要写JavaScript代码.首先如果数据不够显示一屏幕的情况,就用新数据来补足它,在补充的时候是根据4列中最矮的那一个为优先补充,因为高矮尺寸一般只有在 ...
- 《梦断代码》读书笔记 part3
第六章:搞掂设计方案 备份很重要. 必须从小项目开始,而且永远不要期望它变大,如果你这么想,就会做过度设计,把它想象得过于重要,更坏的情况是,你可能会被自己想象中的艰难工作所吓到.所以要从小 处起步, ...
- <<代码大全>>阅读笔记之一 使用变量的一般事项
一.使用变量的一般事项 1.把变量引用局部化 变量应用局部化就是把变量的引用点尽可能集中在一起,这样做的目的是增加代码的可读性 衡量不同引用点靠近程度的一种方法是计算该变量的跨度(span) 示例 a ...
随机推荐
- 我java学习时的模样(二)
去掉自己浮躁的心 工作了三年,见识过高山,也见过低估,高山同大神一起共事,低估是几家特别烂的外包公司,现在有了另一种心境.已经开始重视自己,去掉当初浮躁的心. 毕业的一两年内,是人成长特别快的时期,也 ...
- 数据链路层差错检测之循环冗余检验CRC
引用https://blog.csdn.net/wenqiang1208/article/details/71641414 为什么引入CRC 现实的通信链路都不会是理想的.这就是说,比特在传输的过程中 ...
- Halcon学习笔记——条形码的定位与识别
一维码的原理与结构 条码基本原理是利用条纹和间隔或宽窄条纹(间隔)构成二进制的”0“和”1“,反映的是某种信息. 一维条码数据结构,分四个区域.组成分别为静区.起始/终止符.校验符.数据符. 一维条码 ...
- javaweb之jsp标签
1.JSP标签简介 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 2.JSP常用标签 ...
- poj 1276(多重背包+最接近)
http://www.cnblogs.com/rainydays/archive/2013/03/08/2950258.html http://www.cnblogs.com/ziyi--caolu/ ...
- k8s安装部署过程个人总结及参考文章
以下是本人安装k8s过程 一.单机配置 1. 环境准备 主机名 IP 配置 master1 192.168.1.181 1C 4G 关闭所有节点的seliux以及firewalld sed -i 's ...
- Effective C++ .06 阻止编译器自动生成函数以及被他人调用
这节讲了下如何防止对象拷贝(隐藏并不能被其他人调用) 两种方法: 1. 将拷贝构造函数声明为private 并且声明函数但不进行定义 #include <iostream> #includ ...
- 深入理解jQuery插件开发总结(三)
容器:一个即时执行函数 根本上来说,每个插件的代码是被包含在一个即时执行的函数当中,如下: (function(arg1, arg2) { // 代码 })(arg1, arg2); 即时执行函数,顾 ...
- BZOJ3498: PA2009 Cakes(三元环)
题意 题目链接 Sol 按照套路把边转成无向图,我们采取的策略是从权值大的向权值小的连边 然后从按权值从小到大枚举每个点,再枚举他们连出去的点\(v\) 如果\(v\)的度数\(\leqslant M ...
- chrome中常用的快捷键
ctrl+n 新建窗口ctrl+shift+n 无痕模式新建窗口ctrl+t 打开新标签页ctrl+shift+t 打开最近关闭的标签页ctrl+tab 标签页之间切换ctrl+w/ctrl+F4 关 ...