生产上线总结与实习代码编写踩坑记录

  • 实习阶段性整理
    • 代码方面
      • NullPointException
      • 日志
    • 业务方面
    • 总结

实习阶段性整理

想写出好的文章,但是奈何表达能力不行外加技术能力也不行。只能以朴素的语言记录自己的实习过程,将自己踩过的坑记录下来。

代码方面

本来准备先说别的,但是感觉其他的有点不好写,还是先从稍微擅长的地方入手吧。

  1. 由于是第一次实习,还有经验也不足,有时候感觉自己写的一塌糊涂。简单说一下最近踩的坑吧。

NullPointException

  1. 用java的都知道java最著名的异常是java.lang.NullPointException,不用java的也有很多知道这个异常。以前对空指针感触还不深,现在才是真真切切的体会到了什么是空指针,以及他的发生频率。
  2. 以前自己写代码的时候就是写写写,一路狂飙突进。空指针产生的原因就是一个空引用调用方法而导致的。当时就是想着他一定不会为空,自己写的代码自己清楚。
  3. 以前的思维就是我自己创建的对象,它一定不为空,所有放心大胆的写,但其实很多的时候并不是我们创建的对象。我们可能是查询的一个数据库实体,如果这个实体没有查询到,再去获取这个空实体去获取数据库中的数据就会出现空指针异常。
  4. 这里也只是列举一个场景,还有其他的很多场景都会出现。
  5. 所以,对于查询操作,不明确的对象,一定一定要判空,避免出现空指针。

StudentDo studentDo = setudentMapper.selectById();
List<StudentDo> studentList = setudentMapper.selectByIds();if(studentDo!= null){studentDo.getName();
}if(Objects.nonNull(studentDo)){studentDo.getName();
}if(CollectionUtils.isNotEmpty(studentList)){studentList.get(0);
}Optional optional = Optional.ofNullable(studentDo);
optional.ifPresent(student-> System.out.println(student.getName()));......

日志

  1. 日志还是很重要的,对于排查问题就是很有必要的。加快排查问题的速度。
  2. 日志级别要符合业务。这次上线就打错了日志。对于查询操作,还有一些无关紧要的数据,没有数据我直接打了error级别的日志,最后发布上线之后阿里云一直在提示日志告警,但其实有些数据是无关紧要的,不会阻塞流程。

业务方面

  1. 对象一些查询类操作,通常情况下,对于查询不到的数据,不应该抛出异常,阻塞整个流程。而是返回空的数据。
  2. 也是对于一个查询方法来说,例如一个service层的getByIds方法,除了能够正常返回数据之外,不应该对他传进来的idList有任何的修改。因为在java中对象类型都是引用传递,如果调用了这个getByIds之后其中的idList发送了改变,后续idList传递到别的方法中继续使用,就有可能出现预想不到的情况。
  3. 也是对于查询,从业务角度思考,是否需要阻塞流程。
  4. 对于多种情况下,要将每个分支的逻辑整理清楚。
  5. 遇到一个问题的时候,可以先自己整理一下思路,用一段描述性的语句描述出来,可能在这个过程中自己就找到了这个问题的答案,或者发现这个问题根本就不存在。

总结

  1. 其实感觉说了很多废话,有一些零星的想法,但是又没有一个完整的思路。不能很好的表达出来。多多提升自己的沟通能力和表达能力吧。
  2. 老生常谈,写代码之前先思考整体的设计,流程,业务场景。同时也是希望自己可以做到。
  3. bug的解决思路:链路追踪,从这个请求的发起,微服务之间的调用,到最终的响应,bug的发生就在其中,有时候可能是发生在程序中,有时可能是发生在两个节点的关联上。通过链路一环一环的去追踪,注意细节,定位问题。
  4. 上线还是挺紧张,挺慌的,担心一上线直接就崩了,那就凉凉了;放平心态,上线前提交的代码要谨慎。及时和领导沟通。
  5. 技术也需要提高,有很多的东西也还是技术限制了。
  6. 挺感谢一个带我们的前辈的,帮我解决了很多问题,不过后面也还是要能够多自己独立解决问题;还有就是我们的上级,亦师亦友。一起工作的同事,都给予了很大的帮助。
  7. 这段时间的编码,还有最近上线,学到了不到东西。
  8. 后面继续进步…

Java实习阶段兼生产上线总结相关推荐

  1. java实习报告范文

      篇1:java实习报告范文一.前言 实习时间:20_年02月07号---20_年06月1号 实习地点:河北中信联信息技术有限公司软件开发实习生 实习目的:通过实习,培养学生树立理论联系实际的工作作 ...

  2. 优秀java实习报告范文5篇

      优秀java实习报告范文(一) 一:实习介绍 1)实习题目 学生信息管理系统的设计与开发 2)实习目的 <Java程序设计>课程是电子商务专业的一门专业必修课程,特针对此课程进行为期三 ...

  3. JAVA 实习面试题大全必看

    JAVA 实习面试题大全必看 JavaSE 88 基础语法 9 Q1:简单说说Java有哪些数据类型 答:①分为基本数据类型和引用数据类型.②基本数据类型包括:数值型(byte.short.int.l ...

  4. 从零基础到拿到网易Java实习offer,我做对了哪些事

    点击上方蓝字可以订阅哦! 作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右 ...

  5. 关于java实习心得总结(十篇)

    关于java实习心得总结(篇一) 初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么TurboC,VisualC++好用,什么JA_HOME,CLASSPATH,虚拟机 ...

  6. java实习之新手村作战

    简介 以前在找工作的时候,看到招聘需求底下评论感觉特别有意思,这边和大家分享一下. 笔试面试---->注册游戏账号 实习阶段---->新手村 工作年限---->游戏时长 项目经验-- ...

  7. 华清远见-重庆中心-JAVA基础阶段技术总结

    系列文章目录 第一章 华清远见--重庆中心-JAVA基础阶段技术总结 第二章 文章目录 系列文章目录 文章目录 前言 一.关于java 1.发展历程 2.编程开发 3.java架构 4.java的特点 ...

  8. java实习心得总结(八篇)

      java实习心得总结(篇一) 此次只实训了短短的三周.虽说时间很短,但其中的每一天都使我收获很大.受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对java有了全新的认识,在实 ...

  9. java - 第一阶段总结

    java - 第一阶段总结 递归 递归:能不用就不用,因为效率极低 package over; //递归 public class Fi {public static void main(String ...

最新文章

  1. APP之红点提醒三个阶段
  2. 用它调试线上 bug,真得劲 | webconsole
  3. 速计算机科学,计算机科学速成课30:万维网【视频】
  4. mac 终端里进入mysql和退出
  5. php缓存注入,利用Thinkphp 5缓存漏洞实现前台Getshell
  6. 8. PHP 5 echo 和 print 语句
  7. java informix_java informix
  8. 一篇文章彻底搞懂JVM常见垃圾收集器算法、常见收集器、CMS三色标记等(深度剖析)
  9. 查看twitter浏览记录_如何查看Twitter提及的通知,但不喜欢或转发
  10. 如何通过TotalControl系统设置,提高电脑操作手机速度(教程)
  11. L2-3 清点代码库 (25 分)(C/C++)
  12. cmd命令打开文本文档_win10自带照片应用打开太慢,改用win7照片查看器
  13. 软著申请提交审核一般时间是60-75工作日,软件著作权登记申请是可以加急的,加急是20-30工作日
  14. 配电室环境远程监控物联网方案
  15. js中单引号和双引号
  16. 什么是linux嵌入式系统,嵌入式系统是什么
  17. pdf合并成一个pdf顺序不对怎么办?为什么pdf合并完顺序乱了?
  18. 企业岗位申请表-Word简历可编辑下载
  19. 数据结构修炼第二篇:顺序表和链表
  20. python开发面试简历分享_Python面试简历分享。

热门文章

  1. 表情包警告。如何使用多线程上厕所
  2. 2014501能运行的android系统,Android中installd进程存在的意义
  3. redis+mysql缓存
  4. HTML常用标签(二)
  5. iPhone状态栏中为什么时间显示为蓝色图标
  6. SpringUtil获取Spring容器对象
  7. 高通再诉苹果侵犯三项专利 索赔数千万美元
  8. IDEA 误删除分支
  9. C语言学习(八)整数(int、short、long)的具体介绍、不同进制表示、输出,sizeof、unsinged的使用
  10. 手机打开游戏显示无法连接服务器,玩手机游戏提示无法连接服务器