软工第二次作业:问题探讨
| 这个作业属于哪个课程 | <https://edu.cnblogs.com/campus/zjlg/rjjc20> |
| ---- | ---- | ---- |
| 这个作业的目标 | <提出自己的见解或者是不理解的问题,得到老师的解答> |
| 姓名-学号 |<唐宇>-<2018330301021> |
软件基础第二次作业
1. 对于“过早的优化是一切罪恶的根源”这句话的认知变化。(3.2 软件工程师的思维误区)

我当初的迷惑:
- 我看了上面来自课本 49 页的文字,上文是解释何为过早优化,得出过早优化是一切罪恶的根源,我不看下面的小例子,我是不知道这个过早是怎么来的,他为什么叫过早,上文的解释中也并没有提及到过早这一词,根据上文的解释,我觉得应该叫做局部优化,而不是过早优化。
- 下文的例子倒是真的过早优化了,他本来想用个小伞和女朋友离得近一些,多年后他还是单身,我理解了他没有女朋友,还提前用小伞去体验,确实是过早优化了自己的生活,一切罪恶的根源为什么叫做过早优化是我最大的一个疑问。
- 另外我觉得过早的优化不应该是一件好事吗?就像现在手机的功能,还在不断的优化,如果提前优化了的话,可能之前的人买到手机,也能有更好的体验了。
查询资料后的豁然开朗:
过早的优化是万恶之源
--出自“现代计算机科学的鼻祖” Donald Knuth
- 因为让正确的程序更快要比让快速的程序正确容易的多。恍然大悟后,才明白上文中的过早,是指他还没有统观全局,就盲目着手优化局部,并不是所有的都要优化,优化在刀刃上。
- 而且优化不是万金油,你无法优化一切,就像在项目早期就进行优化,会导致代码难以阅读,后期又发现前面的优化没有用,白白浪费了时间和精力。也有网友一直吐槽刚入职百度的时候,发现它内部的设计很过度,一些设计后来发现根本用不上,有的到用的时候也发现当时考虑的不全面,也用不了,全都做了无用功。
- 过早是在还没有弄清楚未来需求和变化走向的时候,这时尽量不要优化。这就像课本上 P-34 说的盲目优化。
2.我不太认同“是否是 bug,取决于用户,开发者的不同角度”。(1.2 软件工程的目标)
是否是 bug,取决于用户,开发者的不同角度。例如某聊天软件不支持视频聊天,用户却期望,开发人员说本来就没打算支持;用户下载了一个软件,第二天电脑上多了好几个新软件,用户没同意安装,这是 bug 还是福利?
--《构建之法》的 16 页
我的想法:
我觉得是否是bug应该取决于用户,而不取决于开发者。
我的理由和分析:
- 老话说“顾客是上帝”,软件的目的是让顾客使用,给用户带来更好更舒心的体验,而开发者设计软件的目的也是让自己的软件得到用户的喜爱和欢迎,那用户希望能支持视频聊天,开发者非要说这不是 bug,我们本来没想的,那用户肯定就不想用了,连我最期望的功能都没有,这难道不是一个大 bug 吗?开发者也应该认识到这是 bug,我们不能简单地理解 bug 是代码出错,或者是运行出错,凡是满足不了“上帝”需求的都是问题,都是 bug。课本 17 页也说了 “应该研发出符合用户需求的软件”,这都不符合用户需求,那这个软件确实应该算是有 bug。
- 关于第二个例子,真的是大 bug 了,下载了一个软件,蹦出来一堆我不想安装的软件,这算是恶意软件了吧,在用户不知情的情况下,帮我搞一堆没用的,这就是给用户带来麻烦和问题,这就是明显的 bug 啊。所以我是觉得是否是 bug 应该从目的出发,应该取决于用户。用户赞同就没有 bug,不满足用户就是有 bug。
3.专与精的关系(3.3 软件工程师的职业发展)
回首当年,我的态度确实是错了。任何事情,当你仔细探究,你就会理解它的量和质;当你对一个领域的神韵足够了解,并开始连接这个领域的表现形式和实现细节的时候,任何一个领域都是会变得引人入胜的。
--Emanuel Derman。
课本 52 页也是讲了 Emanuel Derman 的故事,他从小喜欢物理,有了物理博士学位后,就只想做“纯物理”研究,后来因为经济原因,去做了大学物理老师,郁郁不得志;35 岁改行做了程序员;后来又跳槽去了证券公司,做软件和金融分析,成为专家,做上了总经理;之后又把金融,数学,软件融合在一起,被评为金融界的“年度金融工程师”;之后又去了大学开创了金融工程的学科。以及之后提到的街头艺人的单人乐队,全栈工程师。
我的疑问:
课本这样说是不是鼓励我们去多行业发展,还是说现在这个形势下,最好能更多的了解多方面的技能?
我的想法:
我觉得现在虽然有很多的行业,但是我觉得 Emanuel Derman 他是在金融,物理,数学,软件这几个方面都有才能,每个不是浅尝辄止,大概都有了七八分的精通,他才能在各个方面都绽放光芒。但是对于大部分人来说,精通一门已经很难很浪费时间精力了,还要去尝试别的方面吗?或者对于一部分人来说,对于一门七八分精通了,是先搞到十分精通这一门还是去努力再精通另一门。
- 对此我也查询了一些资料:一个百年老店和“每周更换菜单”的店,基本会选老字号;还有修建树枝的道理,说的是应该专心致志精通一门。而一精多专是许多人理想的,还是回到上面那个问题,是应该先“多专”还是先“一精”?
总结一下读后感吧:
书上大部分内容还是很有道理的,我也比较认同,这个作业让我跳出了课本,从实际出发,更加确切的了解了很多知识,很有成就感,像规范,合作,复审,三明治的方法,技能的反面是解决问题,对过早优化的吸收;对个人能力以及成长,和团队合作,为人处世等都有很大感触,学到了很多。读完书感觉心境又提高了一截,深度思考也很爽。但还是有了第三个问题的疑问,希望能得到老师的解答。

浙公网安备 33010602011771号