代码大全读书笔记 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 ...
随机推荐
- html中文乱码(解决办法)
在head标签中加上以下代码即可: <head> <meta http-equiv="Content-Type" content="text/h ...
- js中有关类、对象的增强函数
javascript中继承的实现 基础实现 function Range(from,to){ this.from =from; this.to =to; } Range.prototype = { i ...
- web_02Java ee实现验证码,网站访问次数功能
Web Web_02版本: 实现功能 1,验证码 2,网站访问次数统计 设计内容 1,servlet 2,jsp 3,js *重点 1,验证码相关: 1,Servlrt类实现验证码的生成 CheckC ...
- Linux下ffmpeg添加Facebook/transform代码块实现将全景视频的球模型转换成立方体模型
Facebook事实上已开始在平台中支持360度全景视频的流播,但公司对此并不满足.其工程师更是基于锥体几何学设计出了一套全新的视频编码,号称最高能将全景视频的文件大小减少80%.(VR最新突破:全景 ...
- [转]Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)
本文转自:http://www.cnblogs.com/aehyok/p/3545824.html 前言 很久没更新博客了,加上刚过年,现在准备重新开战,继续自己的学习之路.本文已同步到Web API ...
- 微信小程序整理
目录 开发环境 目录结构 WXML组件 WXSS 数据绑定 条件渲染 列表渲染 模版 事件 引用 路由传参 API 实例TodoList 1.开发环境 开发工具下载(https://mp.weixin ...
- Activiti工作流小序曲
一般涉及到OA.ERP等公司办公系统都必须有一套办公流程,这时候使用activiti工作流框架会大大减轻我们的工作量,提高我们的开发效率. Activiti工作流简单介绍: 工作流(workflow) ...
- JavaScript获取当前站点的域名和端口号
获取域名(第一种方法): document.hostname 获取域名(第二种方法): document.domin 获取端口号: location.port 获取主机+端口号: location.h ...
- MySQL root 密码修改
小伙伴要在以前的服务器上装个代码版本控制的软件,要用到数据库,可是想来找去root密码还是忘了,其他已经安装的服务都是用的专用账户配置文件里要找不到root用户的密码.用以下方法将密码强制修改掉: 1 ...
- 关于输入框在谷歌浏览器 ie 浏览器中 黄色背景的去除
谷歌有自己对input 的填充色 加上下面的css 就可以了 input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px white ins ...