688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023年福大-软件工程实践-w班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 课程回顾与总结 个人技术总结 |
| 其他参考文献 | 无 |
之前回答:
我认为一个足够好的软件除了bug尽量少,有好的用户体验和使用流畅性之外,还需要关注这款软件所要解决的痛点是否明确以及是否解决了对应的目标用户痛点,给用户带来实际的便利
现在的回答:
在之前回答的基础上补充:足够好的软件还应该具备好的拓展性和平台适应性以及代码的易读性。这是在软件工程实践中的alpha, beta冲刺中体会到的。
现在和之前的回答没有区别:
如Getbarkeep,Crucible等代码审查工具,这些工具不够智能,审核工作的人工部分仍然很繁杂,ChatGPT为代码复审带来一种新的解决方法或许会减少一些审核工作的人工部分
同样的回答:
我希望我的医生是c类,我希望我未来作为软件开发者可以结合abc三类的优点,对于一成不变的知识可以依赖搜索引擎或书籍,专注于工作的创造性方面
之前的回答:
这取决于软件本身的定位,如果是作为普通的以营利为目的的商业软件,首先应该满足占用户主体的那部分用户的需求以留住更多用户,对于少数用户的特殊需求应尽量满足;如果是一些性命攸关软件,则应更多的考虑到全体用户的需求
现在的回答:
在之前的回答上补充:对于盈利为目的的软件如果能更好的考虑到少数人群的利益,则可以赢得较好的口碑从而达到更好的盈利。
之前的回答:
不是,软件工程充分发展会让软件开发工作变得简单易行,软件使用变得简便,但是软件系统本身会变得更加复杂,因为软件工程可以让繁杂整体工作变成简单的部分工作,而工作变得简单就会使得开发者追求更复杂,精细的软件结构从而使软件的功能更强大
现在的回答:
不是,软件工程的目的是为建造高质量的软件提供方法,软件系统的复杂性和可行可复制的方法之间没有很直接的关系。
学习了如何创建需求文档,学习了如何和队友和用户进行协商,体会到了实现妥协和(尝试)没有歧义的获取需求的重要性。
体会到了UML在实际工程中的重要性,UML可以把模糊的概念清晰化,并暴露出不成熟设计中存在的问题,加深了对面向对象设计与分析知识的理解。
能更加熟练的使用SpringBoot以及其他的一些开发工具,能结合前端代码进行故障排查,了解内网穿透工具的使用,能更加熟练的操作云服务器,熟练的在linux服务器上配置开发环境。
能更加高效的找出故障的原因,体会到开发环境和生产环境的不同会导致一些不易排查的bug。学习了测试用例的编写和自动化测试工具的使用。
学习到了SpringBoot项目和vue项目的部署
本次团队作业我担任的后端开发职责。在团队协作中我最擅长的技术是:vue的代理服务器以及vue服务器和后端服务器之间的http协议引发的跨域问题。
技术博客:关于前后端分离项目的跨域问题
概述:
首先前端和后端服务器由于Ip地址和端口不同会导致前后端交互出现跨域问题
在常规情况下,前后端部署在同一服务器上,只要vue项目中配置代理服务器或后端在响应报文中加入相应响应头即可解决。
在vue项目打包之后,vue项目的代理服务器会失效,这时如果前后端部署在不同的服务器上,会出现后端不能在前端服务器上设置cookie,在通过session来维持用户登录状态的后端服务的视角中,用户就是一直未登录状态。
对于复杂跨域请求会出现前端请求cookie不能携带的情况
解决方法是:前后端部署在同一服务器上,axios的配置中要设置withCredentials字段,在是SpringBoot项目中不能使用常规跨域配置而是使用特殊的配置。同时SpringBoot服务器上要检测请求方法,如果是OPTIONS方法则要进行特殊判断以放行复杂跨域请求。
对于个人开发,结对开发和团队开发,你有什么开发心得和新的思考
软件工程的目的是为建造高质量的软件提供方法,
感谢你的不断总结改进。 你可以直接到原来的问题帖子中回答原来的问题,这样后续的读者也会获得收获。