目录

写在前面

生产上线出现问题

问题1:logger日志没打印报错信息

问题2:日志打印不全的问题

问题3:equals报空指针问题

问题4:还是空指针问题

问题5:json报文字段上送有误

问题6:微服务配置问题

问题7:上线问题

问题8:代码的可读性

写在最后

加油,打工人


写在前面

毕业两年,一直都是做的一些小型的管理系统,对于真正的互联网大项目接触的很少,基本上只有在自己学习的时候才能接触到。

自认为自己掌握的技术已经足够了,可是,最近这堂课,真的是结结实实的让我明白了,其实技术只是其中一回事,经验真的非常重要。

但是最最重要的,还是自己的态度,自己的认真和仔细。

生产上线出现问题

项目开发完了,是springcloud的项目,因为自己这种互联网的项目接触的的确比较少,所以生产出现了很多问题。

问题1:logger日志没打印报错信息

 log.error("sftp上传文件失败");
以上代码有没有出现在你的项目中?如果有,就需要反思一下了。
这种日志打印是不会打印报错的堆栈信息的!!出现问题连找都不知道从哪找!并且只是一串光秃秃的文字打印,到时候生产日志一堆,从哪里找你的日志?
以下是调整:
 log.error("id为{}的任务sftp上传文件失败", id, e);

问题2:日志打印不全的问题

日志打印是非常重要的,这是测试、生产查找和定位问题的关键。

日志一定要在关键位置打,并且携带时间、流水号、提示信息。

这样查找问题一定会事半功倍!

问题3:equals报空指针问题

String name = student.getName();
if(name.equals("张三")){
//xxx
}

如上代码貌似看起来也没什么问题。但是!name如果是null的话,就不可避免的出现空指针了。

以下是调整:

String name = student.getName();
if("张三".equals(name)){
//xxx
}

问题4:还是空指针问题

空指针问题一定要严防!一定要控制在任何可能出现空指针的地方做好判断!

尤其是string字符串操作的时候,一定要谨慎谨慎!

问题5:json报文字段上送有误

有的字段,比如说职业,有的接口是枚举值(0、1、2等),有的接口就是汉字,一定要确认确认再确认!

有的字段,还是拿职业来说,如果送的是汉字,结果自己理解成枚举值,结果落库时字段长度设置少了,就会报数据库的错。

还有,报文字段一定要一一对应好,这个字段该送什么,那个字段该送什么,不明白的一定要问,不要怕打扰别人。毕竟不管怎么样总比生产出问题强。

问题6:微服务配置问题

因为项目使用微服务,所以有多个微服务,导致配置量增多。

每次上线都要检查很多配置项,其中如果不够仔细就会遗漏。所以,每次开发的时候,一定要随手将自己要添加、修改的配置项进行记录,上线的时候做好充分检查。

问题7:上线问题

因为开发人员和上线人员毕竟不是同一个人,所以上线文档要写的详细详细再详细!

其中有一项不详细,就很容易造成生产事故!

问题8:代码的可读性

代码的可读性很重要。可以参考(重构-改善既有的代码设计),这本书虽然比较古老,但是读完之后真的对我受益良多,强力推荐!

写在最后

不管是代码出现bug、生产出现问题,第一件事永远不是想着要甩锅。

是自己的问题就要勇于承担,但是最最重要的就是,要时刻进行反思与总结。

出现问题不可怕,可怕的是一错再错不知悔改!

加油,打工人

记一次重大的生产上线事故,借此反思成长相关推荐

  1. 记一次生产数据库事故

    记一次生产数据库事故 事故起因 事故故事 事故现场 事故起因 最后在做报表,报表的数据产生是直接在只读库上面进行的.但因数据量大需要对表做优化,现行优化方式为简单粗暴的加索引. 另外说明一数据库用的是 ...

  2. 生产安全事故应急预案

    生产安全事故应急预案 1 编制目的 为防止重大生产安全事故发生,完善应急管理机制,迅速有效地控制和处置可能发生的事故,保护员工人身和公司财产安全,本着预防与应急并重的原则,制定本预案. 2 危险性分析 ...

  3. 【安全知识分享】PPTX|生产安全事故案例(54页)(附下载)

    ​摘要:生产安全事故案例(54页) 公众号:安全生产星球

  4. 【安全知识分享】PPTX|生产安全事故应急演练基本规范(AQT9007-2019)(附下载)

    ​摘要:生产安全事故应急演练基本规范(AQT9007-2019) 公众号:安全生产星球

  5. Java实习阶段兼生产上线总结

    生产上线总结与实习代码编写踩坑记录 实习阶段性整理 代码方面 NullPointException 日志 业务方面 总结 实习阶段性整理 想写出好的文章,但是奈何表达能力不行外加技术能力也不行.只能以 ...

  6. 【安全知识分享】DOCX|常见生产安全事故现场应急处置方案汇编(附下载)

    ​摘要:常见生产安全事故现场应急处置方案汇编(附下载) 公众号:安全生产星球

  7. [转]记一次构建SaaS平台项目失败后的反思

    记一次构建SaaS平台项目失败后的反思 前言: 笔者从2017年起开始着手将公司现有的软件系统改造成多租户模式,以降低整个系统的运营成本.但最后这个项目以失败告终.今天,我将对这个SaaS项目是如何走 ...

  8. 记一次生产上线的问题

    昨天项目上线,在完成验证之后,我深吸一口气,完美上线,未出任何问题.然而半个小时之后,收到运维团队发过来的告警,说是有一台服务器的几个端口未被探测到.当时听说之后,我心中一紧,不对呀,我们服务器之后都 ...

  9. 记一次重大的生产事故

    高高兴兴上班来,突闻任务大面积报错,经过一番排查,发现服务器上某个用户不见了. 这下可坏了,某azkaban上的所有任务都是切到此用户执行,而且此用户下还有大量的crontab任务,全部都执行不了,包 ...

最新文章

  1. 舒工给您娓娓道来:2019-nCoV,教室布局筛查追溯系统算法解密!
  2. Python中常用的一些操作总结(未完待续)update @ 2017-5-18
  3. 【 Notes 】RFID Preliminary Introduction
  4. jQuery Ajax调用后如何管理重定向请求
  5. 方向梯度直方图(Histogram Of Gradient)详解
  6. [机器学习]超参数优化---贝叶斯优化(Bayesian Optimization) 理解
  7. 《数学之美》—PageRank
  8. html中背景渐变斜着渐变,CSS3 斜向渐变背景
  9. vue从零搭建一个前中后台权限管理模板
  10. zstuACM 问题 H: 超级跳跳跳1281
  11. 京东话费充值系统架构演讲读后感
  12. python 微信自动回复小程序
  13. OA办公系统是如何提升企业办公效率的?
  14. 将具有默认值的列添加到 SQL Server 中的现有表
  15. 红帽linux6.4安装教程,RedHat6.4图文安装教程---Minimal版(详细版)
  16. 记录Android开发艺术探索阅读
  17. vue + vtkJs + itkJs进行dcom影像预览
  18. html小人动画效果代码,使用CSS3各个属性实现小人的动画实例代码
  19. VSCODE使用技巧:解决每次推送代码都要输入用户名密码的繁琐过程(非ssh)
  20. vue2.5+在vue-cli3.0中使用

热门文章

  1. OutOfMemoryError: GC Overhead Limit Exceeded错误处理
  2. 前后端分离开发,日志应该如何进行记录,在出现问题的时候,方便定位问题
  3. python多线程网络编程_python网络编程之线程
  4. python服务端开发调试日志系统_Python:如何进行延迟调试日志记录
  5. async js 返回值_图文讲解浏览器执行JS过程中的微任务和宏任务
  6. python热身教程_我回来拉,Python热身篇:)
  7. python tuple类型,Python基础数据类型(四) tuple元祖
  8. java字符串的用法_Java字符串的重要方法的使用实例
  9. python 读png的值变了_python – 为什么scipy.ndimage.io.imread返回PngImageFile,而不是值数组...
  10. 特征预处理--长尾分布的处理方案