Fork me on GitHub

软件工程-提问回顾和个人总结

UNFINISHED

提问博文链接

软件工程第1次作业

问题解答

1.

年轻学生都志向远大,上了一些课,就很想解决高层次的问题,一些学生非常想做高层次的“科研”,觉得“工程”是基础,没意思。而且他们认为“我已经知道怎么做了”。

无论工程还是科研,建立兴趣的根基在于深入了解之后,找到自己的兴趣点所在,没有孰优孰劣的根本区别,无非是目标和侧重点不同。

2.

代码规范可以分成两个部分:
1. 代码风格规范,主要是文字上的规定,看似表面文章,实际上非常重要。

愈发感觉代码风格的重要性,个人的代码洁癖程度也在不断上升。

3.

在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起做单元测试,一起做集成测试,一起写文档,等等。

对结对编程的看法发生了巨大变化,同 “学期总结-结对编程”心得。

4.

- 用户体验的创新

软件的最终目的是给用户使用,从这个意义上看,用户才是上帝,不注重用户产品体验的软件不会长远。

5.

敏捷开发

个人体会:1在团队编程中,项目推进的程度和开例会的频率成正比,可能是因为代码热情高的小组,项目进度更快,对开会的积极性也更高。

"做中学"实践

需求

  • 时间是比较有限的,针对提出的诸多需求,区分好优先级,把主要精力放在优先级比较高的需求。

设计

  • 使用开源的类库往往比自己造轮子更有效率。

实现

  • 重复的代码可以抽象出公有的类库。
  • 保持统一的代码风格。

测试

  • 除了正常功能的测试,注重边界条件。
  • 代码性能的测试虽然在小规模用户的软件不重要,但是实际很matter。

发布

  • 校内发布的话,多注重宣传-QQ群,微信群,朋友圈等。

维护

  • 针对软件的终端用户的反馈,修复bug。
  • 有条件的情况下,可以进行内测。

学期心得

结对编程

  1. 软件开发中有很多编程之外的事情,比如(1)团队成员之间的沟通交流问题,又比如(2)对于同一个项目,代码库的维护以及code review,两个人负责一个项目,实际情况就是团队编程人数最少的情况。
  2. 结对编程的特点 [面对面以及同一台PC] 的意义在于解决问题(1)和(2),本质在于编程效率的提高。

团队编程

  1. 组员之间的沟通交流非常重要,不然团队编程的效率往往不如结对编程,甚至单干。
  2. 编程只是软件开发中的一环,前期的需求设计以及后期的发布维护也是需要花很多时间注意的。从这个角度来看,也证实了能写出健壮[ 运行效率 & 各种情况处理] 代码的能力是根基。
posted @ 2019-06-30 10:44  mio4  阅读(174)  评论(0编辑  收藏  举报