阅读后感

没有银弹

原文链接:http://www.cs.umd.edu/class/spring2003/cmsc838p/General/NoSilverBullet.html
没有银弹指的是“没有任何技术或管理上的进展,能够独立地许诺十年内使软件系统项目生产率、可靠性或简洁性获得数量级上的进步”。它说明了所有软件创作的困难都由两部分组成,一是本质性工作,一是附属性工作,本质性指的是软件本身在概念的构建上存在着先天的困难,即如何从一个抽象问题构建出一个具体的解决方案,附属性指的是把设计出来的这种方案真正的实施出来。通过Beta阶段的冲刺工作,我目前对这两种困难有了初步的体会,比如,在Beta阶段,参与了服务器的搭建,此时本质性的工作可以看作是该如何搭建服务器,而附属性的工作可以理解为如何使用所需的软件和框架。

Big Ball of Mud

原文链接:http://www.laputan.org/mud/
我认为一个“大泥球”,指的往往是一个为了便利随意决定,而不是细心设计的系统或者一堆代码。极大的降低了项目的逻辑性,而且还不利于代码的重复利用和可读性。回想我们的Alpha阶段,我认为是存在这样的泥球的,比如在上一个冲刺阶段,我和另外一位同学一起负责模型的训练和实际使用时预测代码的修改和编写,我们当时计划的是实现作诗和作对联两个功能,并且是在开源代码的基础上进行改进。这两个功能有许多代码是可以复用的,但是我们没有进行设计整理,做出了并行的两套系统,这样子,在一开始部署的时候造成了一定的麻烦。

方法的好和坏

原文链接1:http://www.jwz.org/doc/worse-is-better.html
原文链接2:http://dreamsongs.com/Files/IsWorseReallyBetter.pdf
Richard Gabriel在文中首先提出了一种普遍的大家认为是好的原则:

  1. 简单性:在实施和接口方面,设计必须是简单的,并且接口简单要比实施简单更加重要。
  2. 正确性:从各个可以观察的角度看,设计必须是正确的,绝对不允许不正确。
  3. 一致性:设计不允许不一致,为了避免不一致,可以适当的牺牲简单性和完整性,一致性和正确性一样重要。
  4. 完整性:设计必须尽可能多的覆盖实际情况。不可以为了简单而降低完整性。

同时,在后文,他又提出了“worse is better"的原则:

  1. 简单性:在实施和接口方面,设计必须是简单的,并且实施方面的简单性要比接口的简单重要。
  2. 正确性:从各个可以观察的角度看,设计必须是正确的,但是简单要比正确重要。
  3. 一致性:设计不允许不一致,但在某些情况下,可以为了简单而牺牲一致性。
  4. 完整性:设计必须尽可能多的覆盖实际情况,但完整性可以为了其它的任何特性而牺牲。

我认为,总的来说,在这种“worse is better"思想中,简单是最重要的。在我们冲刺的过程中,虽然不知道这种思想,但也有运用到相关的内容,比如在初期,我们做了对联和诗两种功能,但是它们都是对于古代词汇有较好的效果,不能很好的cover现代词汇的情况,可以看作是为了简单性而牺牲了完整性,其余的情况可以放到后面再补充。

教好,学好软件工程

原文链接:http://blog.sina.com.cn/s/blog_553f355101017g6l.html
很显然,软件工程和计算机科学是不同的,这篇文章很好的描述出了我在学习软件工程中的感受,“许多东西没有明确的概念界定,结果的描述都是‘一般’或者‘大致’”,没有在学习计算机科学中的“踏实感”,很多知识,也许在今天看起来还很有用,到了明天就会被证明有问题,而且,在这次项目中我体会到了,学好软件工程,显然不是只有会编程就可以了,还涉及到了团队合作,沟通交流等各个方面,我需要学习的还有很多。

习而学的软件工程教育

原文链接:http://www.cnblogs.com/xinz/archive/2012/01/08/2316717.html
习而学指的是认为同学们在接受工程教育的过程中,在上升到理论层面之前,要有足够的练习和实践。工程教育不同于理科的学习,对于Software Engineering,总的来说,我还是比较赞同这种教学方式。优点是可以在学习的伊始就能看到学习的成果,激发起学生的学习兴趣,很多知识和能力,并不是仅仅通过理论就能够掌握,在实践中不断学习,能够更好的吸收转化所得知识,而且通过这种流程,在高年级学习理论时更有针对性,可以带着问题去学习。而现在我接受的这种教学模式,理论与实践相比,可能在实践方面还有所欠缺,导致在本次Beta阶段,可以很明显的感觉出来,知识面比较窄,比如对于搭建服务器所用的nginx和django都不了解,实践经验欠缺。

原文地址:https://www.cnblogs.com/ruijing-z/p/10207275.html