代码大全(code complete) 有感
软件开发的工作内容
- 问题定义
- 需求分析
- 实现计划
- 总体设计
- 详细设计
- 创建即实现(编码和调试)
- 系统集成
- 单元测试
- 校正性维护
- 功能强化
隐喻
好比监听器看做是某单位的看门老大爷
这里的类比: 通过把一个你所陌生的事务与你所熟知的事务比较, 你对它有进一步的认识, 从而形成你对它的独到的深刻理解, 这种叫做隐喻”模型化”.
例如: 分子运动论是在 “保龄球”模型上建立起来的.
软件创建的先决条件
在进行创建工作之前必须做准备工作的论据.
利用 逻辑推理, 时间, 人力, 物力, 财力.
利用 类比, 即 隐喻, 创建一个软件系统与其他需要耗费人力与财力的工程是一样的. 如果你要造一幢房子, 在开始砌第一块砖之前, 你必须先画好建筑图与蓝图.
子程序的要求
内聚性: 即一个函数只完成单一的工作
松耦合: 指两个子程序(函数)之间联系的数量越少越好
防错性编程: 使用断言 (isOK), 使用错误的数据调试 等等.
结构化设计: 自顶向下分解
面向对象设计: 识别对象及其属性, 确定每个对象可以做些什么, 确定每个对象对其他对象来说的可见部分, 确定每个对象的公共接口.
代码大全(code complete) 有感的更多相关文章
- 重读 code complete 说说代码质量
重读code complete 说说代码质量 2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete ...
- Code Complete 读后总结和新的扩展阅读计划
Code Complete 读后总结和新的扩展阅读计划 用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划. 1.选择代码大全作为我程序员职业入门的第一本书,我认为 ...
- 《代码大全》的作者Steve McConnell
Steve McConnell是Construx公司首席软件工程师,在公司里监督软件工程实施.他是软件工程知识体(SWEBOK) 项目构建知识领域的领导.Steve曾为微软公司.波音公司和西雅图地区的 ...
- XSS(跨站脚本攻击) - 常用代码大全
XSS(跨站脚本攻击) - 常用代码大全-版本一 1'"()&%<acx><ScRiPt >prompt(915149)</ScRiPt> < ...
- code complete part1
最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...
- 实用js代码大全
实用js代码大全 //过滤数字 <input type=text onkeypress="return event.keyCode>=48&&event.keyC ...
- js代码大全
超级实用且不花哨的js代码大全 事件源对象event.srcElement.tagNameevent.srcElement.type 捕获释放event.srcElement.setCapture() ...
- javascript常用代码大全
http://caibaojian.com/288.html 原文链接 jquery选中radio //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...
- Code Complete阅读笔记(一)
代码大全也读了好几个月了,一开始读中文版,到现在慢慢尝试着读原版,确实感受到了"每天进步一点点"的魅力.遗憾的是没有从一开始就做阅读记录,总有不能尽兴和思路不清之感.确实,就像项目 ...
随机推荐
- centos下docker网络桥接
停止服务 停止docker0网卡 Ip link set dev docker0 down 删除docker0 Brctl delbr docker0 进入到网卡的配置文件创建桥接网络br0 Brct ...
- Ubuntu 64位安装32位运行库
sudo apt-get install ia32-libs 32-64sudo apt-get install libc6:i386sudo apt-get install librt:i386su ...
- C#返回多个参数 ref及out
out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字.例如 ...
- 【PM】关于系统数据库和服务现场升级的一些看法
工作快满一年了,立即着手准备第二次出差去升级我们的系统,可是突然想到一件事情,让我颇有感触,是关于系统现场升级的. 我们迭代开发的系统隔一段时间就会须要到用户的现场去为其进行系统升级,当中升级包含cl ...
- Android画图最基本的三个对象(Color,Paint,Canvas)
Android画图最基本的三个对象(Color,Paint,Canvas) 三个类都存放在 android.graphics包下 1) Color :颜色对象,相当于现实生活中的 ‘调料’ 2) Pa ...
- taro 更新
更新 Taro 提供了更新命令来更新 CLI 工具自身和项目中 Taro 相关的依赖 更新 Taro CLI 工具 # taro $ taro update self # npm npm i -g @ ...
- webpack 引入jquery和第三方jquery插件
1.引入jquery jQuery 直接在 html 中引入,然后在 webpack 中把它配置为全局即可. index.html: <!DOCTYPE html> <html> ...
- javascript 内置类型
JavaScript有七种内置类型: 空类型:null 未定义:undefined 布尔:boolean 数字:number 字符串:string 对象:object 符号:symbol(ES6新增) ...
- 浅析C++中的this指针
转自:http://blog.csdn.net/starlee/article/details/2062586 有下面的一个简单的类: class CNullPointCall { public: s ...
- sql各种连接详解
迁移时间:2017年6月1日16:33:58 CreateTime--2016年9月14日11:19:00Author:Marydon sql各种连接详解 参考链接: http://www.jb5 ...