「工具推荐」golang 代码可视化工具 go-callvis

2020-01-19
阅读 3 分钟
7.7k
「工具推荐」go-callvis go-callvis是相对 以图片的形式展示了go程序的调用关系,这个工具在看复杂项目时尤其有用。 亲测,借助它看祖传golang代码,头痛好多了。 安装 {代码...} 运行依赖 Go 1.12+ Graphviz:http://www.graphviz.org/download/ Mac 可以直接 brew install graphviz 项目地址:https://github.com/True...

学习单元测试,告别祈祷式编程

2019-10-07
阅读 7 分钟
2.6k
祈祷式编程 祈祷式编程 如果代码中包含以下代码 或者上线后进行这种活动 那么这种编程方式就是祈祷式编程。 用流程图表示基本就是这个样子。 祈祷式编程有什么危害呢? 累,每次写完代码还需要再祈祷 不受控,代码运行结果主要看运气,大仙忙的时候可能保佑不了 解决这个问题有好多种方法,单元测试是其中之一。 单元测...

如何通过MD5反查身份证号?

2019-08-18
阅读 3 分钟
3.4k
题目:设计一个身份证查询系统,将身份证号md5 之后存储,输入md5值查询对应的身份证号。 要求:成本低,查询速度快 设计思路: 将所有可能的身份证号做一个简单的统计计算数据量 根据数据量选择存储方式 查询 身份证生成规则: 身份号码是特征组合码,由前十七位数字本体码和最后一位数字校验码组成。排列顺序从左至右...

Redis 选择hash还是string 存储数据?

2019-06-22
阅读 4 分钟
7.5k
I want to store a JSON payload into redis. There's really 2 ways I can do this: One using a simple string keys and values.key:user, value:payload (the entire JSON blob which can be 100-200 KB) SET user:1 payload Using hashesHSET user:1 username "someone" HSET user:1 location "NY" HSET user:1 bio ...

PostgreSQL JSONB 使用入门

2019-05-30
阅读 18 分钟
19.1k
根据RFC 7159中的说明,JSON 数据类型是用来存储 JSON(JavaScript Object Notation)数据的。这种数据也可以被存储为text,但是 JSON 数据类型的优势在于能强制要求每个被存储的值符合 JSON 规则。也有很多 JSON 相关的函数和操作符可以用于存储在这些数据类型中的数据

并发模型:线程与锁

2019-05-19
阅读 12 分钟
2.6k
并发程序含有多个逻辑上的独立执行块,他们可以独立的并行执行,也可以串行执行。并行程序解决问题的速度比串行程序快的多,因为其可以同时执行整个任务的多个部分。并行程序可能有多个独立执行块,也可能只有一个。

JWT refreshtoken 实践

2019-04-29
阅读 3 分钟
12.3k
Json web token (JWT), 根据官网的定义,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些...

Go mod 使用

2019-03-17
阅读 7 分钟
65k
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。

python设计模式-状态模式

2019-01-01
阅读 9 分钟
2.1k
这是一个状态图,每个圆圈都是一种状态。很明显,有有25分钱、 没有25分钱、 售出糖果、 糖果售罄四个状态,同时也对应四个动作:投入25分钱,退回25分钱,转动曲柄和发放糖果。

python设计模式-模板方法模式

2018-12-02
阅读 4 分钟
2k
date: 2018-12-02T17:23:56+08:00description: python 设计模式 模板方法模式draft: falseslug: "python-design-pattern-template-pattern"categories: ["development", "python", "设计模式"]tags: ["python", "读书笔记", "设计模式"]

python设计模式-外观模式

2018-11-25
阅读 3 分钟
1.8k
上一篇《python设计模式-适配器模式》介绍了如何将一个类的接口转换成另一个符合期望的接口。这一篇将要介绍需要一个为了简化接口而改变接口的新模式-外观模式(Facade-Pattern)。

python 设计模式-适配器模式

2018-11-03
阅读 2 分钟
2.1k
问题:假设有一个软件系统,你希望它能在不改变现有代码的前提下和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口不同于旧厂商的接口 这个问题和下图的问题类似 美国标准的插头?无法在欧洲标准的插座上使用,通常的做法是什么呢? 添加一个插头适配器,适配器的作用是将欧式插头转换成美式插座,以便于让美...

Solidity 简易教程0x001

2018-10-22
阅读 12 分钟
2.5k
Solidity是以太坊的主要编程语言,它是一种静态类型的 JavaScript-esque 语言,是面向合约的、为实现智能合约而创建的高级编程语言,设计的目的是能在以太坊虚拟机(EVM)上运行。本文基于CryptoZombies,教程地址为:https://cryptozombies.io/zh/lesson/2

SQLAlchemy in 查询空列表问题分析

2018-09-27
阅读 6 分钟
3k
问题场景 有model Account,SQLAlchemy 查询语句如下: {代码...} 这里 uids 如果为空,执行查询会有如下警告: {代码...} 这里的意思是使用一个空的列表会花费较长的时间,需要优化以提高性能。 为什么会有这个提示呢?一个空列表为什么会影响性能呢? 首先打印 query 可得到如下 sql 语句: {代码...} 会发现生成的语...

Solidity 简易教程

2018-09-04
阅读 6 分钟
3.9k
Solidity是以太坊的主要编程语言,它是一种静态类型的 JavaScript-esque 语言,是面向合约的、为实现智能合约而创建的高级编程语言,设计的目的是能在以太坊虚拟机(EVM)上运行。本文基于CryptoZombies,教程地址为:[链接]

垃圾回收算法:引用计数法

2018-08-12
阅读 6 分钟
4k
给对象中添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。这也就是需要回收的对象。引用计数算法是对象记录自己被多少程序引用,引用计数为零的对象将被清除。 计数器表示的是有多少程序引用了这个对象(被引用数)。计数器...

使用github+travis将Python包部署到Pypi

2018-07-25
阅读 4 分钟
3.2k
我在 github 托管 Python 代码,然后将包发布到 Pypi,通常的操作步骤是,更新完代码将提交到 github ,然后手动将包更新到 pypi,这样比较繁琐,就想到了使用github+travis-ci 构建一个自动部署环境。

垃圾回收算法|GC标记-清除算法

2018-07-22
阅读 5 分钟
4k
GC 标记-清除算法由标记阶段和清除阶段构成。在标记阶段会把所有的活动对象都做上标记,然后在清除阶段会把没有标记的对象,也就是非活动对象回收。

微信公号生成便签

2018-07-08
阅读 5 分钟
3.7k
最近有文字转图片的需求,但是不太想下载 APP,就使用 Python Pillow 实现了一个,效果如下: PIL 提供了 PIL.ImageDraw.ImageDraw.text 方法,可以方便的把文字写到图片上,简单示例如下: {代码...} 为什么要计算文字的宽高呢?把文字直接写到背景图不可以么? Pillow PIL.ImageDraw.ImageDraw.text写文字是按换行符\n...

Python gRPC 入门

2018-06-08
阅读 7 分钟
10.6k
gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 本文通过一个简单的 Hello World 例子来向您介绍 gRPC 。

newrelic python agent 源码分析-1

2018-05-16
阅读 5 分钟
2.5k
Newrelic 是APM(Application Performance Management)(应用性能管理/监控)解决方案提供商。项目中,通常用它来追踪应用的性能。最近看了一下 newrelic-python-agent 源码,这是查看源码过程中的一些记录。

?年学 go 2:控制流

2018-04-17
阅读 6 分钟
2k
上一篇我们了解了golang 的变量、函数和基本类型,这一篇将介绍一下控制流 现在我们看一个复杂点的例子: fibonacci(递归版) {代码...} for i := 0; i <= 10; i++ {} 第7行是一个循环结构 这里for 循环是一个控制流 控制流 For Go 只有一种循环接口-- for 循环 For 支持三种循环方式,包括类 while 语法 1 基本for循环 ...

?年学 go 1:变量&函数

2018-04-17
阅读 7 分钟
2.3k
变量&函数 最近在学习golang,写下学习笔记提升记忆。为了看起来不是那么枯燥,本学习笔记采用分析代码的形式。 首先搬出我们最经典的第一段代码: hello world {代码...} 首先我们要认识到 每个Go 程序都是由包组成,程序的运行入口是包main 首行这个是必须的。所有的 Go 文件以 package <something> 开头,对...

AWS-Lambda 使用入门

2018-01-13
阅读 7 分钟
9.7k
场景:现在需要开发一个前后端分离的应用,后端采用 RESTful API 最为方便,但是如果这个后端服务会在一天中的某些时候有高并发的情况,使用什么样的架构最为简单呢?

python 设计模式-命令模式

2018-01-09
阅读 7 分钟
3.7k
命令模式 题目: 现在要做一个智能家居控制遥控器,功能如下图所示。 下图是家电厂商提供的类,接口各有差异,并且以后这种类可能会越来越多。 观察厂商提供的类,你会发现,好多类提供了 on()、off() 方法,除此之外,还有一些方法像 dim()、setTemperature()、setVolumn()、setDirection()。由此我们可以想象,之后还...

Python数据结构:字典

2017-12-03
阅读 7 分钟
3.1k
collections.abc 模块中有 Mapping 和 MutableMapping 这两个抽象基类,它们的作用是为 dict 和其他类似的类型定义形式接口。

python设计模式-单例模式

2017-11-26
阅读 5 分钟
2.5k
问题:现代化的巧克力工厂具备计算机控制的巧克力锅炉。锅炉做的事情就是把巧克力和牛奶融在一起,然后送到下一个阶段,以制成巧克力棒。下边是一个巧克力公司锅炉控制器的代码,仔细观察一下,这段代码有什么问题?

python 设计模式-建造者模式

2017-11-12
阅读 4 分钟
2.5k
问题:在上一篇python设计模式:抽象工厂模式中,我们尝试用抽象工厂模式规范化了 Pizza 原材料的供应以及 Pizza 的创建。但是我们忽略了一个问题,那就是每种 Pizza 的烘焙时间依赖于生面团的厚度和使用的配料,它们所需的时间是不一样的。那这时我们改如何处理呢?

python设计模式-抽象工厂模式

2017-10-28
阅读 6 分钟
4.3k
为了确保每家加盟店都是用高质量的原材料,我们打算建造一加原材料工厂,并将原材料运送到各个加盟店。每个加盟店会对原材料有不同的需求,这里我们就可以用上上一篇介绍的工厂方法模式了。

使用腾讯云配置小程序服务端开发环境

2017-10-21
阅读 4 分钟
5.7k
之所以选腾讯云的原因很简单,那就是便宜,选用成都区,最低配置每月只需29¥。在 腾讯云 官网注册登录就可以直接购买服务器了。服务器系统我选择的是 ubuntu。