Go 语言中 Namespace 用法

总所周知 Docker 最早诞生于 Linux 平台,利用的是 Linux LXC 技术作为基础。Docker 作为一种 “轻量级虚拟机” 跑在通用操作系统中,那么势必就要对容器进行隔离,保证在宿主机内的独立性。

z正小歪 · 2019-04-07

「译」Go Context 在 HTTP 传播

Go 1.7 引入了一个内置的 context 类型,在系统中可以使用 Context 来传递元数据,例如不同函数或者不同线程甚至进程的传递 Request ID。

Go 将 Context 包引入标准库以统一 context 的使用。在此之前每个框架或者库都有自己的 context 。它们之间还无法兼容,导致了碎片化,最终在各处 context 的传播上就有不少的麻烦。

z正小歪 · 2019-03-31

两阶段提交协议

两阶段提交协议

在分布式系统中每个节点都可以知道自己的操作是成功还是失败,但是无法知道其他节点的状态。为了保证一个事务的 ACID 特性,一个节点发生失败就要在所有节点上执行 rollback 操作。需要引入一个 协调者 来维护各个 参与者 的状态,以保证最终一致。

z正小歪 · 2019-03-31

「译」把项目从 Dep 迁移到 Go Modules

原文地址

Go Modules 是 Go 管理的未来方向。已经在 Go 1.11 中可以试用,将会是 Go 1.13 中的默认行为。

我不会在这篇文章中描述包管理工具的工作流程。我会主要讨论的是如何把现有的项目中 dep 迁移的 Go Module。

z正小歪 · 2019-03-25

使用 RMDBS 存储树结构数据

在关系型数据库中存储树形结构是比较麻烦的事情,因为数据库都是基于行存储的结构,要满足树形数据结构的添加、删除、查询、修改是一件比较棘手的事情。

z正小歪 · 2019-03-25

递归

递归(recursion)是数学中处理问题的一种常用方法,在计算机科学中指的是一种通过重复将问题分解为同类的子问题而解决问题的方法。

换句话说,在处理分治问题上采用递归是一种很简单的方法,其强大描述能力,可以把无限过程表达在有限语句中。

z正小歪 · 2018-06-30

Python 如何传递运算表达式

首先要说明的一下,所描述的是 Python 中的 运算表达式 的部分,不是 Python 表达式的部分。

关于什么是 Python 中的运算表达式,可以参考 Python 文档 10.3.1. Mapping Operators to Functions 部分,所需要传递的就是这部分运算表达式。

z正小歪 · 2018-04-02

Python 优雅地 dumps 非标准类型

在 Python 很经常做的一件事就是 Python 数据类型和 JSON 数据类型的转换。

但是存在一个明显的问题,JSON 作为一种数据交换格式有固定的数据类型,但是 Python 作为编程语言除了内置的数据类型以为还能编写自定义的数据类型。

z正小歪 · 2017-11-11

「译」5 种方法构建安全的 Django Admin

原文地址

拥有越大权限,往往也就责任也越大。Django Admin 在拥有修改权限的同时应该要更加注意安全。

本文提供了 5 种方法来保护 Django Admin 避免来自认为的错误或者攻击者的攻击。

z正小歪 · 2017-06-17

Bottle 源码分析

Bottle 是一个快速,简单和轻量级的 WSGI 微型 Web 框架的 Python。它作为单个文件模块分发,除了 Python 标准库之外没有依赖关系。

选择源码分析的版本是 Release 于 2009 年 7 月 11 日的 0.4.10 (这是我能找到的最早的发布版本了)。

z正小歪 · 2017-05-21