软工实践个人总结
目录
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2020 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2020/homework/11605 |
这个作业的目标 | 软工实践个人小结 |
学号 | 031802506 |
本次课程对自己的满意程度
- 表现还可以吧,80-85 分左右,满意的地方在于自己还算是比较圆满地完成了任务,达到了预期,该尽到的职责也有尽到,有些失误和失职的地方也及时纠正了
- 作为组长,所带领的小组的小程序完成度算是挺高的了,基本不存在软件上的 bug,除了分工和沟通交流的方面还有待改进以外,其他方面都基本达到预期发挥
- 唯二不满意给自己扣分:可能是自己比较喜欢钻牛角尖,队友写的代码用处不大就会大改或者自己重写,导致出现新的 bug 需要 debug 好长一段时间,拖延了开发进度,而且还有很多想完善的没来得完成;另一方面是前面提到的分工和沟通交流方面,由于时间不太充分,会议有时候开的就比较仓促,有些要点就没沟通清楚,这样子问题就会留到下一次会议可能才能解决
学习掌握的工具和技术
- 原型工具:墨刀
- Vue 的一部分,jQuery 和 bootstrap
- 测试工具 jmeter、pytest 的学习使用,Postman
- 微信开发的一部分
经历的挫折和困难,解决方式
- 客观问题:呈上四字血书————时间不够。尤其是一学期的所有大作业都赶上了最后的一两周。时间管理大师都是熬夜逼出来的。
- 主观问题1:jQuery 第一次用来实战,结果有些头疼,首先它的 ajax 没有封装 json 文件,最后对所有 json 数据进行 stringify ;以及它在 js 文件中无法识别$符号,导致 jQuery 代码和 html 文件无法分离,代码显得很乱,于是百度了一下找到了一两个可以解决方案,虽然不能完全分离开,但是已经够用了;jQuery 在定位 dom 元素的时候有时候会触及它的使用范围死角,于是需要额外写 function 传入参数来定位该元素。
- 主观问题2:前端的 bugs 千奇百怪,需要不断 console.log 和 alert 一些具体的数据,或者前后端两边跑,确认问题究竟是前端还是后端。当然解决方式也很简单,不熟悉的接口,先自己额外练手写一段,成功后开始码代码,每个代码块结束后输出一下关键数据是否获取/处理成功,然后继续下一个代码块。
课程结束的收获与心得
- 累是累了点,不过最后有完成了一个附带后台管理系统的比较完整的项目,了解到如何进行 web 端的前后端对接和微信小程序的前后端对接,这个是一整个学期下来最大的收获,以后开发就会有经验了
- 精通一门语言还是挺困难的,之前自己简单的涉猎还不足以支撑自己任意开发,后续还要在更多实战中才能
- 写博客的结束以后得查看有没有问题(之前因为改了改缩进就直接换了一种文本样式了),以及博客园自带一个远端历史版本可以回溯
编码量
练手的所有代码:327 行
正式 commit 的前端代码:1348 行
团队作业前的编码量:412 行
总共:2087 行
平均花费时间
- 累计花了 210 个小时左右在软工实践上(包括上课时间 21 * 1.5 )
- 一共持续 14 周,平均每周花 15 个小时左右
团队协作的反思与心得
- 完美的分工和心有灵犀的编码是不可能的,这辈子都是不可能的,只能靠不断调节每个人的分工和适当时机开展会议交流讨论来尽可能达到这个目标。在团队协作初期,作为组长分工方面自己得背锅,存在了一些比如没有让每个人编程量饱和的问题,当然这样子也把核心代码交给了大佬们处理了,因此最终完成度挺高,所以利弊还真不好说...
- 组内小白和大佬之间的学习差距处于两个极端状态,所以最后以佬带新的方式可能更适合整个项目的推进,毕竟有些东西就是一个想法+框架=实现的过程,简单一点拨就会用了
- 印象里的站立式会议很严肃,但是实际上开得很欢乐,而且也能促进交流;团队协作的时候极限编程效果不错,队友为了早点回去睡觉的时候打代码效率极其得高
- 数据的规范从一开始就得大家一起制定好,不然后期搜集完再处理小 bug 很麻烦,自动化脚本都处理不完
对于软工实践课程及助教工作的建议
- 助教每次都是深夜或者凌晨才看博客,感觉挺辛苦的,先点个赞吧
- 对于课程学分和投入不成正比这一点嘛,我觉得会有很多人吐槽哈哈哈,如果再往上提亿点学分,天天 997 都行~
- 希望有一两节课老师或者助教专门讲一下,一个软件的具体前后端开发架构和对接过程,具体测试需要如何同步开展之类的,最好有个事例,这样子现场编程不慌,大项目起步也会快一些
- 其实喜欢任务简单一点,博客和 Vlog 有时也蛮花时间的
- 更倾向于 6-8 人的自由组队,个人感觉和目前的组队机制的结果差距不大
你的未来规划
- 考研保研,别卷了别卷了;
- 前面有提到过这学期学得很杂,有空需要完善一下本学期学的知识体系和调用的各种框架,不然等下学期开学就忘光啦~
- 倾向于做一些个人小项目,自己偶尔练练手,不过能规划出来的剩余时间可能已经不多,因为等期末考完大部分时间会匀给 SDN 和 AI。
SE_Final_Skill_survey 表格
before the class | after the class | |
---|---|---|
Skills/技能 | assessment 1..10 | assessment 1..10 |
Software Engineering(SE)Overall /对软工整体理解 | 1 | 10(上完栋哥的课就得这么自信) |
SE: Requirement (需求分析,典型用户,场景,创新) | 2 | 4 |
SE: Project Management (项目管理,spec) | 1 | 5 |
SE: Design (架构设计,模块化设计,接口设计) | 2 | 5 |
SE: Design (效能分析,效能改进) | 2 | 4 |
SE: Implementation (阅读代码的能力,实现,单元测试) | 2 | 6 |
SE: Test (测试方法、测试工具、测试实践、代码覆盖率) | 1 | 5 |
Software Tools (performance tool, version control, work item, TFS) | 2 | 5 |
Code Review/Writing Solid Code (代码复审/代码规范/代码质量) | 4 | 6 |
Programming Language (C/C++/C#/Java) (pick one language) | C++ | JAVA |
App development Web/Mobile/PC (choose one) | PC | WEB |
Task Plan, estimation and Prioritization (计划任务,估计时间和优先级) | 6 | 6 |
Task Execution (按照质量要求、按期完成任务) | 5 | 7 |
Work with others (协同工作,提供反馈, 说服别人) | 3 | 6 |
Presentation (报告项目状态,提出想法,写博客等) | 4 | 7 |