一、个人总结
类别 | 具体技能和面试问题 | 现在回答 |
---|---|---|
语言 | 最拿手的计算机语言,代码量多少? | java,代码量大概有五七八千行而已 |
软件实现 | 你有没有在别人的代码的基础上改进,你是怎么读懂别人的代码的,你采取了什么办法来保证你的新功能不会影响原来的功能?你在开发中碰到的最复杂的bug是什么?你是如何解决的?这个bug出现的原因是什么,你在将来应该如何去避免bug再出现? |
二、回答问题
我们在课程开始之初,曾经要求大家针对软件工程提出问题:个人阅读作业2,那么在经过alpha阶段,大家是否对软件工程有了一定的了解?请结合自己提出的问题进行回答
Q1
如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证?单元测试就是一个很有效的解决方案。
- 如果我写程序较简单,是不是就不需要对其进行单元测试呢?如果需要,是不是会浪费时间?对于较大的程序来说,项目前期还在尽量写测试,到了后期会不会因为繁琐或者没有足够的时间而就失控放弃了呢?
Q2:
在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的哪一位。
这样,程序中的错误就会少的多,程序的初始质量会高很对,这样会省下很多以后修改、测试的时间。
- 结对编程虽然好处大,但也是两个想法相似实力相当的人才能做到很好的配合,但要是两个人的意见不合,习惯不同,也可能一个人不作为一个人做了大量工作,到头来还是一个人编程的效果,是不是说明结对编程并没有那么好呢?
Q3
敏捷开发的其中一条原则:
经常发布可用的软件,发布间隔可用从几周到几个月,能短则短。
- 敏捷开发经常对软件进行迭代更新,强调了敏捷的做法更能带来价值,但是不是会过分追求眼前的短期目标,从而导致忽略了长期的目标和未来的发展呢?
Q4
创新的迷思之三:好的想法会赢
- 对于那些长期存在而且又有稳定地位的IT产品,在此创新可能就会比较困难,那是不是就说明没有必要在这个地方创新呢?因为你再创新也打不过原来的东西,这种创新值不值得?
Q5
- 第十六章详细介绍了IT行业的创新,虽然很详细,但对于我们在校学生而言,似乎距离比较遥远。对于我们学生而言,要如何处理应对创新浪潮呢?如果自己的能力不是很高,是否要适当放弃呢?
三、再提问题
同时,大家一定会在实践过程中产生更多问题, 结合你的读书(教材,博客,参考书), 实践, 再提出关于软件工程的 5 个问题。
在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文。
列出一些事例或资料,支持你的提问 。
说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
一个模板可以是这样:
我看了这一段文字 (引用文字),有这个问题 (提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。【或者】我反对作者的观点(提出作者的观点,自己的观点,以及理由)。