从学习到实践,从样例到工程

质壁分离988 质壁分离988 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个作业属于哪个课程2023年福大-软件工程实践-w班
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标课程回顾与总结 个人技术总结
其他参考文献无

目录

  • 第一部分:课程回顾与总结
  • 一、针对构建之法提出的问题回顾:
  • Q1:关于“足够好”的软件,定义是否缺少维度?
  • Q2:是否存在一些比较好的自动化代码复审工具?
  • Q3:如果你是病人,你希望你的医生是下面哪一种呢?
  • Q4:在设计中应该关注人数更多那类人群的使用体验还是兼顾多种人群的使用体验?
  • Q5:认为软件系统十分复杂是不是因为软件工程还没有充分发展?
  • 二、软件工程项目的收获
  • 需求阶段
  • 设计阶段
  • 实现阶段
  • 测试阶段
  • 发布阶段
  • 三、课程的自我评分
  • 第二部分:个人技术总结

第一部分:课程回顾与总结

一、针对构建之法提出的问题回顾:

问题博客链接

Q1:关于“足够好”的软件,定义是否缺少维度?

之前回答:

我认为一个足够好的软件除了bug尽量少,有好的用户体验和使用流畅性之外,还需要关注这款软件所要解决的痛点是否明确以及是否解决了对应的目标用户痛点,给用户带来实际的便利

现在的回答:

在之前回答的基础上补充:足够好的软件还应该具备好的拓展性和平台适应性以及代码的易读性。这是在软件工程实践中的alpha, beta冲刺中体会到的。

Q2:是否存在一些比较好的自动化代码复审工具?

现在和之前的回答没有区别:

如Getbarkeep,Crucible等代码审查工具,这些工具不够智能,审核工作的人工部分仍然很繁杂,ChatGPT为代码复审带来一种新的解决方法或许会减少一些审核工作的人工部分

Q3:如果你是病人,你希望你的医生是下面哪一种呢?

同样的回答:

我希望我的医生是c类,我希望我未来作为软件开发者可以结合abc三类的优点,对于一成不变的知识可以依赖搜索引擎或书籍,专注于工作的创造性方面

Q4:在设计中应该关注人数更多那类人群的使用体验还是兼顾多种人群的使用体验?

之前的回答:

这取决于软件本身的定位,如果是作为普通的以营利为目的的商业软件,首先应该满足占用户主体的那部分用户的需求以留住更多用户,对于少数用户的特殊需求应尽量满足;如果是一些性命攸关软件,则应更多的考虑到全体用户的需求

现在的回答:

在之前的回答上补充:对于盈利为目的的软件如果能更好的考虑到少数人群的利益,则可以赢得较好的口碑从而达到更好的盈利。

Q5:认为软件系统十分复杂是不是因为软件工程还没有充分发展?

之前的回答:

不是,软件工程充分发展会让软件开发工作变得简单易行,软件使用变得简便,但是软件系统本身会变得更加复杂,因为软件工程可以让繁杂整体工作变成简单的部分工作,而工作变得简单就会使得开发者追求更复杂,精细的软件结构从而使软件的功能更强大

现在的回答:

不是,软件工程的目的是为建造高质量的软件提供方法,软件系统的复杂性和可行可复制的方法之间没有很直接的关系。

二、软件工程项目的收获

需求阶段

学习了如何创建需求文档,学习了如何和队友和用户进行协商,体会到了实现妥协和(尝试)没有歧义的获取需求的重要性。

设计阶段

体会到了UML在实际工程中的重要性,UML可以把模糊的概念清晰化,并暴露出不成熟设计中存在的问题,加深了对面向对象设计与分析知识的理解。

实现阶段

能更加熟练的使用SpringBoot以及其他的一些开发工具,能结合前端代码进行故障排查,了解内网穿透工具的使用,能更加熟练的操作云服务器,熟练的在linux服务器上配置开发环境。

测试阶段

能更加高效的找出故障的原因,体会到开发环境和生产环境的不同会导致一些不易排查的bug。学习了测试用例的编写和自动化测试工具的使用。

发布阶段

学习到了SpringBoot项目和vue项目的部署

三、课程的自我评分

  • 目标1:70%,对于大学生群体的需求情况有所了解,对于社会健康文化情况有所了解,对于软件职业道德方面还需要加深理解。
  • 目标2:80%,对于需求分析的基本过程基本了解,对于双赢协商有所体会。
  • 目标3:90%,能遵守基本设计原则对软件整体进行设计。
  • 目标4:80%,基本能够执行从组件到软件系统的技术评测,但对创新的理解不足。
  • 目标5:90%,能够撰写开发各阶段文档。
  • 目标6:90%,有较好的团队意识,能够有效地与团队成员进行沟通和协作。
  • 目标7:75%,大致了解项目管理过程,但还需要更多项目管理实践。

第二部分:个人技术总结

本次团队作业我担任的后端开发职责。在团队协作中我最擅长的技术是:vue的代理服务器以及vue服务器和后端服务器之间的http协议引发的跨域问题。

技术博客:关于前后端分离项目的跨域问题

概述:

首先前端和后端服务器由于Ip地址和端口不同会导致前后端交互出现跨域问题

在常规情况下,前后端部署在同一服务器上,只要vue项目中配置代理服务器或后端在响应报文中加入相应响应头即可解决。

在vue项目打包之后,vue项目的代理服务器会失效,这时如果前后端部署在不同的服务器上,会出现后端不能在前端服务器上设置cookie,在通过session来维持用户登录状态的后端服务的视角中,用户就是一直未登录状态。

对于复杂跨域请求会出现前端请求cookie不能携带的情况

解决方法是:前后端部署在同一服务器上,axios的配置中要设置withCredentials字段,在是SpringBoot项目中不能使用常规跨域配置而是使用特殊的配置。同时SpringBoot服务器上要检测请求方法,如果是OPTIONS方法则要进行特殊判断以放行复杂跨域请求。
...全文

相关推荐

CANN算子实战样例Ops-Samples的架构设计与算子开发实践技术深度解析

本文深入解析CANN生态中的Ops-Samples算子实战样例项目。该项目通过分层架构设计(基础/进阶/高级/综合样例模块)提供循序渐进的学习路径,包含478个stars和156个forks,具有活跃的社区参与度。核心价值体现在实战导向、循序渐进、完整覆盖和易学易用四个方面,提供从简单算子到融合算子的完整开发样例。文章详细剖析了基础算子、复杂算子和融合算子的设计特点,并展示了学习路径和实际应用代码示例。未来发展方向包括丰富样例种类、完善学习路径、增强工具支持和扩展场景覆盖,该项目将持续为AI算子开发提供重要

放风铃的兔子

多功能OLED屏幕开发样例

此样例演示如何在Pegasus Wi-Fi IoT智能家居套件上使用SSD 1306库驱动OLED屏。

huahaiyi

OpenCV3.0.1源码编译及自带样例工程代码编译

OpenCV3.0.1源码编译及自带样例工程代码编译 详细步骤参见博文:OpenCV3.0.1源码编译及自带样例工程代码编译 =========下面是个人在实际编译过程中遇到问题并解决的经历=========== 按照推荐的博文,在opencv 源码编译好之后,在编译自带样例工程代码时,如果Cmake里的地址设置不正确,可能会遇到问题: 解决方法: 注:图中红色方框这里是的地

地灯

【Nvidia DeepStream. 001】DeepStream-test1样例 逐行讲解版,原来竟如此简单

本文介绍deepstream-test1 样例工程。在Nvidia 官方文档中对DeepStream-test1的描述是一个DeepStream 版本的“Hello World”。 在下图中,展示了deepstream-test1,test2,test3,test4 四个样例。 test1: DeepStream的Hello World。介绍如何基于多种DeepStream 插件来构建一个Gstream 管道。这个样例中输入的是一个视频文件,经过解码、批处理、目标检测,并将检测信息显示在屏幕中。 test

行路南

EasyAR Sense Unity Plugin 样例使用说明

准备工作 准备Unity环境 了解 EasyAR Sense Unity Plugin 支持的系统和Unity 版本,并从Unity官方获取并安装Unity 安装包。 如果你是初次使用,建议你使用Unity官方的长期支持版本。 Unity 2019.4 Unity 2018.4 Unity 2017.4 准备样例内容包 从官网下载页获取EasyAR Sense Unity Plugin的样例内容包。如果要使用样例,需要下载名字中含有 Sample 的发布包。 获取许可证授权 使用EasyAR Sense

励志Boy
评论 2
收藏 已收藏
分享
返回顶部