函数选择模式(Functional Options Patter)

有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可,类似于 python 里面的默认参数和字典参数,虽然 golang 里面既没有默认参数也没有字典参数,但是我们有选项模式。

阅读全文

go操作usb

因为要涉及到重新置换以前的硬件操作方案,在重新梳理以前项目后,发现使用的语言繁多,其中使用到了一种公司内部开发的脚本,从易读性和功能性上来看,出于减负的目的,将这些个能被替换的语言,尽量统一到一种语言——Go。

同时,在使用过程中,Go里面的USB库能找到的使用方面的博客少的可怜,于是写下这一篇操作USB详细的使用解析,方便后来人,避免遇到一知半解的问题。

阅读全文

CSDN自动展开chorme插件

之前推荐过CSDN自动展开阅读的chorme插件,但今天无法使用了,这让我很不解,于是去翻看了CSDN的HTML页面代码。

阅读全文

一致性hash

在分布式应用中,我们希望服务器能够分担整体框架的缓冲压力,希望存储请求能够均匀的分散在已有的服务器中,足够平均,也就能最大化的使用服务器,比如falcon的transfer模块,经过一致性哈希算法,对数据的发送目的地进行均匀分布后,有效进行存储,而其中的关键即是均匀,当然后面还会将会提到节点变化引发的映射变化。

阅读全文

小工具CSDN自动点击插件和GitHub在线代码阅读

csdn-auto-readmore

Octotree

阅读全文

根据业务改造ops-update——添加跳板机

首先,这里面包含两个模块metaupdater

meta负责接收updater上传上来的设备软件运行信息,以及下发运行软件的地址等相关参数;

阅读全文

中小型公司如何保存密码?

一般的,我们在后端保存密码时,不会使用明文进行保存,明文保存意味着数据库被爆的损失将直线型上升,例如CSDN密码泄露事件,常见的方式是加盐操作,所谓的盐(salt)是一个随机数,算法演示入:MD5(MD5(P) + salt)SHA1(MD5(P) + salt)MD5(P + salt)等。

阅读全文

go实现stack

堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。

阅读全文

go实现队列

队列是什么?

queue作为一种先进先出FIFO, First-In-First-Out)的线性表结构,在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。

阅读全文