《构建之法》第一章自习之所感

在本周自学了第二章的内容后才发现了自己以往编程所忽略的很多事情,就拿测试来说,以往的编程我几乎是不会去进行测试的。以前只知道把编好的代码一通敲进去,然后点击执行,结果对了就成。其实这样的做法,小型的程序中可能体现不出什么问题,但一旦做到大型的程序就有可能包含很多的隐患。单元测试的进行可以使模块的质量得到稳定量化的保证,并且可以使自己负责的模块功能定义明确,模块内部的改变不会影响其他模块。回归测试则可以用来确保已经修复的bug没有再复发。再来就是效能分析,它能让我们的程序跑的又快又好等等。可以说这大大刷新了我以往编程时的对编程需要做的事情的概念。由于没有学习过c#,对本书中的一些例子不能够很好的理解,这是本周学习有点遗憾的地方。一下是本周学习中总结的一些知识点:

单元测试:

好的单元测试应具备的条件:

1.单元测试应该在最基本的功能/参数上验证程序的正确性

2.单元测试必须由最熟悉代码的人(程序的作者)来写

3.单元测试后,机器状态保持不变

4.单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)

5.单元测试应该产生可重复、一致的结果

6.独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性

7.单元测试应该覆盖所有代码路径(注意点:100%的代码覆盖率并不等同于100%的正确性!)

8.单元测试应该集成到自动测试的框架中

9.单元测试必须和产品代码一起保存和维护

回归测试:

单元测试是回归测试的基础

回归:回归到以前不正常的状态

回归测试最好要自动化以便尽早发现问题。

效能分析工具:

两种方法:抽样和代码注入

一般先抽样再做代码注入

抽样作用:找到瓶颈

代码注入作用:详细分析

个人开发流程:

软件工程师接到一个任务后需要做的内容:
1.计划
2.开发
3.记录用时
4.测试报告
5.计算工作量
6.事后总结
7.提出过程改进计划

时间: 2024-11-04 14:55:59

《构建之法》第一章自习之所感的相关文章

阅读构建之法第一章有感

今天阅读了构建之法第一章,感觉到自己其实玩具的阶段都不到,离研究阶段更是差的有段距离.了解到程序其实只是一个藏在你电脑里的数据结构加算法,要想成为软件还得经历软件工程这一阶段,软件工程便是把系统的.有序的,可量化的方法应用到软件开发,运营和维护上的过程中.首先我要进行软件需求分析,一个成功的软件是要有市场需求作为背景的,没有需求你做的软件就是无用的东西,有了需求然后我们对软件进行设计使之安全 可行 基本满足市场的需求.然后我们便对我们的软件进行测试.最后软件在用户手中运行,但是十全十美的软件是不

构建之法第一章

本章为概论,主要讲解计算机科学的领域.软件工程和计算机科学的关系.软件的特性.软件工程的定义与组成部分等内容. 一.软件: 程序=数据结构+算法 软件=程序+软件工程 软件工程的核心部分: 1.构建管理 2.源代码管理 3.软件设计 4.软件测试 5.项目管理 软件开发有玩具阶段.业余爱好阶段.探索阶段.成熟的产业阶段等四个阶段. 二.软件工程: 软件具有复杂性.不可见性.易变性.服从性.非连续性等. 计算机科学与软件工程的区别(侧重点) 计算机科学: 1.发现和研究长期的.客观的真理 2.理想

构建之法第一章读后感

首先,文章对于程序.用户需求.工程等等概念用了阿超给儿子编写的一个出题程序来分别解释了个中的含义,尤其是程序和工程的区别,程序大概就是用很多语言或工具编写的一个简单能实现目标要求的一行行代码,而工程就是在这个程序的基础上不断满足用户的需求.修复程序的bug.提供后续维护等服务. 需求分析:梳理需求,逐步展开后续工作,如设计(软件架构).实现(写数据结构和算法),测试,发布软件 软件=程序+软件工程(软件企业=软件+商业模式) 软将工程的核心部分:构建管理.源代码管理.软件设计.软件测试.项目管理

构建之法 第一章 概论

软件与程序的区别,恐怕就是实用性与理想性的区别.软件=程序+软件工程:程序=数据结构+算法.我们现在学的,只是后者的构成,而从理想迈向实用的最关键的一步,就是软件工程. 1.概念 1)软件构建:除了代码和静态数据,还有各种文件和数据来描述各个程序文件之间的依赖关系等: 2)源代码管理/配置管理:保证代码的平台兼容性.配置兼容性等: 3)质量保障(软件测试):保证软件的质量在修改过程中可以不断提高,或者至少可以保持: 4)项目管理:软件维护和服务运营 5)生命周期:以上称为软件的生命周期SLC 2

读构建之法 第一章:概论

软件=程序+软件工程 软件企业=软件+商业模式 工程师的宗旨是:我构建,故我在 程序在这里指的是源程序,就是一行行的代码,它们是建立在数据结构上的一些算法.程序对数据进行操作,工程师把它们构建为机器能懂的可执行代码.构建不仅仅是cc和link命令,一个复杂的软件不但要有合理的软件架构.软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系.编译参数.链接参数,等等.这些都是软件构建的过程.      软件工程:和软件开发活动(构建管理.源代码管理.软件设计.软件测试.项目管理)相关

构建之法第一章总结

软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上.软件工程包括:软件需求分析,软件构建,软件设计,软件测试和软件维护. 首先,从软件二字理解,软件是可以运行在计算机上及电子设备中的指令和数据的有序集合.软件以下特性:复杂性,不可见性,易变性,服从性,非连续性.这些特性让软件开发变得有点困难,软件可以说是人类创造的最复杂的系统类型.其次,工程通常是指创造性地运用科学原理,设计和实现建筑,机器,安装或生产过程,或者是在实践中使用一个或多个上述实体,或者是实现这些实体的过程.根据

构建之法第一、二、十六章

<构建之法>第一.二.十六章疑问 我通过阅读发现这是一本十分有趣的书.不同于别的书的晦涩难懂,<构建之法>利用浅显易懂的语言,贴近生活的例子向我们讲述了软件工程的内容. 第一章  概论 软件=程序+软件工程 扩展:软件企业=软件+商业模式 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营.和维护上的过程.软件的特殊性有a.复杂性 b.不可见性 c.易变性 d.服从性 e.非连续性.软件工程与计算机科学的区别:计算机科学中与实践相关的部分,都和数据以及其他学科发生关系:

关于构建之法第一、第二与第十六章阅读疑惑

第一章.概论 原文的1.2.1节中有说到软件的不可见性,其中有这么一段描述:"商用软件出现了错误,工程师可以看到程序在出错的一瞬间留下的一些痕迹(错误代号.大致的目标代码位置.错误信息),但是几乎无法完整的重现到底程序出现了什么问题."言下之意就是在调试程序时我们很难知道程序到底出了什么问题,对此我有一些疑问.百度百科与搜狗搜索中并没有软件的不可见性的词条,我只能通过自己的理解来理解这句话.在我自己的编写代码经历里,当代码出现了问题时,我可以在编译器中很直观地知道问题的代码是哪些, 可

构建之法1-3章读后感

看了构建之法的前三章后,我的想法是这样的.该书比较贴合生活,简单易懂,而不是一堆知识理论,科学道理,通过许多生活事例为我们引入知识,举了许多例子,如健身教练和健身学员关系引申出师生关系. 许多冷硬的知识都变的鲜活了. 第一章:解释软件=程序+软件工程,软件是什么.软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程.软件的特殊性,软件开发的不同阶段. 问题:能力弱的同学该怎么学这门课程? 第二章:本章是讲个人技术和流程,具体的单元测试流程,通过一段代码作为例子. 问题:测