一、请回望第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
开篇博客链接: https://www.cnblogs.com/azeLibertas/p/11483498.html#_label3
当时我写下的期待是:
最大的期待就是完成实践任务后我的实战能力会有多大的提升,对于团队分工合作能有多深的认识和体会。多人合作一向不是简单的事情,能做到愉快且有效率的合作,我相信就是一种成功了。
可以说,与一个学期前的自己相比,我的实战能力有了很大的提升,有能力完成一个可用软件的开发。可以在短时间内熟悉一个后端框架和运用一种语言进行开发。不足之处在于,时间太紧,要学习的东西太多太杂,对于工具的学习只能了解到皮毛,对框架和语言的学习更是需要不断的妥协,很多原理和功能在妥协的过程中便不得不被砍掉。
在团队合作中,我很幸运地找到了一群还算靠谱地队友,大家团结一致,在开发的过程中收获了很多的快乐。自己在团队中担任了队长的角色,也是发挥了一定的领导作用,学到了丰富的合作经验,也更进一步地认识到合理的分工对效率的提升有多么的重要。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
作业 | 代码行数 |
---|---|
个人项目 | 2365 |
结对项目 | 2969 |
团队项目 | 2370 |
总计 | 7704 |
2、软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 花费时间(min) |
---|---|
第一次博客作业 | 120 |
第一次个人编程作业 | 1950 |
第一次结对编程作业 | 1720 |
团队展示 | 120 |
第二次结对编程作业 | 3725 |
团队项目-选题报告 | 180 |
团队项目-需求分析报告 | 595 |
团队Git现场编程实战 | 1015 |
Alpha冲刺(1/6) | 380 |
Alpha冲刺(2/6) | 290 |
Alpha冲刺(3/6) | 370 |
Alpha冲刺(4/6) | 320 |
Alpha冲刺(5/6) | 520 |
Alpha冲刺(6/6) | 1560 |
Alpha事后诸葛亮 | 1780 |
Beta冲刺(1/5) | 460 |
Beta冲刺(2/5) | 960 |
Beta冲刺(3/5) | 945 |
Beta冲刺(4/5) | 745 |
Beta冲刺(5/5) | 745 |
Beta版本展示 | 825 |
软工实践个人总结 | 180 |
3、哪一次作业让你印象最深刻?为什么?
印象最深刻的就是Alpha冲刺了,毕竟熬了几个通宵,福大凌晨的活动室,见证了我们的项目从0到1,从分析、设计到编码、测试,每个人都贡献自己的一份力量,把我们的项目一步步完善至最终的成果。和队友们一起努力,通宵也没那么无聊了,这个过程无疑是最令人难忘的。
4、累计花了多少个小时在软工实践上?平均每周花多少个小时?同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答
累计花了325个小时在软工实践上,按11周来算,平均每周花了29.5个小时。
开篇博客我的回答是:
量化时间的效果很模糊,但看到各位前辈们“一起熬夜,一起吐槽,一起说说笑笑,一起打代码”很快乐。加上我本来做事情就要比别人慢,一周18个小时,每天抽三四个小时用来学习。期待自己能做到。
虽然早有了心理准备,但还是低估了这门课的硬核程度。不过,很重要的一点是:花费的这么多时间是否带来了理想的结果,是否有很大一部分时间表面上花费在了解决这门课的作业上,但实际上并没有将时间充分的利用。换言之,对时间的转换效率是否合格。
因为自己在完成作业的过程中,也确实出现了花费很长时间去解决一个本不需要这么多时间的任务。这样对时间的转换率太低,其实也导致了一定的浪费。
5、学习和使用的新软件;6、学习和使用的新工具;
- 代码管理:git
- 远程控制:TeamViewer
- 原型设计:墨刀
- 绘图:ProcessOn、XMind ZEN、StarUML
- 数据库管理:Navicat Premium、PHP Admin
- IDE:IntelliJ IDEA、Android Studio
- 测试:postman、eclipse单元测试
- markdown编辑器:Typora
7、学习和掌握的新语言、新平台;
- 新接触的语言:MySQL
- 进一步学习C++与Java
- 后端框架:spring boot
- 云服务:阿里云
8、学习和掌握的新方法;
- NABCD法需求分析
- 单元测试方法
- 正则表达式的运用
- UML类图的制作
- 墨刀原型工具的使用
- 软件需求规格说明书的设计书写
- spring boot+tomcat框架应用
- 阿里云服务器的部署
- 团队git协作
- 数据库设计及运用能力
9、其他方面的提升。
- 如何在短时间内学会并且运用一项知识
- 学会权衡利弊,在时间不够的情况下,如何安排项目进度,对一些次重要的功能进行修改
- 如何领导一个队伍,把控项目的进度
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
我想我感触最深的就是:第一次个人编程
“你踩的坑永远不够多。”
那是开始学习这门课的第一次实战作业,我也是第一次接触API,调用各种API并且一次一次失败的过程我现在记忆犹新。
从华为云API,到百度API、高德地图API、百度地图API,一次又一次的失败,让我感到绝望。但是,又何尝不是在学习经验,获取教训。
这是我当时的心路历程:
两天时间的浪费,我对C++心生不爽。转战Java。
但依然不屈服于暴力解决,想用点有意思的功能。很早就开始学习Java,但战线拖得太长,一直都只是掌握了皮毛。想为之后的团队项目做些准备,决定学习调用API来解决。
1、华为云API:
https://market.huaweicloud.com/product/00301-209781-0--0?ticket=ST-19226-C9KcTiQEvEgeFaAleIAcDEgE-sso
对如何使用API毫无头绪,最先找到的就是华为云的地址分词,看完了四十几页的开发文档,0元买了API,发现还是不会用,“先创建APP再调用接口”什么的我是真的搞不懂啊,本以为就是用url使用key的事情,还要创建什么APP,最后不了了之。
2、百度AI:
http://ai.baidu.com/docs#/NLP-Cpp-SDK/top
在b站上看了如何调用API的视频,发现up主用的是百度AI。看起来还算简单,虽然和我要实现的功能没什么关系,但决定先按照教学去练练手。相比华为,百度的开发文档更简单易懂,按照步骤一步一步做,最后实现了第一次调用API,算是对调用API的过程有了一些了解。
3、高德地图API:
https://lbs.amap.com/api/webservice/guide/api/georegeo
学会了调用API后,就开始找合适的接口。高德地图的接口功能非常丰富,可以根据地址返回省、市、县等各级行政区的名称。这样就可以把暴力匹配前几级地址优化到只需调用一个接口来实现。但是,最坑的事情来了,高德地图返回的json数据,格式化校验会出错,导致程序疯狂报错。
绝望.jpg ......
4、百度地图API:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
相比高德地图,百度地图不会返回各级行政区的信息,只能获取到位置的经纬度。只能二次调用接口实现逆地址解析,根据经纬度返回各级行政区信息。这就是最终的实现方案。
也正是这一次一次的尝试,让我学会了API。在后面的现场编程过程中,很多之前调用过的API也起到了关键的作用。
”踩过的坑不会白踩,它不是拦路虎,而是垫脚石。”
三、这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
最感谢的就是我们队的女生了,虽然我是队长,但很多时候是女生们催着大家完成任务。如果没有她们的催促,我们可能也无法圆满完成任务。
呵,男人。
四、个性发挥,包括图文、照片和创意等
我好歹是队长,给我个面子。