IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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知识库]记一次全新项目、全新团队、全新迭代开发问题总结

目录

写在前面

开发背景

遇到的问题

开发规范

mybatis重复造轮子问题

空指针

SQL条件

if判断要加足

测试要充分

接口设计要考虑好

提交代码要谨慎

心态很重要

融入团队而不是让团队融入你

写在最后


写在前面

新公司入职一个月了。
同刚毕业入职一样,带着恍惚、憧憬,以及对未来、对新伙伴的期待心情,入职了。
全新环境,全新框架,全新制度,全新朋友……什么都是全新的,只有自己还是旧的自己。
所以,很多东西需要时间来磨合,需要时间来融入。

老规矩,每当迎接一个挑战的时候,不管是搞定了它或者是被它搞定,总归是要做一个总结的。

好了,本文不是来煽情的,是来总结问题的。在我看来,这次新工作的交接,其实有太多的问题了,引以为戒。

开发背景

springboot+vue(前后端分离),我做后端。

我没做过前后端对接的项目,刚开始以为应该自己会很容易接手,实际上却是眼高手低,结果真的仅仅只是差强人意。

遇到的问题

开发规范

开发规范不用说了,命名方式、代码风格、注释风格、日志风格等等等等。

每个公司规范虽然大差不差,但是仍有细节方面不一样。

新公司新框架,规范问题更是需要自己来调整,有时候更得需要打扰公司前辈来协助。

mybatis重复造轮子问题

众所周知,mybatis一个痛点就是每个新功能的增删改查都需要创建一套Controller、Service、Dao、Domain、Mapper,尤其是Domain和Mapper,全都是重复造轮子。

我刚入职,光一个功能的增删改查,加上修改一些开发规范,用了两天时间。

于是乎,我搞了一个自动生成增删改查代码的小程序。

手写简易的MyBatis代码自动生成器,适配自己的项目,再也不用重复造轮子了_秃了也弱了。的博客-CSDN博客

空指针

空指针问题非常严重且致命!

不管是对象、字符串等等,执行任何一个操作的时候,都要考虑空指针问题。

最最离谱的一个空指针问题就是,int数据类型拆箱装箱时报的

Integer i = null;
int j = i;

类似这样,实体类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错误,就让人很难堪,最后紧急修补,才导致了这场闹剧。

所以!提交的代码一定要谨慎谨慎再谨慎,千万不能影响到主流程

心态很重要

不管遇到什么事情,我相信一个成熟的人永远第一时间是选择担当+面对,而不是逃避+偷懒。

就算再难再复杂、再不熟悉的事情,其实只要用心,一切都会迎刃而解。

心态很重要,沉下心来,勇敢面对挑战,积极面对自己的不足,微笑面对身边每一个可爱的人!

融入团队而不是让团队融入你

一个软件的产品,总是会有一个迭代的过程,而自己也只是一个小小的开发人员。

刚拿到公司代码权限的时候,自己就已经将原公司的自己代入了新公司,不禁在心里发出了疑惑:为何定时任务不与业务代码分离开?为何很多功能要自己开发而不是用早已成熟的开源框架?为何这样为何那样……当然也有惊艳的地方,感慨公司的架构真的很厉害。

也许公司有自己的考虑,也许是自己多虑了,其实没有完全了解一件东西的时候,是没有发言权的,那就让新公司、新的小伙伴、新的我一起进步吧~

希望不会磨灭自己对技术的热情与初衷。

写在最后

有错误,我接受,知错必改。

有挑战,我也接受,来者不拒。

有喜乐,同样接受,工作亦是生活。

最后,愿一切都好,顺利转正。
?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-27 11:11:09  更:2022-04-27 11:12:43 
 
开发: 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-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码