读《构建之法》前三章有感

这两天看了《构建之法》的第1、2、3章,有所感悟

一、软件工程是什么

     在上这门课之前,知道一个项目的进行大概是要经过哪几个步骤,知道设计是一个项目开始的重点,如果需求设计、数据库设计、规范没有确定好就开始项目、开始敲代码,降低项目的效率甚至事半功倍 。但是对“软件工程”(软件工程——把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程)这个词还不是真正理解,其实一个项目的开发并非那么简单,不是敲敲代码就能解决。前期要花很多时间在需求分析上,除了需求分析还有生成设计文档、设计复审、代码规范、具体设计、具体编码、代码复审、测试、以及后期的维护和总结。  

问题:软件工程在我们的实际开发中都有哪些体现呢? 

二、单元测试

  最近老是在微信说这星期给我们普及单元测试,很多同学都以为是像英语课那样进行每个单元的单词检测一样,其实不是的,单元检测是对每个模块中的每个方法每个参数进行检测,而且单元测试在软件开发中占很大的地位,如果一开始没写单元测试,所以后来有很多bug要处理,修复起来的时间更多时间。

问题:1.究竟单元测试在java中是怎么实现的,实现的原理是什么,只知道是用来测试每个模块中的每个方法。

   2.单元测试应该覆盖所有的代码路径是什么意思?为了保证代码覆盖率,单元测试为什么必须测试公开的和私有的函数/方法

三、软件工程师与新生的区别

  一开始不清楚老师为什么要给让我们写进度条,而且不喜欢统计代码,现在才知道这样做的好处:可以看到我们进阶为软件工程师的数据过程,其实也是提高我们对产品的估算时间,比如以后工作了项目经理或者需求分析师会问我们:“这个功能什么时候能完成”,如果一个功能的完成总是不在预期的时间内完成,将会给项目的完成带来很多问题。文章中提及到一个例子:职业篮球队的赛季变现的数据,数据表也可以衡量一个软件工程师的工作的质量。

问题:经常遇到Bug总是找不出,即使百度却解决不了,每次都只能找其他人帮忙,总感觉自己离软件工程师的目标越来越远,怎么办?

原文地址:https://www.cnblogs.com/jackeicao/p/5303942.html