锲而不舍,金石可镂

这个作业属于哪个课程 2021春软件工程实践S班 (福州大学)
这个作业要求在哪里 作业连接
这个作业的目标 课程回顾与总结
其他参考文献 ...

第一部分:课程回顾与总结

前提问题博客链接

博客链接

问题回顾

Q1: 如何终止“分析麻痹”?

P52 3.2 分析麻痹:一种极端情况是想弄清楚所有细节、所有依赖关系之后再动手,心理上过于悲观,不想修复问题,出了问题都赖在相关问题上。分析太多,腿都麻了,没法起步前进,故得名“分析麻痹"( Analysis Paralysis )。

当我们发现一个问题时,我们应当优先专注于这一个直接问题的解决,暂时将有依赖关系的问题延后处理,不然目前的问题无法解决,进度一直停滞不前,得不偿失。

Q2:软件工程师的职业生涯真的就会终止在35岁吗?

P55 3.3 软件工程师的职业发展 2. 工作(Job) 这些人经常会问“软件开发做到35岁以后怎么办”这样的问题。很多中国IT人士认为这个年龄是程序员的职业终点。

应当先做好这之前的职业生涯规划,在工作中积累知识与经验。当有了一定的经验与积累后,总会有出路。船到桥头自然直。

Q3:用户体验和质量要怎么去权衡?

P269 12.1.6 用户体验和质量 好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?牺牲质量去追求用户体验么,用户能接受么?

我认为应当尽可能做好用户体验,在此基础上提高质量。用户体验可以说是软件给用户的第一印象,是为了降低用户的认知阻力。若没有良好的用户体验作为前提,没有用户会想要挖掘软件的高质量。

Q4:怎么决定一个团队中各人负责那一功能?

P322 问题5 无明确责任的分工

这就取决于团队领导人的经验了。领导人应该充分地了解团队各个成员的能力、技术方向等个人条件,根据成员的能力合理地分配工作量,能力差一点的分配少一点,能力好的分配多一点。而且成员的技术方向的比例也应该合理一点,像我这一次团队的前后端人数比例相对不太合理,导致前端进度会偏慢。

Q5:便宜、好、快这三个愿望只能满足两个,怎么办?

P337 15.1.6 招数:砍掉功能 从团队开发的历史经验来看,如果类似的功能需要N个单位时间才能最终完成,那么我们没有理由相信新功能会花少于N个单位时间。我们再回顾一下功能/资源/时间的平衡图,我们水平不高的小团队只能满足三个愿望中的两个,你要哪两个?

经过这一学期的实践,我认为好一定是最重要的。如果追求快或者便宜,可能做出来的东西漏洞太多,照样不会有人想要用的,所以一定要尽可能将软件做好,完成必要的功能、扩展相关功能、做好测试,好事多磨,将该做的做好才能赢得好口碑。

问题解决

以上问题都是在这一学期的团队合作的实践中体会到的一些领悟与见解,毕竟有一些问题光看书面的讲解或解答并不能真正的领会其中的含义。只有在和团队其他成员的合作与帮助以及自己去完成相关的任务的过程中,我才能吸收这些实战经验,对这些问题拥有自己的理解。

阶段收获

阶段 收获
需求 加强了自己对整个项目需求掌控的能力,能够正确地定位需求,避免需求的二义性,基本掌握《软件需求规格说明书》的撰写
设计 从开发的角度设计数据库、完善类图
实现 学习了之前从未接触过的GO语言,对代码逻辑设计的能力有了进一步的提升,对一个完整的项目开发过程有了一定的理解
测试 这是非常非常重要的环节,虽然不可能找到所有的bug,但是如果不认真测试,前后端的对接可能会出现大问题,这并不是简单的工作,也是需要一定的技术和耐心的
发布 前期的需求与接口的设计非常重要,不然会出现需求遗漏和前后端对接困难等问题

心得体会

  • 个人项目

    这一次的个人项目让我认真地阅读、制订并且严格遵守代码规范,不像往常那样比较随意地去编写代码以致于过后再去看自己编写的代码,会觉得陌生而看不懂一些变量或函数的命名。而且,在这一次的项目中,我学习了Github的使用,相较于之前的随意更改、没有备份的开发,这算是一次进步,也是为之后结对编程和团队项目的项目管理做了一次基础学习,也为之后的实践学习做好了心理准备。

  • 结对编程

    当看到结对编程的任务时,我心里是很慌张的,因为自己本身并没有什么项目经验,不知道前后端的工作区分、如何进行对接等等。好在有队友的帮助,他负责前端,我负责后端,我可以使用自己熟悉的Java编写后端数据库连接部分、数据处理和一些Servlet。在尝试编写了部分功能以及功能成功对接以后,渐渐进入了状态,更有信心完成剩下的功能。好的队友也很重要,能够一起学习、一起进步,队友也给我提供了很多的帮助,让我能狗顺利的完成这一次的作业。相对于以前的个人编程,从这一次的结对作业中,我对合作编程有了更好的经验与理解,学会了怎么更好的和他人沟通编程。

  • 团队项目

    这一次的团队合作是我第一次与一个团队共同开发项目,可以说是一次很棒但是也很艰辛的一次体验。在这一次的项目中我负责的是后端,但是后端使用的语言是我之前从来都没有接触过的Go语言,所以在前期会让我有一些压力与恐惧。尽管在冲刺之前我已经基本学习完了Go语言的文法,但是,实际在上手编程的时候仍然会碰到一些使用上会遇到但是学习基本语法时会忽略的问题。好在熟悉Go语言的组员也会给我提供帮助,而且也会分配一些相对来说会简单的功能让我来完成,我得以慢慢的熟悉上手,理解了后端中模型、服务与接口的联系。总之,这一次的冲刺让我提高了一定的编程能力又提升了团队协作的能力,可以说是受益匪浅。

第二部分:个人技术总结

Golang ORM类库:GORM的使用总结

概述:ORM(Object Relation Mapping 关系对象映射)
把对象模型表示的对象映射到基于SQL的关系模型数据库结构中
在具体的操作实体对象的时候,不需要直接与复杂的 SQL语句打交道,只需简单的操作实体对象的属性和方法

GORM即为Golang的ORM库,旨在为开发者提供友好的服务。

posted @ 2021-06-28 11:12  硅硅键  阅读(87)  评论(3编辑  收藏  举报