| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 记一次全新项目、全新团队、全新迭代开发问题总结 -> 正文阅读 |
|
[Java知识库]记一次全新项目、全新团队、全新迭代开发问题总结 |
目录 写在前面新公司入职一个月了。 好了,本文不是来煽情的,是来总结问题的。在我看来,这次新工作的交接,其实有太多的问题了,引以为戒。 开发背景springboot+vue(前后端分离),我做后端。 我没做过前后端对接的项目,刚开始以为应该自己会很容易接手,实际上却是眼高手低,结果真的仅仅只是差强人意。 遇到的问题开发规范开发规范不用说了,命名方式、代码风格、注释风格、日志风格等等等等。 每个公司规范虽然大差不差,但是仍有细节方面不一样。 新公司新框架,规范问题更是需要自己来调整,有时候更得需要打扰公司前辈来协助。 mybatis重复造轮子问题众所周知,mybatis一个痛点就是每个新功能的增删改查都需要创建一套Controller、Service、Dao、Domain、Mapper,尤其是Domain和Mapper,全都是重复造轮子。 我刚入职,光一个功能的增删改查,加上修改一些开发规范,用了两天时间。 于是乎,我搞了一个自动生成增删改查代码的小程序。 手写简易的MyBatis代码自动生成器,适配自己的项目,再也不用重复造轮子了_秃了也弱了。的博客-CSDN博客 空指针空指针问题非常严重且致命! 不管是对象、字符串等等,执行任何一个操作的时候,都要考虑空指针问题。 最最离谱的一个空指针问题就是,int数据类型拆箱装箱时报的
类似这样,实体类A中字段类型为Integer,实体类B中字段类型为int,结果A中字段为null,赋值给B中字段,就报了空指针。 SQL条件多表关联时,一定要注意sql条件!缺少任意一个条件可能就会导致致命的问题! 尤其是涉及count、sum等等,还需要注意null的字段。 做管理系统,查询性能真的很重要,注意sql的关联条件,注意大表驱动小表的定律,注意防止索引失效,注意子查询的效率,注意java循环中尽量不能使用sql等等。。 以及自己?刚学到的 mysql实现upsert(没有就新增,有就修改)_秃了也弱了。的博客-CSDN博客_mysql的upsert MyBatis的collection和association的使用详解,我们都懂啦_秃了也弱了。的博客-CSDN博客 if判断要加足不管是空指针,还是一个方法多地用,都需要用if来隔绝一切可能会发生的坏事。 不要将某些字段某种场景并不会用到,也让它执行到!因为你不知道它里面藏着多少坑(如上拆装箱空指针问题,一种场景有值另一种场景为null,谁能想到一个实体类中的字段,竟然用了基本数据类型的……)。 测试要充分由于时间比较紧张,中途又修改了部分重要的需求,所以时间更加紧迫。 一直在赶进度,测试非常不充分,都是公司前辈帮忙测的,所以问题非常多,改了测、测了改,磨光了自己的耐心与信心。 其实bug出的多,不光对接我的前端头疼,我自己也很头疼…… 所以,发布一个接口的时候,能多测测就多测测,不要一味的图快,正确性真的很重要。 接口设计要考虑好这边都是接到原型,后端出接口设计,前端来对接。 所以,后端接口要设计好,缺字段少字段的,联调的时候也会很浪费时间。 同时也要把握好自己的开发节奏,不能手忙脚乱,出了问题或者被催工之后,一定要冷静处理,拆东墙补西墙的做法不可取。 提交代码要谨慎提交的任何一句代码,都不能影响主流程! 因为项目中打印的日志全都是sql语句,没有controller入口日志、没有uri日志,除了mybatis的sql日志,其他什么也没有。 所以在服务器上查日志是一件很痛苦的事情。 于是,我耍了个小聪明,使用AOP拦截了所有的Controller,打印了一下入参、出餐、uri、登陆者,简单测了一下就提交了代码。 问题来了,测试环境直接崩溃了,应该是部分请求的参数解析不了,大量报500错误,就让人很难堪,最后紧急修补,才导致了这场闹剧。 所以!提交的代码一定要谨慎谨慎再谨慎,千万不能影响到主流程! 心态很重要不管遇到什么事情,我相信一个成熟的人永远第一时间是选择担当+面对,而不是逃避+偷懒。 就算再难再复杂、再不熟悉的事情,其实只要用心,一切都会迎刃而解。 心态很重要,沉下心来,勇敢面对挑战,积极面对自己的不足,微笑面对身边每一个可爱的人! 融入团队而不是让团队融入你一个软件的产品,总是会有一个迭代的过程,而自己也只是一个小小的开发人员。 刚拿到公司代码权限的时候,自己就已经将原公司的自己代入了新公司,不禁在心里发出了疑惑:为何定时任务不与业务代码分离开?为何很多功能要自己开发而不是用早已成熟的开源框架?为何这样为何那样……当然也有惊艳的地方,感慨公司的架构真的很厉害。 也许公司有自己的考虑,也许是自己多虑了,其实没有完全了解一件东西的时候,是没有发言权的,那就让新公司、新的小伙伴、新的我一起进步吧~ 希望不会磨灭自己对技术的热情与初衷。 写在最后有错误,我接受,知错必改。 有挑战,我也接受,来者不拒。 有喜乐,同样接受,工作亦是生活。 最后,愿一切都好,顺利转正。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:49:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |