首页 > 其他分享 >构建之法阅读笔记1

构建之法阅读笔记1

时间:2024-02-28 21:58:48浏览次数:27  
标签:个人 工程师 效能 单元测试 笔记 软件工程 构建 阅读 软件

第一章

作者谈到了软件开发的过程,过程包括玩具阶段、业余爱好阶段、探索阶段、成熟的产业阶段。我觉得自己处在业余爱好者的阶段(上学期数据库大作业要求写一个图书馆里系统,于是就写了一个图书管理网站,当时做完的时候感觉挺有成就感的,虽然过程十分痛苦),在讨论商业软件和爱好者的程序时,作者举了一个有趣的例子,如果有一个航班没有配置安全设备,你会去乘坐吗?我比较喜欢旅游,每年都坐飞机,虽然在航行过程中确实没有用到任何安全设备(用到了,估计就不一定还能来上课了……),但是这样的飞机我不敢乘坐,上面这个例子说明了,爱好者开发的软件,很少会考虑给软件加上“安全功能”。从而在软件高速运行的过程中,如果出现异常,不能保证安全退出,并且不破坏用户数据。由此可见,对于真正的软件开发我还有很长的一段路要走,

 

最后作者谈到了本章的一个重点,软件工程究竟是什么?这和计算机科学有什么区别?看了作者的论述,再结合自己的理解我觉得计算机理论的进展会帮助软件工程(例如对程序正确性的分析),软件工程的进展(包括更好的工具,更广的应用领域)会帮助计算机科学家更有效的进行试验和探索。

 

 

 

第二章 个人技术和流程

本章主要讲了单元测试、回归测试、效能分析、PSP。由于我没有用vsts写单元测试,更不要说建立在单元测试上的回归测试,页没有用performance进行过效能分析,所以对本章内容理解不深。但从总体上讲,单元测试的目的是为了确保我们所写的模块能被他人调用,并且代码清晰易懂,不影响其他模块。回归测试是指程序出错时能回退到正常运行的状态。效能分析为了发现程序性能瓶颈,提高程序运行的速度。在将效能分析的过程中,作者举例一个例子说明在for循环中的判断不要调用函数,因为这个函数在每轮循环结束之后都会被调用一次。

 

 

第三章 软件工程师的成长

本章主要讲了软件工程师的个人能力的衡量与发展、职业发展着两个方面,对于一个软件工程师,个人能力尤为重要,如果个人能力不足,何谈团队协作,以及项目开发呢?个人能力包括,软件开发的相关知识、经验,软件工程思想,职业技能和实际成果。在谈职业发展时,说明了考级,公司以及自我评估三个大方向的发展。其中让我比较在意的是微软软件工程师的职业等级,从表格中可以看出从低级工程师到高级工程师不仅仅是个人能力的提高,更要注重身份的转变,即从执行者转变成决策者,低级工程师仅仅是完成上级布置下来的任务,而高级工程师要参与到项目的决策中。

标签:个人,工程师,效能,单元测试,笔记,软件工程,构建,阅读,软件
From: https://www.cnblogs.com/4a5r/p/18042002

相关文章

  • 《构建之法》读后感1
    两人合作——4.3代码设计规范——4.3.3错误处理      此处提到了“断言”的概念,但着墨不多,介绍简略。那么问题来了,挖掘机……不是,断言是什么?编写代码时,如果程序员相信在程序中的某个特定点某表达式值(布尔式)为真,可将其标为断言(assert)。举个栗子:pu......
  • 《构建之法》读后感2
    瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。它在1970年由温斯顿·罗伊斯(WinstonRoyce)提出,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。本书中例出了瀑布模型的文档图,但是鄙人并没有看得很懂它的用意......
  • 《构建之法》读后感3
    TDD(TestDrivenDevelopment),即测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。测试驱动开发的基......
  • CF836F 做题笔记
    传送门非常好题目,使我原地旋转。首先数据这么小显然直接暴力求出每个\(A_i\)的取值范围。由于每个\(A_i\)只能有一个取值,所以源点先给所有\(A_i\)连一个限流为\(1\),费用为\(0\)的边。同时显然还要给每个值域点(不是\(A_i\))向汇点连限为\(inf\),费用为\(0\)的边......
  • 洛谷P2762 太空飞行计划问题 笔记
    传送门神奇的题目。正解就是源点向实验连边,边权为收益。然后仪器向汇点连边,边权为代价。然后答案就是所有实验收益之和-最小割。考虑证明。首先所有实验收益之和显然对应了做所有的实验。然后考虑割掉一条边。如果割掉的是源点->实验,那么就是不做这个实验。如果割了仪器->汇......
  • 置换群 / Polya 原理 / Burnside 引理 学习笔记
    置换群/Polya原理/Burnside引理学习笔记在GJOI上做手链强化,经过长达三小时的OEIS和手推无果后开摆,喜提rnk12,故开始学习置换群相关内容。笔记主要以Polya原理和Burnside引理的应用为主,所以会非常简单,很大一部分的群论概念和证明不会写,因为我不会。基础群论定......
  • Go语言精进之路读书笔记第38条——尽量优化反复出现的if err != nil
    Go在最初设计时就有意识地选择了使用显式错误结果和显式错误检查38.1两种观点显式的错误处理方式让Go程序员首先考虑失败情况,这将引导Go程序员在编写代码时处理故障,而不是在程序部署并运行在生产环境后再处理。而为反复出现的代码片段iferr!=nil{...}所付出的成本已基本被......
  • 阅读《系统科学方法概论》第一章
    本书的第一章介绍了系统方法,从本章中了解到了什么是系统以及系统思想发展史和系统内部的基本关系。接下来我们细讲一下系统方法。首先,系统思想发展史分为三个发展时期,古代、近代、现代,古代的系统观念:恩格斯指出:“在希腊哲学的多种多样的形式中,几乎可以发现以后所有的观点的胚芽、......
  • 课堂笔记1
    1、计算最小公倍数我的第一想法:两个数的最小公倍数只能是两个数其中的一个、两个数的乘积、或者小于两个数的乘积。通过一个for循环(限制条件为:i=0;i<两个数的乘积),然后用if语句判断i是否能整除i且i小于两个数的乘积,是就输出i否则输出两个数的乘积。写出来发现结果是0,看了一下......
  • 《Decoupling Representation and Classifier for Long-Tailed Recognition》阅读笔记
    论文标题《DecouplingRepresentationandClassifierforLong-TailedRecognition》用于长尾识别的解耦表示和分类器作者BingyiKang、SainingXie、MarcusRohrbach、ZhichengYan、AlbertGordo、JiashiFeng和YannisKalantidis来自FacebookAI和新加坡国立大学......