第一周读书笔记《构建之法》(代码片段)

sanjing sanjing     2022-10-26     432

关键词:

构建之法读书笔记

 
 

构建之法读书笔记

沈三景 PB15061249 软件工程 读书笔记


 

前言

开学前两周,杂事颇多,没有充足的时间阅读《构建之法》,只能每天在睡前阅读约半小时,故只看了前三章。虽如此,但仍收获很多,下面就是我对前四章内容的一些看法和理解,如有理解偏颇之处,望见谅。


 

第一章 概论

本章主要介绍了软件工程是什么?软件工程的目标是什么?为了解决前一个问题,作者首先提出了两个等式:

程序 = 数据结构 + 算法
软件 = 程序 + 软件工程

为了解释软件行业赖以生存的“软件”,程序员安身立命的“程序”是什么?作者举了移山公司程序员编写一个自动生成加减法题目的软件的故事,生动形象地阐述了程序就是指源程序,就是一行行的代码,是建立在数据结构上的一些算法。若是扩充功能,就转变成了一个应用软件。在此基础上,若能保证维修,则转变成软件服务。作者还提到了软件的商业模式,于是得到一个推广的公式:

软件企业 = 软件 + 商业模式

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

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

最后作者提到了软件工程的目标是什么?软件工程的目标是创造“足够好”的软件,好的软件指没有“bug”的软件,bug的多少可以直接衡量一个软件开发的效率,用户满意度,可靠性,可维护性。但这也不是绝对的,例如买车,玛莎拉蒂从各个角度上讲都是优于五菱宏光的,然而仍然有不少人会买五菱宏光,为什么呢?这是因为五菱宏光已经满足了他们的需求,没有必要买玛莎拉蒂。况且有实际用处,且无bug的软件是不存在的,我们要做的仅仅是满足客户的需求,在客户规定的时间内,完成开发,bug要尽可能的少,同时这个程序要有可靠性和可维护性。


 

第二章 个人技术和流程

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


 

第三章 软件工程师的成长

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

 

第四周读书笔记《构建之法》(代码片段)

第四周读书笔记《构建之法》#wmd-previewh1color:#0077bb  第四周读书笔记《构建之法》沈三景PB15061249软件工程读书笔记 前言本周接着读了构建之法(上周读了《程序员的修炼之道》)的第六、七两个章节。 第六章敏... 查看详情

《构建之法》读书笔记

本周阅读第一章《概论》第一章《概论》旨在说明软件工程的概念。几个概念:软件=程序+软件工程软件工程可以定义为:把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程;软件工程包括一下领域:源代... 查看详情

《构建之法》(第十七章)读书笔记(代码片段)

一、关于代码规范1.1因为软件开发多数是一个团队的事情,所以需要格外注意代码规范。我们的代码日后通常是需要去维护的,是需要去给别人看的。但是,不同的编程语言对代码规范的要求是否相同呢?因为在工作室学的是前... 查看详情

读书笔记——《构建之法》

谢谢大家能来看我的博客,这是我第一次写博客,大概也会石沉大海吧。但我会逐渐成长,写出更优秀的博客。那么下面开启正文吧。  《构建之法》一书面向初级程序开发者,讲述个人开发、小组开发、团队开发中所要注意... 查看详情

《构建之法》读书笔记之:第十六章

...一些无法自己解答的疑惑,烦请各位老师批评指教。 第一章:笔记 查看详情

第一周psp

日期C类别C内容S开始时间E结束时间I间隔(单位:分钟)T净时间(单位:分钟)9月2日编程词频统计7:359:35101109月3日读书构建之法8:009:00555 编程词频统计13:0014:000609月4日读书构建之法8:009:00060 编程四则运算13:0015:0010110   ... 查看详情

第一周-构建之法

《构建之法》第一章阅读笔记 本书第一章标题为“软件=程序+软件工程”,如标题所言,在开头就十分精炼地概述了“软件”的概念,这样哪怕读者是门外汉,这一部分对于他们来说也很浅显易懂好消化,至少不会一上来就... 查看详情

《构建之法》读书笔记

  第一节软件工程课上,杨老师力荐同学们务必要人手一本《构建之法》第二版。课上说到这本书无论是对学习软件工程学科的学生,还是教授软件工程课程的老师,或是从事软件开发行业的相关人员,都是一本令人受益... 查看详情

《构建之法》读书笔记01

... 今天阅读了邹欣老师的《构建之法:现代软件工程》的第一章,也回想起了我之前对于软件和硬件的一些思考,在这里一并总结。  首先谈软件工程,在计算机技术刚刚发明的时候,跟其他的行业一样,肯定是没有工程这个... 查看详情

构建之法——读书笔记

...,才能满足用户的需求。12.1用户体验的要素12.1.1用户的第一印象我们至少可以考虑以下两 查看详情

《构建之法》(第三版)——邹欣读书笔记

...我认为读书应该是从“薄”->“厚”->"薄",此时完成第一步速读已力有不逮,况细读精读乎?如果知识得不到及时巩固和积累,学习的同时没有留出时间给人思考,学的断片了,那以后重拾此书时又要从头开始,从时间上来... 查看详情

《构建之法》读书笔记一

本周先看了《构建之法》的第一章。这一章介绍的理论和知识点有计算机科学的领域、软件的特性、软件工程、软件工程与计算机科学的关系,还向我们详细介绍了软件工程的定义与组成部分。其中有三个推论:程序=数据结构+... 查看详情

《构建之法》读书笔记

   在第四章的两人合作中,了解到代码的规范特别重要。“代码规范”可以分成两部分:代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。代码设计规范。牵涉到程序设计、模块之间的关系、设... 查看详情

《构建之法》读书笔记一

通过第一章,我大概了解我将要从这本书中学习什么,如何落实学习。本书的作者——邹老师,通过设定简单的人物和简短的话语,使得书本远离枯燥无味,同时还条理清晰,这加强了我看书的耐心。    1.1节通过... 查看详情

读书笔记(构建之法-11.19)

读构建之法有感:  今天在实验室读了构建之法书的第4章-两人合作,书上首先讲代码规范,一个程序员写的代码主要个人看,而在给人看的前提是要代码规范。对我个人而言,其实看到没有规范的代码是看不下去的,自己曾... 查看详情

构建之法的读书笔记

   第一次接触这本书是在老师的推荐下,据说作者是一个出自微软的技术大牛,敬仰之情当时油然而生。读完前三章之后有很多感悟,确实在某些方面冲击了以前的一些思维观念,收获颇多。   我很赞同作... 查看详情

《构建之法》第四章读书笔记

本章理论和知识点有:代码规范、极限编程、结对编程、两人合作的不同阶段、影响他人的技巧一、代码规范1、代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。代码风格的原则是:简明,易读,无二义... 查看详情

构建之法读书笔记

...间的培养方向也完全没有概念。简单的看了书中的序言和第一章节,确实感觉这本书和以前的教材相比不太一样。本科的教材里面罗列了大把的基本概念,完全记不住。这本书里面会通过更多的比喻和事例来帮助理解这些概念以... 查看详情