摘要:
A panic should always be a last resort, and even then consider a better option! Logging errors with context (cause and message) Expose errors as metri 阅读全文
摘要:
前言 虽然都是些小问题,但都可以延申。 问题 = 和 := 的区别? := 在golang中是声明+赋值 = 只是单纯的赋值 var a int a = 10 b := 10 声明的作用是什么呢?如果没有声明,没有类型这个概念,会有什么坏处和好处。本质上不都是内存上的地址,我们的声明是在语法词法分析 阅读全文
摘要:
尽量分解问题,把子问题限定在单个函数/模块中 调用任何一个模块时候都假定它是有问题的,并思考如果对方出现问题自身会有什么影响 把2思考的结果记录下来,进行分类。 这三点就可以整体表现出 bug 时可以快速推测问题可能在哪里。 假设。 by 云风 阅读全文
摘要:
提前埋伏。 柴大推荐: https://cuelang.org/ 真心没感觉云原生有多么高深实用,希望它别没两年就凉了。 后浪都太强了,我要加倍努力了。 补充一个垠神的观点。 https://www.yinwang.org/blog-cn/2017/05/25/dsl 阅读全文
摘要:
TCP连接建立握手 TCP慢启动拥塞控制 数据聚集的Nagle算法 用于捎带确认的TCP延迟确认 TIME_WAIT时延和段端口耗尽 HTTP服务高性能需要掌握的基础。 阅读全文
摘要:
官方文档 https://github.com/golang/go/wiki/TestComments 断言 测试的时候尽量避免使用断言,下面是常用的断言例子 assert.isNotNil(t, "obj", obj) assert.stringEq(t, "obj.Type", obj.Type 阅读全文
摘要:
慢就是快 经过这段时间的实验,我发现我如果对一件事的周转时间设置为一周,我大概率会在一周内完成,或者多花一点时间反正是一定会完成的。 如果我定的是几天,我很难完成其实,会直接略过。 慢就是快,我还比较年轻,稳扎稳打是最好的风格。 不要功利 多做总结 阅读全文
摘要:
( •̀ ω •́ )y 给自己机会,让自己跟这个世界脱节,好好感受一下自己真正的追求。 一个人沉沦在一个循环里太容易了,如何走出答案却不在循环之中。 我曾有段时间丝毫不想学习,即使每天都明白该学习,脑子里也在想某某某还在学习你在玩,要死啦,很痛苦,但是不会行动。 当我选择跳出循环的时候,神奇的事是 阅读全文
摘要:
数据竞争 多个goroutine对同一个变量进行修改会发生数据竞争,因为goroutine其实就是借助线程来实际操作,而线程又是共享同一进程的地址空间,所以我们要尽量避免竞争代码。 写者无意,竞争却不这么认为,所以要检测。 我们只需要在执行测试或者是编译的时候加上 -race 的 flag 就可以开 阅读全文