IT@程序员猿媛

不写日志的程序员活该加班

2019-09-21  本文已影响0人  祥哥去哪里

前言:

程序员的加班我总结为三种:

  1. 公司压榨你,要求你加班。或者安排非得加班才能完成的工作.
  2. 重要业务,为了不影响用户使用,必须在深夜上线。
  3. 自己写的代码质量低,需要花时间找bug,改bug。然后改bug的时间又影响到了后面的开发任务。这样就进入的恶性循环

今天我们就来讨论下第三种加班的解决之道。写日志

如果没有日志

这里指的日志是指,在代码中通过日志工具,将一些有用的信息打印到日志文件中。(当然存储的形式不局限于文件)

我知道有很多使用脚本语言开发的同学,在开发中,没有写日志的习惯。因为脚本语言的特性,不用编译,不用打包。想调试某处代码,直接上可以打印输出出来看结果,非常的方便。有的甚至断点都不用,一样可以把代码写好。

但是不写日志有几个坏处。这也是我亲身经历过的。(没错,我曾今也一个是不写日志的弟弟)

  1. 用户在操作中,遇到了报错。如果他不向你反馈的话。开发者根本就不知道这个错误的发生。更不会把这个问题排查出来修改。

我们知道现实中的用户遇到这种情况,肯定是不会给你反馈的。很有可能因为一个错误而失去这个用户。这对公司和产品都是很大的损失

  1. 遇到偶发问题,无法定位原因。

相信大家一定遇到过这样的情况。一个接口或者一个功能报错了。但是一刷新又不报了。反复测试都没有出这个问题。但是10次中又偶尔会有一次。这样的问题是最难定位的,也会浪费开发者很多时间。

  1. 第三方接口,无法控制。

有时候我们不得不依赖第三方接口做一些事情。当我们某个依赖了第三方接口的功能异常时,我们也无法很迅速的定位问题是在第三方还是我们自己的业务代码。同时,如果是第三方的问题,我们也无法提供什么有用的信息给到第三方,来协助他们解决问题

如何写日志

我相信无论是做java开发还是php这样的脚本语言都是有非常多的优秀的日志工具来协助我们写日志的。下面我们以我们常用的thinkPHP框架和java的Slf4j为例子简单介绍下

thinkPHP :
tp为我们提供了非常好用的日志工具,封装到\think\Log类中。只需要调用一个方法就能很简单的写出一条日志

Log::record('测试日志信息,这是警告级别','notice');

Slf4j
首先引入maven

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
</dependency>

在需要的日志的类上打上 @Slf4j注解这时候也只需要一行代码就能完成日志打印

log.warn("测试日志信息,这是警告级别");

如果ide报错说没有log这个类的时候。需要在ide中装一个lombok插件,就不会报这个错类

日志分级

上文其实已经提到了日志级别。日志级别其实是有一个比较通用的规范。php比较流行的日志规范是PSR-3。java的其实也差不多。大体上是通用的
规范中,将日志分为 logdebuginfonoticewarningerrorcriticalalertemergency

开发者,可以根据需要去确定日志的级别。这样就能更轻松的检索日志。还可以通过不同的日志级别去找到bug或者优化的方向。

结语

今天的分享没有很难的知识点,都是一看就能懂的。只是介绍一个好的开发习惯。一个好的开发习惯真的能给你带来很高的效率提升,我就是这样踩着坑过来的。如果这篇文章对你有帮助的话,请点个赞。要是能加个关注就更好了。
最后,愿天下没有加班~

上一篇 下一篇

猜你喜欢

热点阅读