提问回顾与个人总结
提问回顾与个人总结
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2021春季学期软件工程(罗杰、任健) |
这个作业的要求在哪里 | 提问与个人总结 |
我在这个课程的目标是 | 和团队成员一起成功开发出一款具有实用性的软件,了解软件开发的流程并掌握软件开发过程的 |
这个作业在哪个具体方面帮助我实现目标 | 对本学期的软工课程做一定的总结与回顾 |
一、提问回顾
提出的问题[点击这里](软工第二次作业 - lpc?? - 博客园 (cnblogs.com))
Q1:软件工程师不能按时交付的原因之一。是他们有时候不满足于“解决目前直接的问题”,而是想“解决问题背后的问题”,或者“解决通用的、不直接的、但有重大意义的问题”
我的疑惑在于软件工程师他们真的有这种需求去“解决问题背后的问题”
A1:
经过一个学期的开发,我明白了思考解决问题背后的问题的重要性,在第一阶段的时候,我们完成了PC端的所有页面。刚开始写前端页面的时候,写了很多定死长宽的页面,这导致遇到别人小屏的电脑是会出现页面太宽的显示不全的问题,这些问题让我在第一阶段的后边改了很多的参数,从定长改成百分比。让不同的电脑显示都不会出现大问题。我觉得这就算是解决了通用的问题。如果一开始就按照通用的方法来写,后买你也会省很多时间。
Q2:关于是否使用goto
书中提倡使用goto语句来统一出口,我对于这一点并不是很赞同。
A2:
不应该使用goto语句。确实goto语句会让代码在书写的时候变得方便,想跳到哪里就跳到哪里,但是这会让读代码的人难以理清代码的逻辑。在合作开发的过程中,我深刻的认识到让别人容易读懂自己的代码有多重要。就跟写代码不加注释一样,使用goto语句,也是在加大别人的理解难度
Q3:老板驱动的流程
“当软件订单的获得不是主要靠技术实力,而是靠个人关系,或者暗箱操作的时候,老板的能力决定了一个团队是否能获得订单,既然软件的具体功能并不重要,那么老板说做什么就做什么“
A3:
老板驱动的流程,现在的社会现实就是这样,大企业往往拥有更多的资源,更多的用户,灼眼的反而不是提供优质的服务,只是想着怎么赚钱更快更简单,符合资本的需求。出现更好的产品,并不是在想着在产品上改进,只想着把他的变成自己的,然后一起挣快钱。
Q4:”一个PM平时或许能玩转很多搞技术的工具,但是当工作需要时,他/她能突然把自己变成一个完全不懂技术的菜鸟用户,从用户的角度来看问题“ 说法是否有些太极端了。
A4:
对于一个熟悉技术的PM来说,拿到一个项目之后,肯定会不自觉的从技术的方面思考实现的方法,从用户的角度来看问题肯定是没有问题的,不过还是带着一定的技术观点看项目是不是更好一点。带一点技术的观点,并不会改变作为用户的看法,因为PM本身也是很多软件的用户,这两者之间并不冲突。
Q5:”他满意了吗?“
A5:
对于用户的要求,应当首先思考其合理性,如果这是普遍性的要求,改进这方面没有问题,如果是个别的要求,首先应该思考这个要求是否会影响其他用户的体验,再决定是否改进。如果这个要求能够说服项目组,那当然就是有必要的,可以满足,满意应当是大多数人的满意。
二、新的问题
第一次接触某个框架的时候,怎么样才能写出合乎规范的代码。本学期是我第一次使用VUE框架,刚开始的时候写了很多不和规范的代码,后来听了大佬舍友的指点,才算正确的使用的VUE。在没有大佬指点的情况下,如何写一份规范的代码呢。官网的API说明仅仅是叫了怎么用某个东西,但是对于代码整体却没有什么说明,容易出现神奇的问题,去论坛上找很多时候找到的都是治标不治本的方法,浪费很多时间才能找到最正确的解答。那么,是否可以在开始学习的时候先去github找一份规范的代码学习一下,再开始编码呢。
三、学到的知识
需求
分析用户的需要的是什么样的服务,哪一种功能能够更加符合用户的期望,以达到能够吸引用户留住用户的目的。对于每种需求,分析其是否是合理的需求,是否满足大部分人的需求,或者说不降低大部分人体验的基础上让其他人体验上升。这都是非常有必要去探究的点。搞清楚这些,才能够找到产品的用户需求。
设计
前期的设计对于代码的编写是有很多大的帮助的,特别是前后端交互数据的设计,可以让前端的同学清楚的定义数据以及对数据的调用,不至于说前端完全不知道怎么开始,因为之前就做过一个别的项目,前后端的交互没有定义的很清楚,导致前端有点不知道干什么。这次的项目,在项目初期就对前后端的交互,页面的内容做出了明确的设计,让我能够清楚的明白应该怎么写,根据设计完成目标。
实现
在设计部分,其实只是指明了一个大概方向,根据设计实现才是最重要的部分。在实现目标的过程中,我学会了根据官网的API撰写页面,也学会了在各大平台上搜索实现过程中遇到的问题,一般来说CSDN上虽然比较难直接查到解决方案,但是翻阅多个博客之后一般来说就可以找到答案。当然,一般来说照着样例写是没有问题的,偶尔会出一些严重的问题。比如在VUE中使用id来标记HTML元素,还是用VUE中的ref,这个是出现了bug之后才统一选用ref来的。这叫用VUE的方式来写VUE。
测试
因为是第一次做前端的工作,所以学到了很多前端调试的技巧,使用浏览器的开发者工具查看控制台的输出信息,直接在页面上对HTML的样式做修改,让页面的布局更加合理。当然了,功能性的测试一般都说是点点点然后看浏览器的控制台是否有报错。
发布
软件的发布工作可以说是非常重要的环节之一,扩大用户群体,让更多人了解我们的平台。在宣传手段上,我们主要是利用个人的社交网络,知乎,B站等平台投递一些内容。在这些过程中,学会了文案的书写等等宣传技能。有了这些,平台的用户才会变多。
维护
软件发布之后,用户在使用的过程之中经常会发现测试人员发现不了的问题,因为测试人员只有几个,但是用户是成百上千的,往往会遇到我们没有遇到的问题,或者说用户对于我们平台的改进意见,因此维护的工作非常重要。在Alpha阶段中,用户反馈了许多的建议,我们都对其做了改进,让用户的体验更加舒适。
四、个人收获与感悟
在这一学期中,对于个人的能力有了一个全方位的提升。不仅仅是代码的书写方面,还有文档的撰写、与人沟通交流的能力。从代码书写方面来说,对于变量的命名有了更加严格的要求,一般命名都是有意义的,不会再像之前one、two这种没有意义的名字,别人一看不知道这个变量是记录什么的,变量命名规范了之后,不管是队友还是自己检查代码的时候,都能更快的理解代码的含义。在团队项目的开发过程中,也学到了与他人积极的沟通交流,因为我跟另外一个同学负责前端具体组件的编写,有时候我这边出现的问题可能他那边也出现过并且解决了,积极的交流就省去了很多我去查找解决方法的时间。除此之外,跟后端的同学积极对接,也是让工作比较高效的原因。虽然第一次的页面设计的并不算优秀,但是满足了所有的需求,也做到了简洁大方,我个人还是比较满意的,因为第一次做前端的项目。这次团队项目的经历让我对团队的合作方式有了直观的认识,对日后的工作有很大的帮助。
总之,这一学期的软工课程可以说是非常充实,不仅锻炼了我的工程能力,还锻炼了我的团队合作能力,对于编程中的工具使用有了更深的认识,也为我打开了前端编程的大门。也很感谢我的队友们,在这次团队项目的合作中给了我很大的帮助,而且也很好交流,团队相处非常融洽,希望以后遇到的团队都是这个样子。也很感谢课程组给我们提供这种机会,有一次完全不一样的项目经历。