第一章:概论

本章主要是讲了软件工程的基本概念,软件工程的最终目标是创造“足够好”的软件。

提出问题:什么是BUG?(出自1.2.5节)

答:就我个人而言,在许多游戏中也有许多的BUG,BUG这一词在网络游戏中属于高频率的词,中文意思就是“漏洞”,在游戏中这些BUG漏洞往往会带来给玩家很大的伤害,会造成游戏的不公平,游戏也是个大型的软件,所以一个游戏每个星期几乎都会进行维护更新,主要就是修复这些游戏里的BUG。而书中所说,BUG,简单地说是软件的行为和用户的期望值不一样,就叫BUG。通俗易懂,BUG会在一次次测试中出现,一个程序它可能是一个人写出来的,也可能是一个团队,或是更大的团队,即使如此,但当他投入市场给用户使用时,面对的就是更大的群体。人各自有各自的想法,在使用你的软件时就会有不一样的看法,就会产生BUG,所以我们编写软件的人或团队,要虚心地收集用户们的BUG,最后让做的软件更加地接近于用户的满意值,这样的软件才能做的长久。

第二章:个人技术和流程

提出问题:什么是单元测试?(出自2.1.1节)

答:在我看来,测试是一个软件必不可少的环节,而单元测试我初步理解是设置一个适用于“一个问题”的测试方法,即这个方法适用于你输入各种数据,测试是否符合标准。我曾在深圳一家外企“昱科环球”里做过一个多月的暑假工,在里面我是做操作员。这个公司是做计算机硬件的公司,主要是做存储数据的碟片(西部数据),而操作员也有着很多不同的分工,一个空磁片要经过拆封,清洗,润油,打磨,紫外线照射,测试,包装。每个环节都需要学习了相应知识的操作员,而我恰好被分配到了测试的环节,其中测试的环节是最为重要的,这决定了一个磁片是否能达到正常的指标才能包装销售。每个操作员都要经过一个星期的学习进行考核后才能有资格进行操作。在测试环节中是一台台机器在进行测试碟片,整个无尘操作间几乎90%以上是机器在运转,当然机器也是人做的,每台机器都有两台电脑,每个进来的碟片都要进过物理测试(Glad)和性能测试(Mag),符合规定的指标才能出厂。我认为每台机器就像是个单元测试。而我觉得软件的单元测试虽然没有这么大型的机器,但性质是差不多的。

在百度上找到了官方的定义如下:

单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。

第三章:软件工程师的成长

提出问题:现在的我具备了一个软件工程师的能力了吗?(出自3.1节)

答:衡量自己的能力是成长非常重要的过程,人要有自知知名“知己知彼方能百战百胜”。现在的我若像书中扭魔方的例子,觉得自己还在第一层,还在基础层,现在的我基础还不是很牢固,所以要更加努力地打好基础,为以后人生的道路做好铺垫。所以,现在的我显然是还不具备一个软件工程师德能力的。

第四章:两人合作

提出问题:如何在两人合作中提高工作效率?(出自4.6节)

答:在练习二中,我与我的小伙伴进行了结对编程,收获了挺多。一开始,两人要提出各自的看法,互相尊重对方的建议,写出初步的方案(像书中的萌芽阶段);之后在写代码的过程中会出现意见分歧,要控制好自己的情绪,把各自的意见进行比较,或者结合两人的意见提出新的思路(像书中的磨合阶段)。最后在程序敲完之后会要进行测试,一些代码格式的规范,漏洞问题,或是新的idea,都可以在这一阶段加入进去(规范阶段),最后完成程序(创造阶段)。做好这四个环节,我相信能很有效地提高两人合作的工作效率。在两人合作的过程中,我很享受其中的过程,乐在其中。所以,有个好心态去做事情也是不错的。

第五章:团队和流程

提出问题:团队软件开发是用什么模式好呢?(出自5.2节)

答:书中提供了很多模式,有窝蜂模式,主治医师模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐模式,爵士乐模式,功能团队模式,官僚模式等等。那么多的模式让我很困惑,如何选择相应的模式才能使团队开发顺利的进行呢?他们在不同的模式中又是如何分工的呢?

Practice3 阅读《构建之法》1-5章的更多相关文章

  1. 20150409作业3 阅读《构建之法》1-5章 (Update:2015-04-16

    以下是我看<构建之法>1-5章列出来的知识点和一些自己对部分知识的理解以及一些吐槽...和感受 1.1 软件 = 程序 + 软件工程 (软件工程 = 软件 - 程序(我知道软件是什么,也知 ...

  2. 2nd 阅读构建之法有感

    阅读构建之法有感 利用这一周的时间,我大致了解构建之法一书,这本书带我走进了一个全新的领域.它让我以一种新的视角去了解软件产业的发展和工作,领略软件工程的独特魅力,更给出了简单易懂的方式去理解何为软件 ...

  3. <构建之法>第十三章到十七章有感以及这个项目读后感

    <构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...

  4. 阅读<构建之法>第三10、11、12章并提出问题

    <构建之法>第10.11.12章 第10章: 问题:对我们了解了用户的需求后,但是我们想法和做出来的软件会和用户的需求有偏差,比如风格.界面的修饰等等,那么我们程序猿怎样才能让自己的想法更 ...

  5. Week2-作业一——《构建之法》三章精读之想

    Week2-作业一——精读<构建之法> 前言 其实我本人是不经常看书的,电子书倒是看了不少,实体书真的不经常看,但是为了这次作业的需求,我还是选择静下心来阅读一下这本<构建之法> ...

  6. SE_Work1_阅读构建之法&项目管理实践

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:阅读<构建之法>并回答问题 个人博客作业 我在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作 ...

  7. <构建之法>第十一章、十二章有感

    十一章:软件设计与实现 工作时要懂得平衡进度和质量.我一直有一个困扰:像我们团队这次做 男神女神配 社区交友网,我负责主页的设计及内容模块,有个队友负责网站的注册和登录模块,有个队友负责搜索模块,有个 ...

  8. c++生成算式并计算(《构建之法》第一章课后第一题)

    c++实现计算器(自动生成算式并计算) 要满足的需求有以下几个: 自动生成随机的四则运算算式,包含括号和小数. 对生成的算式计算出结果. 算式.结果分别存储到不同的文件. 一 生成算式 由上述需求可知 ...

  9. Practice4 阅读《构建之法》6-7章

    关于第五章后面的阅读已经在Practice3中有所感悟,下面是6-7章的读书笔记. 第6章 敏捷流程这一章讲了“敏捷流程”这一概念,关于这一名词我是很陌生的,在阅读之后有了一定的理解.敏捷流程是提供了 ...

随机推荐

  1. MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根

    MATLAB用二分法.不动点迭代法及Newton迭代(切线)法求非线性方程的根 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验原理 二.实验步骤 ...

  2. Beta冲刺(3/5)(麻瓜制造者)

    今日已完成 邓弘立:完成了登录功能的重构,完成了部分商品管理功能 符天愉:利用ci开始写队友写好的管理员界面,由于后台独立开始使用一个仓库,所以晚上将alpha的版本更新到了git,并且添加了.git ...

  3. WEB应用打成jar包全记录

    内容属原创,转载请注明出处 题外 由于项目的需求—不管是怎么产生的这个需求—总之,需要支持把一个web应用打成jar包供其他应用使用,这就有了下面的过程. 这个过程里用到了Spring和SpringM ...

  4. P1019 单词接龙

    单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一 ...

  5. 23个Python爬虫开源项目代码

    今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [1]– 微信公众号 ...

  6. 深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  7. LCA树链剖分

    LCA(Lowest Common Ancestor 最近公共祖先)定义如下:在一棵树中两个节点的LCA为这两个节点所有的公共祖先中深度最大的节点. 比如这棵树 结点5和6的LCA是2,12和7的LC ...

  8. M100 对频

  9. 对node.js的理解?

    a.Node.js是一个基于Google Chrome V8引擎的javascript运行环境.Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻量又高效.Node.js的包管理器npm, ...

  10. matlab slice

    前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...