软件工程实践总结——是终点亦是新的起点

222000128邓雨红 2023-06-04 23:21:35
这个作业属于哪个课程软件工程-23年春季学期
这个作业的要求在哪里软件工程实践总结&个人技术总结
这个作业的目标课程回顾与总结、个人技术总结
其他参考文献《构建之法》

目录

  • 一、课程回顾与总结
  • 1.寒假作业博客
  • 2.新看法新解答
  • 3.新的问题
  • 4.每个阶段的收获知识或能力
  • 4.1 需求阶段
  • 4.2 设计阶段
  • 4.3 实现阶段
  • 4.4 测试阶段
  • 4.5 发布阶段
  • 5. 结合经历收获的理解和心得
  • 5.1 个人项目
  • 5.2 结对编程
  • 5.3 团队项目
  • 6.自我评分
  • 二、个人技术总结
  • 1.链接
  • 2.概述

一、课程回顾与总结

1.寒假作业博客

2.新看法新解答

1.软件开发是年轻人的饭碗,吃的是青春饭?那年纪大的程序员经验丰富但是快速学习能力拼不过年轻程序员的时候该怎么办呢?

答:在我看来,一方面,以学习能力的快与慢来说肯定是年轻人优于年老者,这样看来确实是吃青春饭,编程是一门专业性很强的工作,不是简单培训就能入门的。对于一个编程从业者来说,如果年轻的时候没有提高专业技能,那么等年龄大的时候,一定会觉得力不从心。与此同时,由于专业性很强的特点,一旦专业技能提高,经验丰富,编程又是一件非常轻松的工作。对于很多程序员来说没有积累专业技能,随着年龄增长,确实不再适合做编程的工作。在这过程中要一定要保持不断的提升自己,对自己的知识技能不断丰富。但是另外一方面来说,软件工程不仅有团队合作,还有项目质量控制等,这些复杂的部分往往很少年轻的程序员能够驾驭的了,年级大经验丰富的程序员往往能够做技术领导来领导整体把控工作,技术大方向决策等,这些对团队生死而言,具有更大的价值,没有好的决策与把控,可能就导致软件开发不能继续进行,这样来说程序员也不一定是青春饭,年纪大的程序员往往最后能够在团队中担任核心领导作用

2.个人在团队中角色就像是一个流水线上的机器吗?

答:经过这次实践,我更加确认这个观点是错误的。因为这次我们能够顺利完成这次实践作业,主要还是因为我们都是线下一起工作,面对面交流太重要了,这也促使我们的工作效率更高。无论工作难易,团队工作都必须能够灵活地和伙伴们进行沟通和交流,一起解决一个人无法解决的问题,所以一个人在团队中国绝对不能是流水线上的机器,沟通和反馈是个人在团队中最需要做到和最重要的事情

3.花费时间越多,代表工作量越高吗?

答:这次实践给了我不同的答案。因为这次我做的是前端的工作,前端最磨人的就是页面排版,可能一个简单的效果让你花费大量的时间在调整,但是算起肉眼可见的工作量,可能往往不如后端的同学干的多,但是我们花费的成本却是一样的,所以并不是时间多就是工作量多,也和工作难度、个人能力有很加粗样式大的关系

4.代码量与个人的编码能力有直接关系吗

答:我还是持同意的观点,因为这次是我第一次使用uniapp制作前端页面,但是由于我之前再结对作业已经编写过vue页面了,这次上手uniapp很快很容易。就是之前的代码量使得我在前端编写能力明显提升了,在接触不同的技术时也能举一反三,更快适应新技术

5.在团队项目中,是选择有利于自身成长、最具挑战性的工作;还是有利于团队、有把握的完成的工作?

答:在这次团队项目中,我首先选择的是有利于团队、有把握的完成的工作,因为我们的项目完成的时间有限制,挑战性的工作可能导致项目整体进度落后,在有时间限制的情况下,最好先做好自己能做好的工作,让项目在ddl之前能够按部就班地完成所有基础功能。在beta冲刺的时候,我在完成自己模块的扩展之后,在有空余时间的情况下,再去帮助别的模块解决一些更难的问题,锻炼自己的能力。

3.新的问题

  • 1.我想了解一下前端的测试流程到底是怎么样的,因为这次我们前端采用的uniapp,都是采用手动测试,但是由于测试的人手不够,且手动的效率低下,往往一些bug可能在很后面才发现,所有我比较想知道一个公司在发布一个产品的时候,前端是如何进行测试的呢?

4.每个阶段的收获知识或能力

4.1 需求阶段

  • 在需求设计阶段,我们需要了解项目的功能和用户需求,在这个阶段,我们使用NABCD模型,从需求、做法、好处、竞争、推广这几个方面对我们需要设计的产品进行分析。于此同时,需求阶段还是了解项目需求、与团队成员协作、评估技术可行性和提供技术建议的重要阶段。通过参与需求阶段的工作,我提升了自己的需求分析能力、沟通协作能力、用户导向思维和技术可行性评估能力,为后续的项目开发打下坚实的基础。

4.2 设计阶段

  • 在设计阶段,我主要负责的是数据库设计部分。主要是进行数据库表属性和结构的分析与细化,以及E-R图和关系模式的构建。在分析的过程中,可以看出E-R图和类图等图表起到很重要的作用,且相辅相成,总是可以在一张图中发现另一张图设计的不到位,数据库设计的不够严谨,遗漏属性等等问题。经过这次设计阶段,也让我在分析数据库这一块有了更深刻的了解,也明白了在数据库设计这方面:深入理解需求、规范命名、选择合适的数据类型和约束、考虑性能和扩展性、迭代优化、文档化和注释等等方面都是分析的关键点,需要多加注意。

4.3 实现阶段

  • 在实现阶段,我负责的是我们项目的前端模块。这次我们的项目采用的是 uniapp 框架,前端的界面制作基本和 vue 框架一致,能够使用 uniapp 自带的或 uview 等组件库,这使得我们制作页面的难度大大减小,这次的项目我负责的是帖子部分的前端部分,让我更加熟悉了 vue 的语法和使用规则,css 的页面排版,以及如何和 unicloud 后端进行交互,在技术层面上比起之前零零散散的学习,算是一个很大的提升了。于此同时,这次项目编写,我们小组采用都是线下交流讨论的方式,让我感受最大的还是队员之间的沟通和反馈对于工作具有明显的效率提升,因此在团队方面,我对队员之前沟通也更加得心应手,对于团队的工作模式也更加熟悉和了解。

4.4 测试阶段

  • 在测试阶段,我负责的主要是前端界面的测试。主要是通过手动测试前端别的模块的界面交互是否存在bug,对其他模块进行评价和反馈,提出自己的改进意见和bug提出。同时需要解决其他组员发现的我的模块的bug进行修复和优化。对于这种测试我感觉不是一个很正规的前端测试,但是上网了解之后,也没有知晓uniapp的前端需要怎么测试,因为很多错误都需要人主观去点击才能发现,这个部分还需要未来在工作之后进行详细的了解和学习

4.5 发布阶段

  • 因为我们使用的是uniapp+unicloud方法编写的项目,发布只需要打包apk,然后给到用户下载使用即可。于此同时,我们也发布了问卷调查,获得了一些有效的反馈意见,在app发布的同时,也注意维护我们的数据库和软件性能。对于出现的bug及时进行修复优化,根据反馈意见优化我们软件性能等等。

5. 结合经历收获的理解和心得

5.1 个人项目

  • 因为本身的编程能力不是很好,第一次个人项目编写对json数据的分析其实对我来说挺折磨的,但是在困难重重的情况下,也使我得到了一些编程锻炼,还有一点就是需求必须看清楚,在实现了所有功能之后,却得分很低,都是因为需求没看清楚,这也给我了一些警示,一定一定要看清楚需求,不管是作业,在未来工作,需求只会是更严格的,不能够犯着这种粗心的错误!!!!

5.2 结对编程

  • 在技术方面,我第一次接触了原型设计软件墨刀,学习了如何对项目进行原型设计;于此同时,我们的项目采用了前后端分离的模式,也让我接触学习了vue,对后续编写我们的团队项目打下了技术基础;在团队方面,这是第一次和伙伴一起编程,让我对合作编程有了更加深刻的了解,在合作方面,一定要找和自己能够有效沟通的人,比如我的队友,这样效率和项目效果都能upup。

5.3 团队项目

  • 这次我们项目的编写阶段分为alpha冲刺和beta冲刺,让我能够比较完整地体验和理解现在团队主流的开发模型,使我对团队项目的开发流程更加了解;在技术方面,第一次使用uniapp和其自带的组件库进行前端的编写,提升我对vue的编写能力,同时也了解了uniapp+unicloud的前后端分离模式,可以对前后端进行有效的分离和联系;在团队方面,这是我第一次进行多人团队编写作业,合作过程是很融洽和积极向上的,不经提升了我的沟通交流能力,同时也让我对团队项目的开发模式更加清晰。

6.自我评分

目标理由分数
目标1这次项目编写,我们项目的主题是鼓励高校学生多多进行体育运动,通过对体育活动的宣传,运动记录的帖子分享等等鼓励同学们使用该软件,运动健康生活,符合积极向上的软件开发理念95
目标2需求分析过程,我们对于用户可能希望软件有的功能进行原型设计,以及NABCD模型进行分析,能够较好的表达顾客需求,构建需求分析模型90
目标3通过对之前的原型设计、数据库设计等等,在后续发开中按照前期设计的模型进行修改和优化,构建了较为完善的软件体系85
目标4对市面上相似的竞品进行分析,对于我们设计的模型不断进行创新和优化85
目标5团队在编写文档和说明时均遵循文档标准进行撰写90
目标6能够和团队中的不同成员进行有效的沟通交流,在站立式会议中汇报自己的今日工作和下一步安排89
目标7能够对比较复杂的任务进行拆分,同时对工作量进行分析,制定合理的规划方法84

二、个人技术总结

1.链接

个人技术总结--Uniapp组件库uView的使用

2.概述

  • uView 是一个基于 Vue.js 的开源UI组件库,专注于提供高质量、高性能的移动端UI解决方案。它基于微信小程序的规范和特性进行了定制开发,同时支持在多个平台上使用,包括微信小程序、H5、App、支付宝小程序、百度小程序等。
  • uView 提供了丰富的组件和功能,涵盖了常见的界面元素、布局组件、表单组件、操作反馈组件等,满足了移动端应用开发中的各种需求。它具有可定制的主题样式、多语言支持、内置的常用工具函数等特性,为开发者提供了方便、高效的开发体验。
  • 此外,uView 还提供了完善的文档和示例代码,帮助开发者快速上手和了解各个组件的使用方法。它秉承了简洁、易用、高效的设计理念,注重用户体验和性能优化,助力开发者构建出优秀的移动应用。
...全文
148 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoftwareTeacher 2023-06-14
  • 打赏
  • 举报
回复

公司在发布一个产品的时候,前端是如何进行测试的呢?


@CSDN-Ada助手请问,互联网公司在发布一个产品的时候,前端 (uniapp)是如何进行测试的呢?

CSDN-Ada助手 2023-06-14
  • 举报
回复
@SoftwareTeacher 互联网公司在发布一个产品的时候,前端测试可以通过以下几种方式进行: 1. 单元测试:测试前端中一些常见的模块和函数是否正常运行。可以使用 Jest、Mocha 等测试框架进行单元测试。 2. 集成测试:测试前端代码与后端代码的交互是否正常。可以使用 Nightwatch、Puppeteer 等工具进行集成测试。 3. UI 测试:测试前端页面的布局、交互和样式是否正确。可以使用 Selenium、Cypress 等工具进行 UI 测试。 针对 uniapp,可以使用 uni-app 自带的 uni-simple-router 提供的单元测试、E2E 测试等功能进行测试。同时也可以使用 Jest、Cypress 等工具进行测试。
222000128邓雨红 2023-06-23
  • 举报
回复
@CSDN-Ada助手 感谢老师的回复,我会继续学习的!
CSDN-Ada助手 2023-06-23
  • 举报
回复
@222000128邓雨红 不客气,祝您学习愉快,有什么问题可以随时来问我。

587

社区成员

发帖
与我相关
我的任务
社区描述
软件工程-2022-23学年(第二学期)
软件工程 高校
社区管理员
  • LinQF39
  • promisekoloer
  • 异梦1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧