软工第1次个人作业

软工第1次个人作业 项目 内容
所属课程   2019春季计算机学院软件工程(任健)  
所属作业   第1次作业  
课程目标   理解软件工程的作用和重要性,提升工程能力,团队协作能力  
作业目标   阅读构建之法并有所体会  
一、快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。 1. goto语句

函数***有单一的出口,为了达到这一目的,可以使用goto。只要有助于程序逻辑的清晰体现,什么方法都可以使用,包括goto。——《构建之法》P69 4.3.2

goto语句在c语言中难以操纵,初衷可能是添加一两个goto为了体现程序逻辑,如书中提到的单一出口设计。但一旦函数的逻辑比较复杂,使用goto是否会反而破坏程序的条理性呢?

2. 全栈工程师

当一个运维工程师在维护一套系统的时候,运维团队要了解各个模块的作用、维护知识,以及和硬件、商业模式相关的各种事件的需求。如果这大部分运维工作都是由一个工程师来完成,那么这位工程师的确是“全栈”。P53 3.3

书中文字给人一种现在是个人就敢说自己是全栈工程师的感觉,可能作者对身边存在的这样一种浮躁的现象有一些自己的思考和驳斥。

考虑这样几种情况:某职工曾在多家互联网公司任职,在A公司做过后端,在B公司做过前端,在C公司做过服务器维护,在D公司又负责写算法,所以他在投给E公司的简历上写——我是全栈工程师。

某独立开发者自己维护了一个开源项目并且有着一些稳定的用户,这个开源项目部署在了网站上并且该项目的前端后端都是由该开发者自行搭建,并在网站上贴上了自己的支付宝收款码求各位大爷们救济。碰巧该开发者看了《构建之法》这一段,于是心里闪过——我是全栈工程师。

请问职工A和开发者B,究竟谁的技术更好?A作为一个有广泛工作经验的职工,他可能有着极强的工程能力和编码能力;而B可能只是一个刚毕业的研究生,有着维护自己开源项目的爱好。

这是否意味着,全栈工程师在不同的情境下有着不同的意味,而不代表着一个技术上更高一层的阶级呢?

3. 软件测试

我曾经了解到在如今BAT的大部分项目里,也没有建立良好的Code Review制度,Unit Test也仅仅有重要模块会做。那么对于这样大型项目的覆盖性测试,其花费的人力成本是否会得到相应的回报呢?如果做工程的最终目的是为了盈利的话,软件测试的全面性在实际应用中是否并不被重视呢,而我们在完成作业时却还要为逻辑简单明了但构造测试样例却有难度的那些分支去做100%覆盖,是否是教育的过度形式化的一种体现呢?

4. 人类学调查

我平时接触的同学都是计算机专业的,……,我从来没为软件或服务付过费。——《构建之法》P159

据书中提到,这是某计算机系的同学,这里我要提出一些自己的见解。

该同学觉得自己每天FQ上外网看quora,表姐父母却天天hao123,QQ秀,话语中体现出自己比海量的中国用户不知高到哪里去了。

如果他觉得站在墙外就更懂计算机,我还可以理解,但是他认为自己从来没为软件或服务付过费是一种很hacker的行为我就很奇怪了。上百度搜个注册机破解码就觉得自己比那些不愿意花钱干等着的人高半头?作为计算机未来的从业者,自己想用软件不花钱,自己写软件的时候你也别想着赚别人的钱啊?如果可以培养一些高素质人群的付费使用习惯,我认为这是可以促进现有软件工程的质量的。如果大家都想不花钱用,那软件提供商就只能在软件上挂广告,大家都不舒服,何必呢?

5. 大马哈鱼洄游模型

P416

书中提到了一些软件工程课的一些现象,看起来软件工程这门课似乎并不完善,这似乎主要是因为同学们的水平比较低(上课睡觉),还有一些课程安排方面过于高屋建瓴,没有落实到地。

比如本次博客作业,要大家在比较短时间内浏览完邹欣老师的《构建之法》这本书,这一看,上周课上的PPT基本上就是构建之法的扫描件嘛。书中安排了健身学员的身份给大家,你读完,你就是很想提高自己,你不想读,就是想把健身卡垫桌脚。那既然我们大家都读完构建之法了,是不是我们就已经大致了解软件工程理论,只需要等着编码实践了呢?那么如果未来的课程还只是构建之法的扫描缩印,那理论课的课程内容在第一次博客作业时就已经学习完毕了,理论课的内容是否显得空虚了一些呢?如果课程设计时知道大家在这很短的时间内看不明白构建之法的软工精髓,那么留本次博客作业让大家看完这本书是否合理,又是否自相矛盾呢?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgxjzx.html