这几天阅读了《构建之法》中的几章,受益匪浅,刷新了很多我对软件工程的认知。这本书让我很惊喜,阅读起来不像其他书一样枯燥,有很多人物的设计,以及对话的形式,非常有趣。

第一章、概述

读完第一章了解了软件工程具体是什么,以及它与类似计算机科学等的区别,还有对bug的定义,以前觉得软件工程和计算机差不多,看了书过后才发现其中的不同,一个比较偏科研,一个比较偏实践,悟清了许多之后,还有一些不太能明白的问题:

问题1:

我看了这一段文字 “中国大陆的高校中大致有下面三种将计算机软件的机构:计算机科学与技术系或学院、软件学院、软件工程系或学院”,我还是不太能明白这三个的区别,在阅读后我了解到了软件工程和计算机科学的区别,但是软件和其他两个的区别还是很模糊,特别是软件学院与软件工程学院,我们总是将它们是看成一体,书里说“软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。”而“软件=程序+软件工程”,那么软件工程系对于比软件的亮点在哪里呐?软件工程为什么不是和程序相交叉的东西,而是可以分离的两个内容?

问题2:

我看到“如果一架民用飞机上有需求,用户使用它的概率是百万分之一,你还要做这个功能么?你会选择:1.根本不考虑 2.如果没时间实现这个功能,就算了 3.做了,但是不告诉用户 4.做了,而且不厌其烦地告诉用户如何使用”,第一次看到这里的时候我毫不犹豫选择了4,但当我看完了第十六章后,又有了一个困惑,因为很多东西做出来,不仅要考虑市场需要,还要考虑效益,还有其他许许多多一系列的问题,那么如果一个功能用到的概率几乎为零,那么考虑到效益以及人力,我们究竟需不需要做这个功能呢?就像我们吃烧烤,烧烤是会致癌的,但是几率也很小。有很多创新功能其实是可以更好地服务,但是成本很高,用到的几率又小,我们该怎么选择?

第二章、个人技术和流程

看了第二章了解到个人开发需要做什么,看过才体会到软件工程真的是很复杂,各种测试,不仅仅只是写代码而已,每一类都需要测试,这样才能保证在之后如果有问题出现能够更加快捷地找到错误所在。

问题1:

在看完了单元测试后,单元测试是无论哪个程序都需要吗?简单的程序也需要吗?我感觉单元测试是很麻烦的,细化到类。我看了一些资料后发现当今程序员并不是太爱写单元测试,那有什么现实的缺陷?

问题2:

在看到“单元测试应该集成到自动测试的框架中。”我不太明白在这么复杂的情况里如何自动化呢?这样会不会引出其他的错误?

第十六章、IT行业的创新

看过这一章了解到创新在IT行业的困难,以前一直以为创新都是很受支持与推崇的事,没想到却有这么多绊脚石,现实要考虑的因素是非常大的,要考虑到资金问题,效益问题,甚至是政治问题,创新还要经过方法的计算来考虑究竟要不要做这个创新,究竟应该在哪方面创新也是很大的问题。

问题1:

我们从小到大受到的教育都告诉我们要创新,那么现在我们究竟应该怎么做呢?创新是为了未来未来更好地服务人类还是只为了收益?那么创新的意义到底是什么呢?

Week2-作业1 《构建之法》1、2、16章观后感的更多相关文章

  1. <构建之法>之一至二章

    身在大学,却想起了在高中的生活和初中的生活,特别是初中的生活,为什么这么说呢!因为<构建之法>,看了其中的两章的内容,为什么想到了初中和高中的生活呢,因为在高中和初三的时候看的最多的就是课 ...

  2. 软工个人阅读作业2 —— 构建之法与CI/CD

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 阅读思考教材,调研软工工具 这个作业在哪个具体方面帮助我实 ...

  3. 构建之法 第6~7章读后感和对Scrum的理解

    第六章-敏捷流程 第六章主要详细介绍了敏捷流程,在软件工程范畴里,“敏捷流程”是一系列价值观和方法论的集合.这一章以敏捷流程的Scrum方法论而展开,而敏捷流程的精髓就是在于快速的交付. 敏捷开发的流 ...

  4. 《构建之法》8&16

    [8.1] 对产品的生命周期管理好像一直以来都没有引起我足够的重视,在这一段对产品学习的过程中也少有看到相关内容.是因为针对不同产品而言,产品周期的管理太具有个性特征,没有太统一的规则可循吗?我觉得不 ...

  5. <构建之法>之第一二三章的感悟

    第一章 看了第一章,第一章主要是概论,主要讲述软件是什么,是由什么组成的,然后接着陈述软件工程是什么,看了第一章之后,得知,软件工程只是实现软件的一个工具,有了工具做事情才容易.还有进行运维和维护软件 ...

  6. <构建之法>10,11,12章的读后感

    第十章:典型用户和场景 问题 :什么是典型用户? 第十一章:软件设计与实现 问题 :开发人员的标准工作流程就是不断的发现BUg,修改bug来完善功能,在此过程中要等待同伴复审,在这阶段中,开发者应该如 ...

  7. <构建之法>8,9,10章的读后感

    第八章 这一章主要讲的是需求分析,主要介绍在客户需求五花八门的情况下,软件团队如何才能准确而全面地找到这些需求. 第九章 问题:我们现在怎样培养才能成为一名合格的PM呢? 第十章 问题:如果典型用户吴 ...

  8. Week4-作业1:《构建之法》第四章、第十七章 阅读笔记与思考

    第四章 两人合作   这一章是讲述了两人结对编程的一些东西,包括一些代码的规范,还有结对编程的优点.怎么做.以及一些注意事项. 1.“错误处理 当程序的主要功能实现后,一些程序员会乐观地估计只需要另外 ...

  9. 《构建之法》IT行业的创新 读书笔记 WEEK 5

    本周选读邹欣老师的<构建之法>第16章——IT行业的创新. 邹欣老师将本章话题分成五个部分来阐述:创新的迷思.创新的时机.创新的招数.魔方的创新.创新和作坊,博主认为时机和招数这两个部分在 ...

随机推荐

  1. R语言数据结构二

    上节我们讲到R语言中的基本数据类型,包括数值型,复数型,字符型,逻辑型以及对应的操作和不同数值类型之间的转换.众所周知,R语言的优势在于进行数据挖掘,大数据处理等方面,因此单个的数据并不能满足我们的需 ...

  2. R语言爬虫:使用R语言爬取豆瓣电影数据

    豆瓣排名前25电影及评价爬取 url <-'http://movie.douban.com/top250?format=text' # 获取网页原代码,以行的形式存放在web 变量中 web & ...

  3. 使用uliweb创建一个简单的blog

    1.创建数据库 uliweb的数据库都在models.py文件里面,因此先创建该文件 vim apps/blog/models.py 添加如下两行: #coding=utf-8 from uliweb ...

  4. VI ORB-SLAM初始化与VINS初始化对比(将vi orb-slam初始化方法移植到vins中)

    初始化时需要求出的变量:相机和imu外参r t.重力g.尺度s.陀螺仪和加速度计偏置ba bg. 下面对两种算法初始化的详细步骤进行对比: 求陀螺仪偏置bg 求解公式相同,求解方法不同.公式如下,VI ...

  5. 洛谷 P4593 [TJOI2018]教科书般的亵渎

    洛谷 P4593 [TJOI2018]教科书般的亵渎 神仙伯努利数...网上一堆关于伯努利数的东西但是没有证明,所以只好记结论了? 题目本质要求\(\sum_{i=1}^{n}i^k\) 伯努利数,\ ...

  6. springmvc 使用jq传递json数据时出现415错误

    出现415错误是因为解析json时出现了错误,通过排查几点就能解决. 样例: <script> function requestByJson() { var datatest = {&qu ...

  7. mvn本地部署命令行

    ---创建mvn项目 mvn archetype:generate 运行结果如下: ---调试mvn仓库 mvn archetype:generate –X 运行结果如下: ---创建依赖 mvn a ...

  8. Linux shell(4)

    test比较两个值: 测试比较两个值是linux中常用的比较运算,test命令可以进行对两个值的比较,如果比较成功则返回值为0,否则为非0 常用比较方法: ·1.整数比较 2.字符串比较 3.逻辑比较 ...

  9. [PLC]ST语言一:LD_LDI_AND_ANI_OR_ORI

    一:LD_LDI_AND_ANI_OR_ORI基本指令 说明:简单的顺控指令不做其他说明. 控制要求:无 编程梯形图: 结构化编程ST语言: M400:=(M0 OR M1) AND M2; M401 ...

  10. Linux学习之常用命令(二)

    1.上次介绍了一些常用的系统命令,这次又总结了一些小命令,故分享一下: 网卡地址查询的命令: ifconfig #不同于Windows系统,它的是ifconfig而不是ipconfig ip -a # ...