个人作业——软件工程实践总结&个人技术博客

元气小坏坏 提交于 2020-08-05 02:55:10
这个作业属于哪个课程 2020春-S班(福州大学)
这个作业的要求在那里 个人作业——软件工程实践总结&个人技术博客
这个作业的目标 软件工程实践总结
作业正文 作业正文
其他参考文献 《构建之法》

回望

对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

  • 专业能力

    对比与课程开始前,我认为自己在专业能力方面达到了自己期待的目标。自己开始的时候没有什么项目开发的能力和经验,经历了这次实践的锻炼,不仅会使用spring boot框架进行项目开发,也明白了前后端的交互方式,JSON 数据格式,了解并会使用JWT进行身份/权限验证等许多新知识,对软件工程的流程有了更为清晰直观的认知,同时还回顾了之前掌握的不好的web和数据库知识,觉得自己专业能力方面学到了很多。不足的方面是自己在本次课程中主要完成的是后端的开发和前后端数据交互部分,因为数据交互是直接使用ajax来进行没有去学习了解前端的技术框架,觉得自己以后需要去了解一下前端的主流技术框架。

  • 管理沟通能力

    在本次课程的团队作业中我担任了小组长一职,由于自己以前有过学生工作经历,所以在小组计划管理安排上还是比较顺利,这次团队合作主要是是让我看到了自己在活跃小组氛围方面的能力有所欠缺,还需要努力改进。

  • 其他能力

    这个学期的学业任务比较繁重,难度也普遍比较大,因此在这样的背景下我也时刻承受着比以往每个学期都要大的压力不断的学习,在经历这样的磨练后,我认为相较于课程开始前自己在抗压能力方面有了较大的提升。

你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗

在第一次作业中我绘制的是java后端的学习路线图,比较巧的是在作业中我采取的也是响应的技术开发后端,与计划路线不同的是自己不是按照计划路线的安排去学习,而是根据项目的进度和需要的技术去学习响应的技术,因此学习的知识与计划还是有些偏差,但总体上算是达到了预期值。

哪一次作业让你印象最深刻?为什么?

给我印象最深的还是Github实训,因为那次开始的时候自己还是不怎么会开发,小组内的成员也相互不是很熟加上时间也很紧迫等等各种因素,自己在那次作业中完成的很糟糕,被打击到连续好几天都心情十分低落。但是也是因为那次实训的结果很不理想,我也初步认识到了团队合作过程中有那些准备是应该提前准备好的(比如所有成员统一的开发环境、统一的开发工具等),在实训结束后通过询问两位助教学长和在实训中表现比较好的小组,我组织了小组进行了学习。可以说那段时间的压力非常大,但同时成长也非常快,所以记忆深刻。

在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录

  • 统计一下,你在这门软件工程实践中,一共完成了多少行的代码

    估计在1w+左右

  • 软工实践的各次作业分别花了多少时间?(做一个列表)

    作业 花费时间
    软工实践寒假作业(1/2) 6h
    软工实践寒假作业(2/2) 25h
    结对第一次 — 疫情统计可视化(原型设计) 21.5h
    结对第二次作业 —— 某次疫情统计可视化的实现 32h
    个人作业 —— 软件评测 10h
    团队作业 基本课后时间都在做团队作业或者需要技术的学习
  • 累计花了多少个小时在软工实践上?平均每周花多少个小时?

    在软工实践期间,除了上课和完成其他课程的作业外基本上都花费在软工实践上,平均每天花费5-7个小时左右的实践,每周大概在420小时左右。

  • 学习和使用的新软件

    IDEA、Postman

  • 学习和使用的新工具;

    Git、Maven、Junit、Chorm的调试工具、IDEA的mybatis generator等插件

  • 学习和掌握的新语言、新平台;

    学习了spring boot开发、学习了mybatis持久层框架、学习了使用ajax进行前后端数据交互、熟悉掌握了js、java等学过的语言、学习使用了JWT实现token认证等

  • 学习和掌握的新方法;

    学习了解了软件开发的整个流程、学习了单元测试的概念和方法、学习了如何设计RESTful风格接口等

  • 工程能力的提升

    在工程方面了解并初步掌握了软件开发流程,明白了前端端分离的思想和在web项目中的实现方式、学会了使用Git进行配合开发,使用maven进行环境配置等等

  • 团队合作上的提升

    在团队合作上发现了自己经常将心情带入工作的问题、今后会努力改正;明白了团队合作前期应该做好的事情(环境、开发工具的统一等);明白了分配工作应该考虑的各种因素等等。

  • 其他方面的提升

    在学习方面自己克服了自己对项目开发、团队合作的恐惧;在自学能力方面有了较大的提升,同时经过一个学期的磨练自己在抗压方面有了较大的提升。

团队总结

你是组员还是组长?你觉得你自己在哪些地方做得好?你觉得自己还有什么可以改进的地方,具体可以怎么改进?

我在本次团队作业中担任组长;我认为自己在项目开始前的准备、项目开始时的计划安排方面做得比较好;觉得自己在维持好的团队氛围方面还需要改进、主要体现在平时除了工作外的聊天探讨自己需要多做工作,在平时小组讨论时也要多考虑小组成员的想法等等。

你觉得你的组长(组员们)在哪些地方做得好?你觉得ta(ta们)还有什么可以进一步提升的地方,有什么具体的建议吗?

我觉得我们组员都比较的积极,相互之间都十分的包容理解,这让当小组内发生冲突时能较快的解决。觉得小组成员在自学新知识的能力上还有提升空间,具体建议是如果遇到不会的东西要多查多问,这样才能比较快的学到新知识。

《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?

经过了一个学期不断的了解磨合后,我们相互之间对彼此的能力、性格都有了较为清晰的认识,合作方面没有较大的问题,但是在规范方面还需要进一步的努力。因此我认为在团队的萌芽阶段-磨合阶段-规范阶段-创造阶段几个阶段中我觉得我们处于规范阶段,暂未达到”创造“阶段。

从开发的角度,你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?

在开发的角度我主要负责了项目整体框架的搭建、后端部分模块的开发以及前后端交互的实现。我认为我完成了这些角色的任务,为项目的顺利完成提供了 支持。

我认为在小组中我还是比较适合这个角色的,因为我是小组的组长,对项目的了解相对其他组员比较全面,这让项目整体框架的搭建会比较符合前期的预想,通过对项目的搭建也让我对每个模块的工作量有个更为直观的认识,有利于我在后期对于开发计划的安排规划。因为前后端我都有参与开发,所以由我来完成前后端交互会更加了方便,高效。

人月神话

1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一

(1)研发出符合用户需求的软件

小组开发的是一个校园问答网站、账户是以管理员录入用户信息的方式添加,我们添加了一个公共账号,发布链接并附上问卷进行了调查分析,前后共有45为用户体验并填写了问卷,对问卷经过分析后我们认为我们完成的软件基本符合用户的需求。(用户使用调查报告

(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

我们是通过github作为团队合作的工具(仓库链接),小组成员职责进行进一步划分,前后端分离进行开发。项目的完成贯穿整个学期, 认真进行了项目规划/需求/设计/实现/发布/维护。每次冲刺前我们都会认真规划好冲刺的任务项以及完成时间,通过xmind绘制计划安排表并在会议记录中通过燃尽图记录项目进度。在全体小组成员的努力在指定内的时间内完成项目的开发。(alpha冲刺日志集合 beta冲刺随笔集合

(3)并且通过数据展现软件是可以维护和继续发展的。

我们是将项目上传至github开源,并且在项目的文件夹内包含从项目开始到结束的所有文档记录,对于小组进行的测试流程以及测试结果全部都记录在测试文件夹并已经上传至github,方便以后的维护和二次开发。同时在对于代码的可维护性上我们在项目的开发流程中有单独进行代码复审,其中有一项工作就是提高代码的可阅读性并添加必要的注释,因此我们认为软件是可以维护和继续发展的。

2、写下属于你自己的人月神话

经历了这学期的软工实践后我也有了些自己的心得体会

个人方面

在个人方面我对知识的学习方面有了较深的体会——掌握知识的最好途径就是去使用它。在之前的学习中,我对webjs部分,数据库设计等方面的知识感觉掌握的不是很好,平时就是完成老师的作业和完成最后的期末考,学完了没过多久感觉就忘了。但是在软工实践的课程中因为需要用到这部分知识,我必须在去重新看了一下,同时经历的不断的使用和思考,我对这些知识现在有了很深的印象,感觉掌握程度大大提升。

团队合作方面

在完成团队作业的时候我一个体会很深的道理就是"磨刀不误砍柴工",尤其是人越多的时候越要做好前期准备工作。在第一次github实训的时候,任务来的很突然,我们之前也没有进行过任何准备,因此那一整天都是手忙脚乱,没有很好的完成工作。后来我们吸取了教训,在项目开始编码前进行了多次的合作准备(包括github的合作实验、前后端交互的实验等等),每次冲刺开始前都提前准备好可能用到的技术、制定好计划安排,虽然这些花费了很多的精力,但后面确实让我们整个开发过程顺畅很多,哪怕出现临时状况也有余力去调整。

在本次团队作业中我很荣幸成为了小组的组长,对于组长的一个体会就是遇到事情不能慌,因为组长作为小组的核心如果组长慌了,小组就很难有效的完成工作,因此组长遇到特殊情况要尽可能保持清醒镇定,可以多询问身边的人,努力想出好的解决办法(感觉自己在这方面还是做得不是很好,今后需要继续努力)。

建议

对于下一届同学,或者大一的同学,你想说:

在大一刚开始的时候要打好基础,多敲代码,这样后面写起代码就不会很陌生了;在大二大三上不是很忙的时候,除了课程教的知识要在课余时间多扩展一下自己的知识面,比如学习spring boot/安卓开发等技术,问问学长学姐有没有什么好的教程和学习路线什么的,这样在未来自己会有更多的选择。

对于自己今后,你有哪些建言?

坚持不懈,保持学习

对于助教工作,你有哪些建议?

助教学长真的很棒,在本课程的学习过程中为我带来了很大的帮助,同时也非常认真的为我们的博客进行评价,指出我们的问题,帮助我们进步。感觉学长做的很好,暂时没有什么建议。

对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?

对于课程的建议我觉得还是可以把课程往前挪一挪,可以放到大三上,其他相应的课程也可以相应的调整一下,因为感觉大二下大三上其实课程也没有说特别的紧,有的课程比如数学建模、计算机英语什么的我觉得可以放到后面也许会好一些。

个人技术总结

SpringBoot集成JWT实现权限验证

简介:Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).定义了一种简洁的,自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。由于完成的项目需要进行不同身份用户的访问权限验证,因此采用的JWT实现验证。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!