Bryan Blog

个人分享 但愿各位看官喜欢

PEP8 规范

PEP 8

基础 本篇文章大致是对PEP 8 的翻译,部分内容没有严格按照逐句的翻译方式。希望能写出更加Pythonic的代码 代码布局 缩进 每个缩进层次为4个空格 连续行包装的元素的两种方案: 隐式续行 (implicit line),垂直对齐与圆括号,方括号或花括号 悬挂缩进(hanging indent),首行没有参数,后续行应该多缩进一级以便和正常的缩进区分 # 隐式...

Git笔记

dive into git

基础概念 使用过git的都会有一些基础的感觉,git管理的代码会涉及到几个存储区域。具体如下图所示: 其中包含三个不同的的代码存储区域: 工作区,工作区就是可视的代码目录。一般情况下,我们修改了代码就是更改工作区的代码 暂存区,对于需要提交的代码,会通过git add 加入暂存区 代码分支,进行实际提交时,使用git commit 将暂存区中的代码一次性加入代码分支 ...

Mock与模块引入问题

mock and module import

问题描述 在最近的单元测试中,使用Mock模块时发现一个一个奇怪的问题,当使用from module import func 后,如果使用Mock去模拟对应的方法时,执行的依旧是原始方法,而不是模拟的方法。下面使用代码解释一下: 在项目中存在两个python文件,其中一个是action.py 文件,代码为: def my_func(): return 'original fun...

Less与Sass使用

less and sass

基础概念 有前端开发的小伙伴都或多或少接触过Sass和Less,由于CSS功能比较弱,代码的复用性比较弱,为了更方便地编写CSS,程序员们想到可以更方便的文件设计样式,然后再转换为CSS。这种方式就成为CSS预处理。而Less和Sass就是目前最流行的CSS预处理文件。 这两种方式实现的功能类似,都具备如下所示的基础功能增强: 变量,CSS不支持变量,导致相同的数值需要复制粘贴,...

Celery框架介绍

dive into celery

基础概念 Celery是一个异步任务处理框架,Celery处理的主要图示如下所示: 此图示借鉴自51cto Celery 任务的处理流程为: 手工创建异步任务或使用Beat创建定时异步任务; 启动的异步任务存储至消息中间件Broker中; 任务处理单元Worker持续监控Broker,当发现创建的异步任务时,执行异步任务; 异步任务处理的结果存储至Backend...

单元测试mock模块介绍

mock

mock mock是python中的测试库,主要用于提供测试桩。简单解释一下,在我们进行单元测试时,如果依赖其他服务,那么如何隔离进行测试呢。此时会建立一个测试桩,模拟所依赖的服务,从而避免依赖服务的干扰,专注测试所需的模块。而mock库就可以帮助我们很方便地建立测试桩,在python2中,mock是独立的库。在python3中,mock就被加入unittest单元测试库中了,足见mock库...

实用的装饰器库decorator

decorator

decorator 今天介绍的是一个已经存在十年,但是依旧不红的库decorator,github地址。这个库可以帮你做什么呢?可以帮你更方便地写python装饰器代码,不了解装饰器的可以先去阅读廖神的博客,更重要的是,让python中被装饰器装饰后的方法长得更像装饰前的方法。这个需求,不得不说,确实很小众,但是需要的时候自己完全从头写出来就相当麻烦了。因此,来了解一下吧。本文主要内容都是参...

基于属性的测试库-hypothesis

hypothesis

基于属性的测试 基于属性的测试一种适用于单元测试的测试方法,使用方式与传统的测试方法不太相同,传统的测试方法使用流程如下所示: 创建测试用例,指定输入; 指定预期的输出; 运行代码,判断输出是否符合预期; 基于属性的测试方法使用流程如下所示: 描述输入数据; 描述输出属性; 自动生成大量测试用例,判断输出属性是否违背; 流程看起来类似,但是区别还是比较...

python中的循环引用

circular import in python

循环引用 循环引用在不同语言都会出现,在python中如果如果出现循环引用,会报错ImportError,在本地创建两个文件,分别为a.py和b.py,然后让他们互相引用,可以看到循环引用的错误,如下所示: 一般情况循环引用都是代码存在循环依赖的关系,根据循环引用出错的现场引用路径重构代码,避免循环依赖即可,也没有深入研究循环引用的情况,最近出现一个循环引用,让我觉得很有比较了解清楚其中的...

自动化代码质量控制

automating code quality

自动化代码质量控制 代码质量是程序员都比较关心的一件事,如何控制团队的代码质量,靠人工是一件相当难的事情。稍微放松一些,代码质量都惨不忍睹了,最近看了下Kyle Knapp的演讲,如何利用各种自动化的方式来保证python代码质量,深以为然,记录分享一下。 代码质量控制工具 在演讲中,分享了三种工具用于控制代码质量,下面分别进行介绍: flake8 flake8 是一个相当方便而且简单的...