golang怎么会变成这么火

程序员始终在寻找一种更加高效,安全的开发语言,高效表现在开发高效和运行高效,安全在于程序要要较少的去关注底层安全问题。当然还有其它的原因,比如:ide,构建,部署难易程度。简单说就是开发者体验。阅读全文→

标签: golang

smarteng 发布于 2021-09-23 14:11

如何在 Go 中优雅地传递、返回、暴露错误方便追溯

在后台开发中,针对错误处理,有三个维度的问题需要解决:

  • 函数内部的错误处理: 这是一个函数在执行过程中遇到各种错误时的错误处理。这是一个语言级的问题
  • 函数/模块的错误信息返回: 一个函数在操作错误之后,要怎么将这个错误信息优雅地返回,方便调用方(也要优雅地)处理。这也是一个语言级的问题
  • 服务/系统的错误信息返回: 微服务/系统在处理失败时,如何返回一个友好的错误信息,依然是需要让调用方优雅地理解和处理。这是一个服务级的问题,适用于任何语言阅读全文→
标签: 错误处理

smarteng 发布于 2021-09-23 14:08

一个Go语言HTTP包Client使用的坑

一句话总结

Go 的 http 包默认不指定请求超时,允许外部服务劫持你的 goroutine
连接到外部服务时,始终需要自定义 http.Client ,至少要自定义超时时间。阅读全文→

标签: http

smarteng 发布于 2021-09-18 20:05

Go CodeReview关注点

Go CodeReview关注点

Gofmt

在代码上运行gofmt来修复大部分形式化的代码风格问题。现在基本所有的Go项目代码都会使用gofmt。下面讨论的都是这个工具无法解决的代码风格问题。
另外一个选择是使用goimports,它是gofmt的超集,额外提供了自动删除或导入的功能。阅读全文→

标签: code-review

smarteng 发布于 2021-09-18 19:45

Golang读取写入Excel文件

Golang读取写入Excel文件

日常开发中会遇到处理Excel文件的相关操作,几乎所有的系统都有数据报表下载,一般的情况我们都会采用csv格式来下载数据,原因有

  • 写csv文件比较方便,大数据量也没有什么问题。
  • csv文件用微软Excel打开操作也非常的方便,几乎跟Excel文件没有区别

但是在有的时候还是需要用Excel文件,例如对文档数据进行格式化,如果用csv就无能为力了。阅读全文→

标签: excel xlsx

smarteng 发布于 2021-09-18 16:29

如何从书中掘金

读书是一个ROI(投入产出比)极高的事情,可能再也找不到比读书ROI更高的事情了。
从投入看,我每月花在读书上的钱超过1000,这样算下来每年花在读书上的钱超过1万。但是这些年,无论工作机会、还是投资收益、还是写作收益都与读书密切相关。不算间接收益,只算直接收益,读书这件事上我的ROI至少是100倍起,即每在读书上花1万元,获得直接收益超过100万。如果算上间接收益和递延的「发酵收益」,更是高的出奇。阅读全文→

标签: 读书

smarteng 发布于 2021-09-16 21:27

坚持21天养成一个习惯

写在前面:
有些辉友在公众号后台向我留言说,他们想要改变,但不知道如何行动起来;即使行动起来,也不知道如何养成习惯。
如何养成好习惯,是将一件事情坚持21天吗?今天再来分享一下这篇旧文,有关我对「习惯」的思考,希望给你带来启发。阅读全文→


smarteng 发布于 2021-09-16 21:09

卡片式写作

写在前面:

我的公众号后台以及知识星球上经常有辉友提到,也想和我一样进行日更写作,但不知道写什么,怎么写。

写作其实没有大家想象中那么难。今天再来给大家介绍一下我常用的一种写作方法——卡片式写作。虽然这篇文章最初写于2019年,不过到现在我还在采用这种方法来完成公众号的更新,并深受其益。阅读全文→

标签: 写作

smarteng 发布于 2021-09-16 21:07

Go单测 mock数据库测试

这是Go语言单元测试从零到溜系列教程的第2篇,介绍了如何使用go-sqlmock和miniredis工具进行MySQL和Redis的mock测试。
在上一篇《Go单测从零到溜系列——1.网络测试》中,我们介绍了如何使用httptest和gock工具进行网络测试。
除了网络依赖之外,我们在开发中也会经常用到各种数据库,比如常见的MySQL和Redis等。本文就分别举例来演示如何在编写单元测试的时候对MySQL和Redis进行mock。阅读全文→

标签: 测试

smarteng 发布于 2021-09-16 21:03

Electron 12.0 官方文档-辅助功能

Electron 12.0 官方文档-辅助功能
这里先说一下辅助功能。阅读全文→


smarteng 发布于 2021-09-16 20:50

go语言编写Web程序

  1. 简介
    这个例子涉及到的技术:
  • 创建一个数据类型,含有load和save函数
  • 基于http包创建web程序
  • 基于template包的html模板技术
  • 使用regexp包验证用户输入
  • 使用闭包阅读全文→

smarteng 发布于 2021-09-16 20:25

我们能否用碎片化时间写一本书

昨天我在听《禅与摩托车维修艺术》一书时,注意到这个版本的末尾处,讲述了此书酝酿、写作和出版的过程。这就像我们在吃饭时,过去只知道品尝成品的味道,但从来不知道烹饪的过程一样。一旦我们有机会亲眼旁观烹饪的过程,我们在吃这道菜时一定会有不同的感受。
我注意到一个细节,原来这本超过20万字的哲学作品,居然是用超过3000张卡片写成的。我计算了一下,平均每张卡片的字数是60多。这着实让我震撼,原来这样一个杰作,也是用「碎片」积累而成的。虽然不知道作者罗伯特·波西格是否用经典的「卡片式写作法」完成本书,但仅仅是知道本书的原稿是几大箱的卡片构成,就足以令我震撼。阅读全文→

标签: 写作

smarteng 发布于 2021-09-16 12:33