软工读书笔记 week 5 ——《构建之法》
本周主要对《构建之法》中的一部分进行阅读。
一、软件与软件工程究竟是什么?
本书的概论部分就指出“软件 = 程序 + 软件工程”。而我们这门课的名字就叫“现代软件工程”。其实在上课之前,我对这门课存在一定的误解,我更多地把这门课归入“程序”部分。在我原来的理解中,像电设二一样,自己学新知识(当然很多在电设一已经学过),然好以团队的形式独立去完成一个项目,只不过电设属于硬件(也包含一部分软件),而软工则纯粹是软件了。
而上课之后却和我预想的不一样。首先每周读书笔记这个就让我非常不解,有些推荐书籍里面在我看来更像是鸡汤。后来,我才慢慢发现软件工程绝不只局限于就某一功能写代码去写代码实现,它的范围很广,正如书中所说,它包括软件需求分析、软件设计、软件构建、软件测试和软件维护,而我原来的理解只能算作是程序。比如书中开篇的那个例子,一段能完成出加减法题目的代码只能称为程序,而如果再根据用户的需求,给这个程序再加更多功能,甚至发布到网站上,并希望有人来维护,则这时程序已经升级成为了软件,因为要考虑的不仅仅是实现功能那么简单了。
再就是软件工程与计算机科学之间的关系,这一点我之前一直也搞不清楚。根据托尼·霍尔的比较,我们可以看到,计算机科学更强调理论的统一、确定性、正确性、原创性,它是一种长期的真理,而软件工程更强调更好的实践方法、能解决问题、处理风险以及可靠性,它是一种短期的结果。不过由于现在很多学校计算机学院也偏向工程,这有时模糊了二者的界限,但这并不代表二者是等同的。
二、测试与性能分析
第二章强调了单元测试的重要性,不过上次个人作业由于时间等原因没有用起来,后面有机会要学会使用。而后面提到的性能分析上次个人也是第一次用起来了,以前都只是对自己程序的运行时间有一个大概印象,而具体哪个函数耗时大都没有详细说明。而通过性能分析能更有针对地去优化。然后通过第一次大作业对这方面也有所了解,这里就不赘述了。
三、结对编程
由于接下来要进行结对编程作业,我也重点阅读了一下“两人编程”这一部分。
首先,既然是合作项目,就要有一些约定,包括代码规范之类的,具体的也不赘述。还有几点特别的,一是提到了函数有个重要原则:“只做一件事,并且要做好”,这也是一直强调的模块化,模块化的好处不仅能让程序看起来更清晰,而且可以在代码移植时更简单;二就是代码复审,这个我之前编程的时候都没怎么考虑这个过程,我之前一般的流程就大概是“编码——测试——发现有错——复查”,这样的话虽然也行,不过一些小错误或者说可以改进的地方好好看一下其实很容易发现。复审可以是自我复审、同伴复审、团队复审,在结对项目中,同伴复审就非常重要。
而结对编程可以让代码处于不间断的“复审”过程中,一个驾驶员,一个领航员,互相督促,共同决策。现在还没开始结对编程,以前也没有尝试过,我相信还是能学到很多东西的。
四、关于创新
因为本周作业里有创新的部分,我也选读了一下第十六章关于创新的内容。对于创新,我们往往认为只要想法是好的,那我们就能赢。但其实从书中举键盘布局和美国度量制可以看出,事实有时并不如此。书中还提到了很有意思的一个“黄金点”游戏,每个人选个数,所有数求平均,再乘0.618,最后离这个结果最近的同学就是赢家。作者提到了“赢者通吃”、“螳臂当车”、“只先一步”这三点,而就我自己而言,我觉得这就是一个个人决策的问题,每个人都想赢,都会思考选哪个数会让自己最可能赢,但如果大家都选这个数的话,这个数又不可能是最后答案,所以说这就考虑一个人的决断力。
魔方的创新这篇文章,则通过一个看似简单的小故事,却映射了软件开发行业的一种常态。“果冻”同学就是一个产品最先的创造者,为了保护自己的创新,他选择了对所谓的“口诀”进行保护,这个时候这个产品还只是一枝独秀。而很快,竞争——“小飞”——马上出现了,类似的技术出现,当时的产品已经成了大路货,大家对其的热情也减少了。竞争者们想要胜利,要么选择一个产品从未到达过的地方进行宣传,要么将产品与其他捆绑,而这两者终究不是长久之计,还有就是再次创新,开发属于自己更独特的地方。在百舸争流的时代,总有一两个出众者再次出现,“大牛”的新花样一时吸引了不少人,但若只是因为一点点小花样,一个产品注定不会就这么长久地火下去,而又在此时,“二柱”却能准确地把握住用户真正的需求,虽然技术上不及前面的各位,却更能抓住用户。
总结一下,一个产品要想胜利,不在于你是不是开创者,也不在于你能想出什么新花样,还是在于你能不能真正把握住用户的需求。
软工读书笔记 week 5 ——《构建之法》的更多相关文章
- 软工读书笔记 week 9 ——《构建之法》
软工读书笔记 week 9 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...
- 软工读书笔记 week 7 ——《构建之法》
总时长近两周的结对项目终于算是结束了,马上要重新开启团队项目.于是这几天决定对<构建之法>一书中与团队项目及需求分析有关的章节进行重点阅读,希望能够从中得到启发,并运用到接下来的团队项目中 ...
- 软工读书笔记 week 8 —— 《疯狂的程序员》
这次接着上一次的进度继续阅读,并将其中感悟较深的几点记录如下. 程序员是一个幕后工作者 书中绝影给医院写软件,而医生(用户)只是评价这个软件好不好用,而不会去评价写这个软件的程序员优不优秀. ...
- 软工读书笔记 week4 ——《黑客与画家》下
因为时间有限,只对书中后半部分几个篇章进行了阅读. 一.另一条路 作者以他自己为例,在那个没人知道什么叫“软件运行在服务器时”的时代,他和朋友选择创业时,没有选择写传统的桌面 ...
- 软工读书笔记 week 1
这次读书笔记主要是就<程序员修炼之道>这本书的前半部分做一些总结以及发表一些自己的看法. 本书前面的一部分主要是一些程序员应该在工作中时刻注意的事情,一些关键的信息如下: 1.处理问题的态 ...
- 软工个人阅读作业2 —— 构建之法与CI/CD
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 阅读思考教材,调研软工工具 这个作业在哪个具体方面帮助我实 ...
- 软工读书笔记 week 6 ——《疯狂的程序员》Part 1
这本小说以主人公绝影上大学后初次接触编程开始讲起,这周主要看的就是绝影还在大学的那段经历,虽然故事背景很多年前,但很多地方仍然会引发我的共鸣. 第一个梦想 在“第一个梦想”一节讲了作业布置做一个通讯录 ...
- 软工读书笔记 week3 (《黑客与画家》上)
一.何谓黑客? 黑客,在我们大多数普通人眼里,就是入侵计算机的人,通常还与干坏事挂钩.而书中告诉我们,这 并不是它的真正含义.而要想理解这本书,就要首先理解什么是黑客. 黑客这个词最初起源时,完全是一 ...
- 软工读书笔记 week2
<程序员修炼之道>这本书后面一部分则是更深入.更具体.更细致地就程序员应该注意的事项做一些讨论,书中说的很多在过去的经历中都有较深的体会,同时也给了我很多启发.以下是一些我感悟较深的点: ...
随机推荐
- C#控制台画图形
static void Main(string[] args) { //九九乘法 Console.WriteLine("九九乘法口诀"); ; i <= ; i++) { ; ...
- kubernetes pod termination pending
在将k8s从1.7.9 升级到1.10.2 之后,发现删除pod一直处于terminating状态, 调查发现删不掉的pod都有一个特点就是pod yaml中command部分写错了,如下所示: ap ...
- vSphere虚拟主机安装Centos7系统
经过上一帖的主机设置,这一步就可以开始安装系统了,本次详细记录各个过程并分析结果. Centos7 1.右键点击列表中的虚拟主机,打开控制台. 点击绿色开机键,开始安装. 这里有一个很关键的点,就是上 ...
- 【数组】Two Sum
题目: Given an array of integers, find two numbers such that they add up to a specific target number. ...
- java1.8中ConcurrentHashMap
java1.8中的ConcurrentHashMap做了非常大的改动,整个数据结构都发生了变化,已经不存在segment了.所以要好好重新查看下源码.这篇博客是逐步更行的,看一点写一点. 首先看一个很 ...
- Django url分发到工程里
因为我们建立了Django后 ,url是在mysite下的全局对象 因为我们实际项目里不可能只有一个工程 而全放在全局里去分发url 会让代码耦合度提高,代码量大后会造成维护困难.这时候我们把url分 ...
- WCF宿主asp.netMVC 并且发布restfull接口数据
项目中需要同时用到WCF的SOAP接口和RESTFul Service,查了下资料发现WCF可以支持发布两种服务接口,整理资料如下 1.首先建立服务接口 备注:如果宿主不是网站,则接口上增加属性Web ...
- WebUtility(提供在处理 Web 请求时用于编码和解码 URL 的方法。)
public static string UrlEncode( string str ) UrlEncode(String) 方法可用来编码整个 URL,包括查询字符串值. 如果没有编码情况下,如空格 ...
- jQuery事件篇---基础事件
写在前面: 有一段时间未更新博客了,利用这段时间,重新看了<jQuery基础教程 第四版>和<锋利的jQuery 第二版>,这两本书绝对是jQuery入门非常好的书,值得多读几 ...
- JD上市前内情:李彦宏雷军柳传志拷问刘强东
这篇文章是京东上市前夕,在某个会议上刘强东与柳传志.李彦宏.雷军等大佬们的闭门交流实录,由于当时京东正值上市敏感期,文章没有被发出来,现在京东上市了,我想,大家可以看看几位商界大佬对刘强东的“犀利拷问 ...