第一次作业(个人作业):阅读教材,提五个问题
这个作业的要求是https://bbs.youkuaiyun.com/topics/608340750
文章目录
一、问题一(过早优化)
1.疑问
阅读教材第三章的过早优化时,有一句话:“过早的优化时一切罪恶的根源”,否定了在全局还很模糊时,对局部进行优化。也许考虑到全局,一个模块的优化比较费事费力,但全局毕竟是由一个个模块组成的,如果各个模块的质量不佳,到最后可能导致整体软件质量下降。
2.查阅资料
Bozhidar Bozhanov有一篇文章叫《并非所有优化都为时过早》,其中提出了:假定如果不损害可读性或可维护性并花费时间,那么在早期优化中就没有错,可以忽略不计。在一些情况下,过早优化并不是“罪大恶极”:好的设计不是过早的优化;应用适当的语言实践不是过早的优化;编写更干净的代码不是过早的优化。
3.总结
避免“过早优化”,或者不想花费时间和精力来真正考虑此语句背后的原因。 盲目地将其应用于所有情况似乎更容易,但这与过早优化一样危险,一样是“罪恶的根源”。
二、问题二(结对编程)
1.疑问
阅读教材第四章讲到结对编程时,提出了很多结对编程的好处,从开发层次、开发人员自身、企业管理层各个方面叙述。
但这种编程方式明显削弱了个体的批判思想,开发人员一直在跟随另一位的思路,很难先入为主地发现问题,很可能导致明显的错误而两人不自知。
2.查阅资料
查找资料后,发现结对编程的优缺点都很突出,大多数程序员的博客认为优点在于合作共享,缺点当然也是由于合作中的冲突导致的。但是并没有提到过程序质量问题,可能由于个人臆想提出的问题并不切合实际编程,也有可能程序员博客中多记录解决问题,少记录为什么会遇到问题。
三、问题三(源代码管理)
1.疑问
阅读教材第十一章的实战中的源代码管理时,提到源代码和测试代码都会记录其中,而且经常在团队之间合作,是如何保证安全性以及防止有人恶意篡改的。
2.查阅资料
员工安装深信达SDC防泄密软件客户端,在公司高层管理人员的电脑和公司服务器上安装SDC沙盒的管理端和机密端。服务器上安装文件外发管理端。包括开发流程的制定、工作环境的规定、工作设备的限制、工作人员的管理等,从各方面形成了一套完整安全的防护措施。
3.总结
彻底主动地防止了公司同行、竞争对手、跳槽员工把公司内部的重要资料、图纸、文档、研发成果、研发资料、技术文件、项目书、报价、客户资料、财务数据等相关的重要机密资料文件拿到手。在提高公司员工工作效率、不影响员工情绪的同时,彻底主动地防止内部员工把企业内部重要机密资料泄露出去,解决公司在信息安全方面的问题。
四、问题四(用户选择记忆)
1.疑问
阅读教材第十二章的用户体验时,提到软件服务始终都要记住用户的选择。某些时候这种经验的记忆会提高我们的软件体验感,但可能在某些情况下并不适用。假设在购物软件中搜索某类商品后,回到主页仍被推荐相关商品,但在某些情景下我搜索的东西是我需要保密的,是与我的隐私有关,将其在主页推荐无疑是暴露了用户的隐私。
2.查阅资料
在一篇博客中(https://bbs.youkuaiyun.com/topics/607199543),博主有同样的质疑,他提出无限制的记忆和使用用户的选择可能是违背软件工程师的职业道德的选择。在博客的评论区中他详细描述了对于软件记忆用户选择所应该到达的程度。
五、问题五(测试角色)
1.疑问
阅读教材第十四章的软件的质量保障工作时,提到“一位曾经在微软和雅虎工作过的程序员,有这么一个论断:大多数的开发团队并不需要一个独立的测试角色。”,接着作者提出软件团队中应该有独立的测试角色,并提出了一些理由。然而也许在某些情况下,确实不需要设立单独的测试角色。
2.查阅资料
https://blog.youkuaiyun.com/hubanbei2010/article/details/72868182
在这篇博客中,作者明显是一位资深的程序员,十分犀利地吐槽了QA及相关的明显缺陷以及不合理。在搜索界面,最顶部连续的几条都是这篇文章的身影,虽然原作者署名不尽相同,但是这样的流传度足以说明这篇文章引起了广大程序员的共鸣,说出了大家的心声。
当然如果一个职位上角色真正能够帮助到大家,帮助到整个工程,大家就不会对其产生质疑。也许并不是职位没有作用,而是职位上的人往往没有发挥作用而已。