摘要: 代理模式的本质是一个中间件,主要目的是解耦合服务提供者和使用者。使用者通过代理间接的访问服务提供者,便于后者的封装和控制。是一种结构性模式。 1.目的 为外部调用者提供一个访问服务提供者的代理对象。 2.动机 限制对目标对象的直接访问,降低耦合度。 3.优缺点 优点: 低耦合 易扩展 灵活度高 缺点 阅读全文
posted @ 2019-05-31 23:39 alpha_panda 阅读(3731) 评论(0) 推荐(1) 编辑
摘要: OpenCC全称Open Chinese Convert,是一个Github上面的开源项目,主要用于简繁体汉字的转换,支持语义级别的翻译。本文就来简单介绍一下该库的编译以及python、C++和JAVA分别如何调用DLL进行转换。并记录一些使用过程中踩过的坑。 1.编译DLL 我们首先编译得到ope 阅读全文
posted @ 2019-03-27 19:26 alpha_panda 阅读(4028) 评论(1) 推荐(0) 编辑
摘要: 标识符在许多领域主要用于标记用途。可以根据环境条件等因素随机的生成一个ID,也可以使用哈希算法或者消息摘要算法对对象生成一个唯一的固定长度的标记符。前者主要用于区分身份的标记,后者可以用于比较文件数据的一致性和重复数据的检测。 三种标识符 UUID uuid即通用唯一标识符(Universally 阅读全文
posted @ 2019-02-21 20:16 alpha_panda 阅读(3151) 评论(1) 推荐(0) 编辑
摘要: VSCode是MS推出的一款免费的开源并跨平台的轻量级代码编辑器,内置Git和Debug等常用功能,强大的插件扩展功能以及简单的配置几乎可以打造成任意编程语言的IDE。本文简单聊一下其本地attach和remote debug功能。 默认在vscode中打开py文件可以直接使用断点调试,使用的Deb 阅读全文
posted @ 2019-02-16 20:07 alpha_panda 阅读(9803) 评论(2) 推荐(1) 编辑
摘要: 所谓异常指的是程序的执行出现了非预期行为,就好比现实中的做一件事过程中总会出现一些意外的事。异常的处理是跨越编程语言的,和具体的编程细节相比,程序执行异常的处理更像是哲学。限于认知能力和经验所限,不可能达到像解释器下import this看到的python设计之禅一样,本文就结合实际使用简单的聊一聊 阅读全文
posted @ 2019-01-31 14:42 alpha_panda 阅读(2181) 评论(1) 推荐(2) 编辑
摘要: Python生成器(generator)并不是一个晦涩难懂的概念。相比于MetaClass和Closure等概念,其较为容易理解和掌握。但相对于程序结构:顺序、循环和分支而言其又不是特别的直观。无论学习任何的东西,概念都是非常重要的。正确树立并掌握一些基础的概念是灵活和合理运用的前提,本文将以一种通 阅读全文
posted @ 2019-01-20 21:45 alpha_panda 阅读(1765) 评论(0) 推荐(1) 编辑
摘要: 热更新即在不重启进程或者不离开Python interpreter的情况下使得被编辑之后的python源码能够直接生效并按照预期被执行新代码。平常开发中,热更能极大提高程序开发和调试的效率,在修复线上bug中更是扮演重要的角色。但是要想实现一个理想可靠的热更模块又非常的困难。 1.基于reload 阅读全文
posted @ 2018-12-30 17:30 alpha_panda 阅读(7290) 评论(0) 推荐(2) 编辑
摘要: 常见的代码托管平台GitHub、GitLab和BitBucket等,基本都会使用Git作为版本控制工具。平台一般都提供两种认证方式https和ssh。了解该过程能够更加自由的配置和使用,本文就来简单聊一下这两种认证方式。 1.HTTPS与SSH Git可以使用四种协议来传输数据:本地协议(Local 阅读全文
posted @ 2018-12-20 19:35 alpha_panda 阅读(12771) 评论(1) 推荐(2) 编辑
摘要: Abstract Syntax Trees即抽象语法树。Ast是python源码到字节码的一种中间产物,借助ast模块可以从语法树的角度分析源码结构。此外,我们不仅可以修改和执行语法树,还可以将Source生成的语法树unparse成python源码。因此ast给python源码检查、语法分析、修改 阅读全文
posted @ 2018-12-15 11:36 alpha_panda 阅读(40569) 评论(0) 推荐(2) 编辑
摘要: 项目中可能会经常用到第三方库,主要是出于程序效率考虑和节约开发时间避免重复造轮子。无论第三方库开源与否,编程语言是否与当前项目一致,我们最终的目的是在当前编程环境中调用库中的方法并得到结果或者借助库中的模块实现某种功能。这个过程会牵涉到很多东西,本篇文章将简要的介绍一下该过程的一些问题。 1.背景 阅读全文
posted @ 2018-11-23 21:23 alpha_panda 阅读(12272) 评论(4) 推荐(1) 编辑