首页
avatar
小毛驴
Go 线上服务问题排查指南
软件开发过程中 Code Review,Lint,QA 等手段都是为了提高软件质量,减少流入到线上的 Bug。在软件的生命周期中,维护的时间远远比开发花费的多。而排查线上服务问题的手段和在本地 Debug 有一些区别,本文介绍 Go 线上服务出现问题时如何排查。
1
avatar
HackerPie
数据结构:单调栈
单调栈是指从栈顶到栈底,栈内元素的值符合单调性的一种特殊数据结构。从栈顶到栈底,元素的值单调递减,称为单调递减栈;反之,称为单调递增栈。
avatar
HackerPie
依赖倒置原则
说起依赖倒置原则,已经不是个新鲜的词了,虽然也知道依赖倒置原则的具体设计模式,但是一直觉得难以理解何为“倒置”,直到今晚重新静心阅读了 Wikipedia 才恍然大悟!欣喜之余,赶紧写篇文章总结。
avatar
HackerPie
后缀表达式之逆波兰表示法
对于人类来说,中缀表达式是最直观自然的,比如“3+5x4”或者“(3+5)x4”,一般来说,对于中缀表达式,在程序中会用一个抽象语法树来表示表达式和求值,比如:
avatar
HackerPie
Unicode?UTF-8?GBK?……聊聊字符集和字符编码格式
作为程序员,经常会在编程语言、操作系统、网络以及文本编辑等多个层面遇上字符集或者字符编码的问题,尽管一般都能快速通过搜索引擎找到解决方案,但是对于这种字符集以及其相关的字符编码格式的知识,倒是未曾系统梳理。恰逢近期有了一些收获,趁热记录分享下。
1
avatar
HackerPie
MySQL + go 如何安全处理 decimal 类型数据
在电商或者金融相关的场景中,商品价格等数据都会涉及到小数的表示或者计算,如果使用编程语言内置的浮点数类型,会有精度丢失的风险。在应用领域,decimal 类型应运而生,MySQL 数据库中内置支持 decimal 数据类型,而程序设计上,一般编程语言都会有标准库或者第三方库...
avatar
HackerPie
Golang 编写易于单元测试的代码
单元测试一直是大家老生长谈的话题之一,尽管各种测试方法论和测试工具集层层出不穷,但是实际上,在我所工作过的公司中,还没有见过能把单测坚持好的团队。单测的概念不复杂,单测的重要性大家也都是认同的,但是是什么造成单测没有执行下来呢?我觉得主要是两类原因吧:
avatar
HackerPie
数据库数据加密的 4 种常见思路的对比
最近由于工作需要,我对欧洲的通用数据保护条例做了调研和学习,其中有非常重要的一点,也是常识性的一条,就是需要对用户的个人隐私数据做好加密存储,避免用户隐私明文数据泄露。
avatar
HackerPie
多时钟解决雪花算法的时间回拨问题
分布式 ID 生成算法用于在分布式系统中生成全局唯一的 ID 标识,而 twitter 提出的雪花算法便是其中一种知名的算法,其每次会生成一个 64 位的全局唯一整数,算法的基本思想非常巧妙:
avatar
Rei in Geeknote
GeekNote 新增导出功能
很高兴宣布 GeekNote 新增导出功能,您可以导出所拥有账号下的所有文章、草稿和附件。
avatar
吕小荣
.terraform.lock.hcl 简介
每种编程语言都有自己的包管理工具,Javascript 有 npm,Ruby 有 Bundler,Python 有 pip。这类管理工具通常会为项目创建一个类似 package.lock 的文件,锁定项目依赖版本,从而保证在不同的机器上运行程序时,依赖环境都相同。