个人作业——软件工程实践总结&个人技术博客
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/2020SpringW/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/2020SpringW/homework/10836 |
这个作业的目标 | 通过这次作业为这段时间的学习和实践所得做一个总结 |
作业正文 | 作业正文 |
其他参考文献 | ... |
一、回望
1. 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
主要是之前自己学了点框架,所以我更希望把重心放在——多人项目中增加合作经验,和同学进行更深入的技术交流和探讨,从而提升团队合作能力和复杂项目的编程能力,最后完成一个不错的项目。不过比较遗憾,回望这几个月,虽然大体上完成了项目,可在前端方面没有很好的达到自己的期待和目标,内心有点失落。
2.你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
技能方面:当初希望能继续打好前端基础,然后持续研究前端方面的新技术,像动态骨架屏等,但因为自己后半程有所懈怠,所以后半段目标没有很好的达到。工程能力方面则是有了很多提高,通过任务分配,代码风格保持一致性等手段,加上前后端的沟通和合作,工程能力总体达到了预期值。
3.请总结这门课程的实践总结和给你带来的提升,包括以下内容:
统计一下,你在这门软件工程实践中,一共完成了多少行的代码?
约5000行
作业名称 | 时间(min) |
---|---|
准备篇 | 240 |
热身篇-疫情统计 | 500 |
结对第一次作业-某次疫情统计可视化(原型设计) | 1360 |
团队作业第一次-种子队伍选拔和团队展示 | 460 |
结对第二次作业-某次疫情统计可视化的实现 | 880 |
团队作业第二次-团队Github实战训练 | 360 |
团队作业第三次-项目需求分析 | 700 |
团队作业第四次-项目系统设计与数据库设计 | 680 |
个人作业-软件评测 | 420 |
团队作业第五次-站立式会议+alpha冲刺 | 2200 |
团队作业第六次-beta冲刺+事后诸葛亮 | 2200 |
个人作业——软件工程实践总结&个人技术博客 | 180 |
哪一次作业让你印象最深刻?为什么?
结对第一次作业-某次疫情统计可视化(原型设计);这次作业感觉挖的坑比较多,比如原型内部的动态图表,以及“爬取疫情数据”,后者花了很大工夫但也没能很好的实现,调了第三方API才勉强完成。然后是原型工具——我个人实在不怎么喜欢原型工具,首先是要做出复杂交互,学习成本一点也不低;而且在很多自适应布局中,有时花大力气调好的像素距离反而会带来累赘;最后是,如果css掌握的熟练,直接写代码不会比做拖原型慢很多。
累计花了多少个小时在软工实践上?平均每周花多少个小时?
如上图,大约累计花费170小时,20周平均每周8.5小时
学习和使用的新软件
axure rp、github
学习和使用的新工具
axure rp、github
学习和掌握的新语言、新平台
echarts、ant-design、teambition
学习和掌握的新方法
单元测试
工程能力的提升
工程分析能力,团队合作能力,时间分配能力,文档编写能力
团队合作上的提升
前后端之间的沟通,接口设计统一
其他方面的提升
学习能力、看文档和接口能力
二、团队总结
你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
我担任的是前端开发和任务分配,虽然大体完成了任务,但我觉得作为任务分配者不够合格,任务分配粒度比较大且没用一套检验标准。
如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?
组长的分工还是很合理的,组长自身也做到了很好的表率,出现bug都是有求必应和秒回,反观有所的懈怠的自己,还是挺愧疚的。组长选举的话,组织能力和代码能力同等重要吧,缺一不可,没有前者就是闷头宅男,缺失后者就是做ppt写博客大神,这些特质可能只有比较了解他的组内人员才懂,所以组内选举还是比较合理。
你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。
感觉换组这个设定比较尴尬,随机指定“有可能”会让项目直接拉胯,组内指定的话,指谁谁尴尬。但相比之下,还是“随机指定”更能体现换组的初衷。就我们组这次的换队员体验来说,不怎么好——换走的队员原先负责博客,任务完成的也挺好,可换过来的队员竟然好几天都联系不上人,拖到任务都分完了才姗姗来迟。
分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)
萌芽、磨合、规范阶段都经历过。规范阶段相对比较痛苦,根除了之前的一些痼疾,最后顺利地进入了创作阶段。在alpha和beta冲刺阶段时,大家所要做的工作也都非常明确,同时自己的任务完成后还力所能及地去帮助别人,直到最终项目完成。
三、人月神话
1.怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
我们的软件符合用户需求,有完善的调查报告
我们的软件按时准确的按照进度完成编码,测试,发布工作,每天都有燃尽图体现任务进度。
我们的文档编写简洁,代码也都在GitHub上,编码风格和注释风格都是按照规范进行。
2.写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,文字部分字数要求在100字以上,可以使用你自己喜欢的方式表达(如图文结合、视频)
挑重点说的话,开发前的需求分析和原型设计非常重要。我们项目在原型设计时就不够到位,这导致前端在项目的逻辑处理上陷入泥沼。比如我们的“团队协作工具”,在当时竟然没有考虑到“项目切换面板”该如何运作,亡羊补牢花费的精力巨大,那么为什么不在前期重视起来,从根源上消除隐患呢。
多人合作中,一定要重视代码风格和打好注释,不然别人会看的一头雾水。也不要追求什么奇技淫巧的写法,代码不仅是写给机器运行的,也是写给项目合作者阅读的,奇奇怪怪的写法只会给项目进行添加阻碍。
四、建议
1.对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。
对下一届同学的建议:没事就多刷技术博客和开发者论坛,然后疯狂上手敲,这是技术力提升和获悉前沿热点的最快方式。
2.对于软工实践课程,你有哪些建议?
建议把学分改成5。
3.对于助教工作,你有哪些建议?
其实,没有太多建议,因为老师和助教都做的很全面了,程序员还是要自己去找教程和各种东西的,尤其是助教为此付出了很多。像乐助教一直在点评同学,开技术直播分享,而且我的第一次作业是用nodejs写的,乐助教特地在可选语言里补充上了它。
4.对于自己今后,你有哪些建言?
确立了目标就要拼尽全力,无论做什么事,都要有做好它的样子。LOL想上钻石,就查攻略看ob通宵泡在网吧上分;想干好前端,就对着codepen练css学框架看实现,十多个小时都在敲代码中度过;想考研,就早八点晚十点闷在屋里自闭,越学越快乐。反复横跳和三心二意最使不得。
五、个人技术总结
在第一次作业“准备篇”中你为自己制定了学习路线,现在学习了怎么样了?你在团队开发中是否担任了开发角色,你在开发中解决了哪些技术问题?获得了哪些技术进展?
前沿应用方面有所懈怠,除此之外尚可。在团队开发中担任了前端角色,技术问题方面,我对老生常谈的跨域问题还是略有迷茫,曾经我是在后端方面粗暴的开启CORS,而这似乎并不是最佳的办法。