摘要:
前提 最近在公司代码review过程中, 看到同事的代码中大量使用了goto, 我给出了"不用 goto"的建议. 但其给出的理由是使用goto更简单. 确实, 使用goto可以使得逻辑更简单直接, 但前提是不乱用goto, 而在公司的项目中又很难保证这一点. 问题 使用goto带来的最直观的问题就 阅读全文
摘要:
前言 docker 的仓库支持一个 tag 下多个架构镜像, 这是如何实现的呢? 抓包看看其数据交互流程 前提 错误处理 执行命令buildx报错: ERROR: Multi-platform build is not supported for the docker driver. Switch 阅读全文
摘要:
闲来无事, 会一个人散散步, 也没什么目的, 就是随便走走. 有时会想想工作上的事, 有时也会想想其他的. 比如, 人生的意义 说起来我现在的岁数应该还没到要想这种问题的时候, 但也不尽然, 各个年龄段会有这不同的经历, 不同的见解, 不同的意境, 也会给出不同的答案. 忘记是在哪里看到这样一个故事 阅读全文
摘要:
前言 docker用了这么久了, 有没有想过, 在执行docker push 和 docker pull命令的时候, 数据是如何传递的呢? 换句话说, 如果要实现一个镜像仓库, 针对推拉的服务, 如何实现接口呢? 根据OCI 分发规范文档 的描述, 已经对整个推拉过程中要调用的接口有描述了. 但是, 阅读全文
摘要:
前言 在这篇文章中碰巧看到了Go边界检查消除相关的讨论. 我也借此简单聊聊. 有这样一段代码, 非常简单, 就是一段求向量点积的程序: func sum(a, b []int) int { if len(a) != len(b) { panic("must be same len") } ret : 阅读全文
摘要:
前言 常见的一个问题: 给定一个整形数组, 统计其中有多少唯一的元素. 常见的思路有哪些呢? 元素去重并统计, 利用哈希表进行去重计数. 数组排序后统计 以上空间复杂度均与元素数量关联, 如果允许损失精度, 是否可以使用较低的空间占用来统计呢? 利用布隆过滤器是一种的一种 但是, 我在这篇文章看到了 阅读全文
摘要:
前段时间, redis作者不是整了个c语言版本的聊天服务器嘛, 地址, 代码量拢共不过百行. 于是, 心血来潮下, 我也整了个Go语言版本. 简单来说就是实现了一个聊天室的功能. 将所有注释空行都去掉, 刚好100行实现. 废话不多说, 先上代码: package main import ( "fm 阅读全文
摘要:
前言 md5算法是我们经常会用到的一个hash函数, 虽然已经被证明是不安全的了, 但其应用依然十分广泛. 哈希函数具有如下特点: 将任意长度的字符串映射为固定长度 源数据微小的改动会导致结果差异巨大 不可逆 暴力破解困难 你有没有好奇过, 哈希函数是如何做到这些的呢? 本文就拿md5举例, 看一看 阅读全文
摘要:
通过网站 https://regex101.com/ 可以测试正则表达式的匹配结果及匹配过程. 本文章抛开各个编程语言实现差异, 仅做正则本身的介绍, 会尽量将正则这玩意说明白, 使得你看完这边文章后对正则基本可以运用自如. 温馨提示, 这篇文章会比较长, 大致浏览即可. 正确的方式是收藏起来, 等 阅读全文