快乐冲浪与生活

多体验、多体会、多体悟

0%

当发送给数据库的语句过大时,会报如下错误:

1
panic: Error 1105: Parameter of prepared statement which is set through mysql_send_long_data() is longer than 'max_allowed_packet' bytes

从报错中可知,需要修改 max_allowed_packet 选项的值。

Go 中 map 是键值对的关联容器(Associative Container),可以存储不同类型的键值对,其中键的类型需要满足可比较(==)特性。

面试的时候问到了一个关于 go Slice 的问题,即为什么在 a[i:]i 的取值可以是 a 的长度。平时开发中也是这么用的,但没太深入的了解,所以在这篇文章中对其进行一些探讨。

从网络上下载文件是开发过程中常用的需求,常规流程是:(1)发送请求;(2)接收响应并读取响应体内容;(3)保存到本地文件。本文包含的两个例子分别来自于参考 [1]参考 [2],在此基础上做了少量的修改。

在 Web 开发中,常常需要对请求信息进行记录,形成日志以便于后期评估应用的性能。请求信息通常包含客户端地址、请求的 URL、请求时间及请求执行时间。在程序中,可以以同步或异步的方式完成这一需求。同步方式是指请求信息写入日志文件后才返回数据给客户端,异步方式则是在返回数据之前以新线程或进程完成对请求信息的记录。开源的日志包有:

  1. Zap :出自 Uber 团队,以高性能著称;
  2. Zerolog :以易用性著称,支持 7 种日志级别;
  3. Logrus :兼容标准日志包格式,也是本人常用的日志包;
  4. apex/log :受 Logrus 启发,简化操作后的 Logrus;
  5. Log15 :日志可读性强;

5 个日志包的详细介绍可以看 《5 种结构化 Go 日志包对比分析》 这篇文章。