What is Software Consturction

  • 定义问题 problem definition
  • 需求分析 requirements planning
  • 规划构建 construction planning
  • 软件构架 software architecture ,高层设计 high-level design
  • 编码与调试 coding and debugging
  • 单元测试 unit testing
  • 集成测试 integration testing
  • 集成 integration
  • 系统测试 system testing
  • 保障维护 corrective maintenance

构建活动中的具体任务(task)

  • 验证有关的基础工作已经完成,因此构建活动可以顺利进行下去
  • 确定如何测试所写的代码
  • 设计并编写类(class)和子程序(routine)
  • 创建并命名变量(variable)和具名常量(named constant)
  • 选择控制结构(control structure),组织语句块
  • 对代码进行单元测试和集成测试,并排除其中的错误
  • 评审开发团队其他成员的底层设计和代码,并让他们评审你的工作
  • 润饰代码,仔细进行代码的格式化和注释
  • 将单独开发的多个软件集成为一体
  • 调整代码,让他更快更省资源

Importance of Prerequisites
前期准备的重要性

准备工作的中心就是降低风险,目前软件开发中最常见的项目风险是糟糕的需求分析和项目计划

从食物链来类比软件开发

发现错误的时间要尽可能接近引入该错误的时间。缺陷在软件食物链里呆的时间越长,它对食物链最后级造成的损害就越严重。

  • P7 把主要精力集中于构建活动,可以大大提高程序员的生产率。
    在最近的一个项目中,对于这一点,我是深有体会。我们花了很长的时间做设计,结果接下来的许多工作都在愉快的心情下完成。我觉得 P28 的那个食物链的例子更有说服力,健康的生态环境中,海鸥吃新鲜的鲑鱼,鲑鱼吃新鲜的青鱼,青鱼吃新鲜的水蝽。这是一条健康的食物链。 如果环境被污染了,水蝽在污染的水域游泳,那么海鸥,食物链的最后一环吃下的不仅仅是是不健康的鲑鱼体内的垃圾,还有青鱼,水蝽体内的污染物。软件开发中,架构师吃掉需求,设计师吃掉架构,程序员,软件食物链的最后一环,消化掉设计。 如果一开始就被污染了,我们就不要指望程序员快乐了。整个软件都会具有放射性,周身都是缺陷,绝对导致程序员脾气暴躁、营养失调。在我们规模不大的团队里,一个人身兼数职,伤害更大。所以,项目一开始就决定了它能否成功。
  • P7 源代码——往往是对软件的唯一精确描述
    其实我们不必为没有精确的文档沮丧,不是吗?
  • P13 常见的软件隐喻
    好的隐喻可以让我们思考更多的问题,并走上正确的道路。我们是在 Writing Code,还是 Growing a System 还是 System Accretion 或是 Building Software ? 做不同软件有不同的方法,不要拘泥。

《代码大全》读书笔记之一相关推荐

  1. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3

    技术非常多,样例非常多.仅仅好慢慢学,慢慢实践!!如今学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQ ...

  2. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记2

    技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...

  3. 简单使用Git和Github来管理自己的代码和读书笔记

    简单使用Git和Github来管理自己的代码和读书笔记 以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读 ...

  4. 第一行代码 Android读书笔记(二)

    第一行代码 Android读书笔记 第三章 软件也要拼脸蛋-UI开发的点点滴滴 常用控件的使用方法 详解4种基本布局 自定义控件 最常用和最难用的控件-ListView 更加强大的滚动控件-Recyc ...

  5. 《第一行代码》读书笔记(七):album爬坑

    <第一行代码>读书笔记(七):album爬坑 权限问题 尽管书中提到4.4系统之前需要声明访问SD卡权限,不过很遗憾,4.4系统之后仍然需要 照片不显示问题 Android10对文件访问权 ...

  6. 《梦断代码》读书笔记——第3、4、5章

    只觉得这段时间事儿太多了,本应该周五就应该写的读书笔记一直拖到今天. 读完这几章,我主要收获了以下几点:计算机编程语言的发展由低级语言到高级语言,高级语言是在低级语言的基础上发展起来的,低级语言不应该 ...

  7. 代码大全阅读笔记02

    第二部分:创建高质量的代码 第一部分主要介绍了开发过程和需求分析,强调了构建的重要性,可以说十介绍了技术层面的一些东西.第二部分把目光放到了更加细节的地方,也开始看到了一些代码.内容十分全面,也写了很 ...

  8. 《梦断代码》读书笔记

    梦断代码,英文名是DREAM IN DODE.梦断代码,原作是美国的Scott Rosenberg,经韩磊翻译而来. 为什么选择读这本书?在图书馆软件工程处翻阅时,被这本书的名字吸引住了,同时之前也听 ...

  9. Linux命令行与Shell脚本编程大全读书笔记

    Linux内核4大主要功能: 内存管理 进程管理 设备管理 文件系统管理 Linux系统启动的进程和脚本管理 1./etc/inittab   管理系统开机时会自动启动的进程 2./etc/init. ...

  10. 《梦断代码》读书笔记1

    刚开始看到书名时,我感觉这个名字非常好,梦断代码,代码是我们每个学习计算机同学的噩梦,有多少人是讨厌当码农的.怀着好奇的心情,开启了我这本书的阅读旅程. 首先看到的是CSDN的总裁和Discuz创始人 ...

最新文章

  1. CentOS7 编译安装 Mariadb
  2. ECShop的数据操作类文件
  3. 四、“一场跨越时空持续数世纪的对话”
  4. java file gettext_避免使用.properties文件GNU Gettext Java
  5. RxSwift之环境的搭建配置与基础控件的使用
  6. IDEA中报错“cannot resolve symbol XXX”,但编译正确可以运行
  7. python百度贴吧怎么爬取最早的帖子_Python爬虫爬取百度贴吧的帖子
  8. 深入剖析Android音频(二)AudioSystem
  9. android 5.1 内核版本号,最新的安卓5.1.1 ROOT教程(不需要刷第三方内核)
  10. matlab工具箱有哪些函数,matlab工具箱函数汇总(上)
  11. qj71c24n通讯实例_通信模块QJ71C24N应用篇手册三菱QJ71C24N用户手册 - 广州凌控
  12. 怎么才能打开dwg图纸?
  13. InSAR数据处理软件简介
  14. 前有狗屁不通文章生成器 | 后有申论生成器
  15. 难倒高手了,c语言枚举end的作用是什么?
  16. go-cqhttp系列教程-gocqhttp数据处理端-2
  17. GameCenter
  18. ubuntu安装qtcreator后没有桌面图标
  19. 【C】阶乘后面0的数量
  20. Android 的 LiveReload — jimu Mirror

热门文章

  1. 2010.4 计算机二级等级考试 vb上机试题 第一套 的答案,2012年计算机二级VB上机试题及解题思路第44套...
  2. 华为奋力前行,以灵活多变的方式突围,成效显著
  3. VIM-Plug安装插件失败,更换源
  4. Google Chrome企业咨询服务市场调研报告- 行业发展机遇、市场定位及主要驱动因素
  5. colormap保存 matlab_[转载]matlab的colormap的保存
  6. 第五篇 《小强升职记》
  7. 韩寒:给李彦宏先生的一封信
  8. matlab彩色图像处理实验报告,matlab简单图像处理实验报告
  9. 芬兰手游业25年发展史
  10. PE文件加节感染之Win32.Loader.bx.V病毒分析