《构建之法》阅读有疑 与 个人Week1作业

时间:2022-08-31 13:23:39

《构建之法》阅读有疑

在用将近五节课的时间将邹欣老师的书《构建之法——现代软件工程》第二版大致看完。虽然全书是以轻松的口吻与”移山公司”员工的一些趣味谈话来传输一些理念和思想的,但是读完并理解依旧不是一件很容易的事情,并且在这过程中我对书中的一些看法抱有怀疑的态度,现将问题所在列在下面。

  • P68页:我不是很认同邹老师的“精通”魔方的判定方法。就好像在软件工程开发中,一个人解决了一个bug。解决了bug却不算是“精通”,还得能恢复bug,再现bug才算是懂得各中原理吗?我觉得作为一个软件开发者,我们掌握解决bug的技巧与能力即可,不需要掌握复现bug的手段。
  • P79页:关于goto的使用。说实话这是我第一次看到goto的好话。我只见过goto在操作系统底层源码使用的情况,当然,在操作系统底层有些时候使用goto跳到错误处理避免无谓的重复。但是使用goto即使是在操作系统底层也应该慎重使用,不知道邹老师认为还有什么样的情况属于“有助于程序逻辑的清晰体现?”。
  • P89页:在这里关于结对编程我有一个困惑:如果结对编程的伙伴不与我沟通,并且对于结对编程没有热情,这样的结对编程反而只会让效率低下。在这种情况下,除了换结对伙伴外(一般出门在外,身不由己),怎样能提高结对编程的效果?
  • P85页:真的有必要对不可能运行到的代码路径进行单元测试吗?尤其是在本来封装性很好的情况下,为了单元测试而强行拆解函数,把类增加了很多无用的方法?老师如何看待这种问题?
  • P117页:关于敏捷开发。敏捷开发的模式可以说是种轻便的模式,但是有一个严肃的问题摆在我们面前:小的创业团队一旦敏捷开发了一款创意优秀的软件并且在完善它到很好的程度前就发布了。这样会不会引来大公司的创意剽窃?尤其是在财力,人力都不如大型公司的情况下,怎样解决这种在敏捷开发中可能遇到的问题?
  • 还有一个个人问题想问老师:为什么初入行业的软件工程师总是对自己的代码风格与效率盲目自信,而总想重构他人的代码?一个项目进展到什么样的程度才能叫不可维护,在怎样的情况下才有正当的理由被重构?

软件和软件工程的出现

软件一词在: 1958 年Turkey在论文“The Teaching of Concrete Mathematics”中提出。
wiki原文为:
In 2000, Fred Shapiro, a librarian at the Yale Law School, published a letter revealing that Tukey’s 1958 paper “The Teaching of Concrete Mathematics”contained the earliest known usage of the term “software” found in a search of JSTOR’s electronic archives, predating the OED’s citation by two years.

软件工程一词是 Margaret Hamilton 在NASA设计阿波罗号电脑上的软件时提出的新名词。

《构建之法》阅读有疑 与 个人Week1作业的更多相关文章

  1. <构建之法>阅读感想

    在阅读<构建之法>之前,我所认为的软件就是通过c,c++等语言编程,制作出的一个能满足人们操作需求的一些代码,认为一个好的软件工程师,就是能够在很短的时间之内,最快的根据需求写出几段代码程 ...

  2. &lt&semi;构建之法&gt&semi;阅读笔记6

    第九章:项目经理 是讲项目经理的作用功能和重要性,书里面主要讲的是微软的PM(Programe Manager)和其他团队PM(Project Manager)的区别,还介绍了PM的能力要求以及人物, ...

  3. SE&lowbar;Work1&lowbar;阅读构建之法&amp&semi;项目管理实践

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

  4. 软件工程---阅读《构建之法》P384~391

    -阅读<构建之法>P384~391后,我充分认识到软件工程师的职业道德的重要性,具体有: 原则1:公众 原则2:客户与雇主 原则3:产品 原则4:判断 原则5:管理 原则6:职业 原则7: ...

  5. 阅读《构建之法》P384~391

    通过阅读<构建之法>P384~391以及参考阅读杜老师给出的链接,得出一个重要的结论:软件工程师的职业道德至关重要. 软件工程的动态性和需求的前后关系,要求一个规范能对出现的新情形有较强的 ...

  6. 阅读《构建之法》第八、九、十章有感和Sprint总结

    1.阅读<构建之法>读后感 第八章:需求分析 需求分析,我觉得需求分析挺重要的,一个需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应 ...

  7. &lbrack;BUAA软工&rsqb;第一次博客作业---阅读《构建之法》

    [BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...

  8. Week2-作业1——关于阅读《构建之法》第1、2、16章的疑问与感悟

    关于阅读<构建之法>第1.2.16章的疑问与感悟 术语解释: 第2章,23页 什么是代码覆盖率? ———————————————————— 在测试中的代码覆盖率是指,你运行测试用例后,走过 ...

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

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

随机推荐

  1. 深入理解DOM节点类型第六篇——特性节点Attribute

    × 目录 [1]特征 [2]属性 [3]方法 前面的话 元素的特性在DOM中以Attr类型表示,从技术角度讲,特性是存在于元素的attributes属性中的节点.尽管特性是节点,但却不是DOM节点树的 ...

  2. oracle 学习笔记--用户管理

    oracle 用户管理 创建用户(需要具有dba权限的用户) create user 用户名 identified by 密码 defaule tablespace users     //默认表空间 ...

  3. &sol;bin&sol;bash&colon; line 0&colon; fg&colon; no job control一般解决方法

    測试版本号:CDH5.0,(Hadoop2.3) 在使用windows调用Hadoop yarn平台的时候,一般都会遇到例如以下的错误: 2014-05-28 17:32:19,761 WARN or ...

  4. RedHat7笔记

    第一章  管理网络 查看网络信息 显示网卡状态# nmcli dev status列出所有连接# nmcli con show只列出可用连接# nmcli con show --active显示网卡配 ...

  5. JS生成二维码,支持中文字符

    一.使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcod ...

  6. 两种画线算法&lpar;DDA&amp&semi;Bersenham&rpar;

    DDA(digital differential analyzer) 由直线的斜截式方程引入 对于正斜率的线段,如果斜率<=1,则以单位x间隔(δx=1)取样,并逐个计算每一个y值 Yk+1 = ...

  7. c&num;实例化继承类,必须对被继承类的程序集做引用

    0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Culture=neutral, PublicKeyTo ...

  8. vue的组件化运用(数据在两个组件互传,小问题总结)

    一.vue的组件化应用 首先,知道有哪些相关的属性需要用到,再慢慢去理解,运用. 1.两个vue页面 2. slot占位符(可用可不用) 3.props内置属性 4.watch监听函数 5.impor ...

  9. 好久好久没写,,百度API逆地址解析以及删除指定marker

    百度地图Api中 除覆盖物有两个方法:map.removeOverlay()或者 map.clearOverlays(),其中 clearOverlays()方法一次移除所有的覆盖物removeOve ...

  10. P1758 &lbrack;NOI2009&rsqb;管道取珠

    考虑这个式子的意义. 不妨看做进行了两轮操作,这个式子显然等价于两次操作后得到的序列相同的方案数. 这个东西显然是可以dp的. 随便优化一下就成了O(n^3)