Go工程化08 - 错误处理最佳实践先总结一下,在日常开发工作中,我们是怎么使用panic和error的。 panic最佳实践 在程序启动时,出现明显的配置错误可以直接panic,防止错误的配置产生错误的数据 在程序启动时,如果关键组件启动失败就可以直接panic,比如mysql和redis连接错误 在web框架的入口处,都会加recover避免程序panic直接退出程序 不使用panic和recover做常用的错误处理 频 2022-12-04 Go进阶 > 02. Go 工程化 #Go #工程化 #Error
“有用之用”还是“无用之用” -#4这是 Suncle Lab 第 4 期,我会在这里更新区块链、技术、金融、旅行和个人成长相关的内容。每期都会同步发布在我博客,欢迎你邮箱订阅,这样就可以第一时间收到更新推送。 读书时代,我们经常会听到老师和家长告诫我们,学习一定要能学以致用,不能产生价值的不要浪费时间。 比如在高中,老师会说,一切对高考没有用处的杂事,都应该舍弃,不要看没办法直接增加分数的杂志,甚至《读者》、《意林》、《青年文摘》 2022-07-10 newsletter #newletter
打破信息茧房-我主动获取信息的方法 -#3这是 Suncle Lab 第 3 期,我会在这里更新区块链、技术、金融、旅行和个人成长相关的内容。每期都会同步发布在我博客,欢迎你邮箱订阅,这样就可以第一时间收到更新推送。 我在之前写过两篇 blog 介绍我推荐的 mac alfred 工作流和 google chrome 插件,都是用于提高效率的。 Alfred 工作流的阅读量有 3600+,而 chrome 插件的阅读量只有 100+,这个 2022-07-02 newsletter #newletter
如何筹备一场感人的婚礼 -#23月底拍婚纱照,然后开始正式筹备,5月1号开始陆续接待客人,5月2号婚前双方亲人的晚宴,5月3号婚礼最重要的日子。 一直到今天(6月25号),才完成婚礼视频的上传,整个婚礼圆满结束。 我问了参加婚礼的亲戚朋友对这场婚礼的评价,他们的回答都是“这是一场非常感人的婚礼”。 从结婚当天他们眼睛的泪水,我也能知道,这不是客套话。 今天刚好是周末,记录一下这场婚礼的过程,和我们的筹备细节。 这也意味着拖更了 2022-06-24 newsletter #newletter
追求不舒适的地方,直到整个世界都是我的家 -#1这是 Suncle Lab 第一期,我会在这里更新 区块链、技术、金融、旅行相关的内容。每期都会同步发布在我博客,欢迎你邮箱订阅,这样就可以第一时间收到更新推送。 我有个独立博客(可能需要科学上网),已经维护了五年了,但是更新频率并不高,不过陆陆续续还是有人在看,阅读数也在缓慢增长,这个博客主要是用来记录技术知识点,偶尔也会有一些所思所想。 对我自己来说,也会看一些独立博客,优质博客的rss也都有 2022-03-11 newsletter #newletter
智能合约案例-众筹一个众筹的智能合约示例,来源于 learnxinyminutes 主要是用来展示智能合约状态机(State machines)和函数修饰器(modifier)的使用 // CrowdFunder.sol pragma solidity ^0.6.6; /// @title CrowdFunder /// @author nemild contract CrowdFunder { 2021-08-21 区块链 #Solidity
Golang Concurrent Write Problem分享几个golang并发写入的坑 并发读写map在golang的实际项目中经常需要并发写数据,并且将数据塞到一个map中作为一个整体返回。 分为2种情况:这两种情况都会造成panic 并发读写map 并发写map 并发读写map的示例代码: package util import "testing" func TestMap(t *testing.T) { m := make( 2021-08-16 golang #并发
仿MybatisGenerator:根据sql生成go structgenstruct项目地址:https://github.com/suncle1993/genstruct 根据mysql schema生成go struct,适用于习惯先写sql后写struct的同学 根据 https://github.com/fifsky/genstruct 项目做了一些修改,更适用于目前的hago项目。在原版的基础上添加了以下功能: schema的生成(信奉sql和mod 2021-07-27 golang #genstruct #generator
redis统计送礼人数在Hago的营收活动中, 我们经常要记录的一个数据是送礼用户数,作为活动对于用户的吸引程度的一个关键指标。 本文将介绍3种使用 Redis 对用户数量进行记录的方案, 这些方案虽然都可以对送礼用户的数量进行统计, 但每个方案都有一些自己特有的操作, 并且各个方案的性能特征以及资源消耗也各有不同。 2021-07-27 工程实践 #redis #HyperLogLog
2020 Annual Report先通过一组数据看下2020年我到底都做了写什么: 公众号写了15篇 博客写了7篇 专栏学了10个 听书13本 看书2本 居家隔离70天 旅行一个半月 综合投资收益率35% 今年的总结,我想少聊一些细节,多聊一些关键问题的思考。 1. 又是一年的工作今年工作了9个月,旅行加休息差不多3个月。 以辞职为分水岭, 1到4月都在上海再惠,主要做一些数据仓库相关的杂事。8到12月在广州YY,主要做海外 2020-12-14 年度总结
坚持住啊,还在屎山中爬行的同事们“There are only two hard things in Computer Science: cache invalidation and naming things.” — Phil Karlton 在计算机领域只有两件艰难的事情:缓存失效和对象命名。 这还真不是一个笑话。写代码是比较容易的事情,但是阅读别人的代码,那就因人而异了。 好的工程师写出来的代码可读性很高,比如我上家 2020-12-14 工程实践 #shit code #规范性
神兵利器推荐——你一定不能错过的mac alfred工作流上一篇介绍了我日常高频使用的chrome插件,那就顺便介绍一下mac上最最最能提升效率的Alfred工作流吧。 2020-12-09 效率 #工具 #chrome
神兵利器推荐——你一定不能错过的chrome插件最近有朋友问我,有没有什么可以提升效率的chrome插件推荐一下。我看了一下我的插件库,好用的还真不少。既然要推荐给一个人,还不如整理出来,分享给所有需要的人。毕竟,极致利他才能最终利己嘛。 话不多说,下面一个一个的推荐,并且附上效果截图。(注意,一定要看完,图中隐藏着很多人梦寐以求的大杀器!!!) 技术文章一键分发:openWrite助手安全认证简书、博客园、知乎、开源中国、掘金、Segment 2020-12-09 效率 #工具 #chrome
元旦去峨眉山吧,人间值得每年到了10月底11月初的时候,就会开始计划一年一度的大学室友聚会。 前几年关于目的地是没什么争议的,因为其中一个舍友,人称装逼王的旭云在成都电子科技大学读研究生,所以每年都是在成都以及周边聚聚,比如重庆,都江堰之类的。 今年比较特殊,装逼王要毕业了,时间很充裕,去哪儿都行。四人小团队第一次遇到在哪个城市聚会的问题。可能很多小伙伴元旦也开始计划元旦出行,但是又不知道去哪儿。那可以看下我们的决策方法 2020-10-26 随笔 #旅游
git禁止在master分支push和commit作为管理者,在远端将master分支设为保护分支,可以从根源上杜绝直接推送到master的问题。dev分支同理。 作为开发者,在本地的git hook中加配置可以做到在commit和push操作时做对应的检查 2020-09-25 效率 #hook #git
你压力都这么大了,怎么还睡不好?在这个社会里面,每一个人压力都不小。特别是在大城市的小伙伴们,加班是常态。 面对着高消费和高房价这两座大山,随之而来的,就是焦虑,进而失眠。按照这个逻辑,应该是压力越大才会越容易失眠啊。 但我却不这么认为。你压力都这么大了,怎么还睡不好?难道不是一回到家倒头就睡的嘛,睡眠效率是100%才对啊,应该是远高于普通人的90%啊。 可是你为什么还是失眠了呢? 2020-09-07 随笔 #职场 #睡眠
程序员小哥教你秋招拿大厂offer快要到秋招了,对于应届生来说,秋招是一个特别重要的机会。对于社招同学来说,金九银十也是一个很好的跳槽窗口。 而我呢,因为是从上海到广州工作,就没有提前先把工作定下来。刚好也趁这个机会出去旅游了两个月。 旅游结束,等到要开始找工作的时候,发现很多知识点也都忘记的差不多了。说是从0开始准备面试似乎也不是那么过分。 但最终,大概花了3周时间,最终面试通过找到了一个薪资还不错的工作,入职广州仅有的几家大厂 2020-08-30 随笔 #面试 #offer
记录一次mybatis缓存和事务传播行为导致ut挂的排查过程记录一次mybatis缓存和事务传播行为导致ut挂的排查过程 起因rhea项目有两个ut一直都是挂的,之前也经过几个同事排查过,但是都没有找到解决办法,慢慢的这个问题就搁置了。因为之前负责rhea项目的同事离职,我临时接手了这个项目,刚好最近来了一个新同事在做新的功能开发的时候遇到了这个问题,于是我就接了一个锅,最终证明这个锅很好玩。 rhea是一个典型的使用mybatis orm的springb 2019-12-19 java #mybatis #事务 #缓存
从哈夫曼编码再出发:原理和现实对于计算机科班出身的人来说,在大学阶段几乎都学过信息论和算法这两门课,信息论都会讲到香农三大定理以及哈夫曼编码,算法课上会学习二叉树,甚至哈弗曼树。在介绍哈夫曼编码之前,先介绍一下什么是有效编码,以及香农第一定理的内容。 一个好的有效编码需要遵循两个基本原则: 易辨识 有效性 那么怎样才能做到有效编码呢?下面有一个问题: 用10根手指头,能表达多少个数字? 2019-11-26 随笔 #哈夫曼 #编码 #投资