越过山丘

不要虚掷你的黄金时代,不要去倾听枯燥乏味的东西,不要设法挽留无望的失败,不要把你的生命献给无知、平庸和低俗。

《Python源码剖析》读书笔记

Python源码剖析学习笔记 一. Python源码剖析——编译Python Python总体架构 在最高的层次上,Python的整体架构可以分为三个主要的部分,如上。 图左,是Python提供的大量的模块/库以及用户自定义的模块。比如在执行import os时,这个os是Python内建的模块,用户还可以通过自定义模块来扩展Python系统。 图右,是Python的运行时环境,包...

MySQL索引

MySQL 优化 1. 索引 目的 索引的目的在于提高查询效率。 原理 通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。 分类 index —-普通的索引,数据可以重复 fulltext—-全文索引,用来对大表的文本域(char,varcha...

MySQL引擎

MySQL 1. MySQL Innodb/MyIsm MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整...

MySQL设计规范

业务需求 需求讨论 尽可能的考虑各种情况,并且与产品以及即将使用该系统的人沟通。 确定系统中有哪些角色,动作,包括了解,哪些人能做哪些动作、一个角色作出某个动作后,需要对考虑任意角色作出任意动作的影响。 Design Review 在编写代码前,需要进行该流程。 该流程需要该项目的主要开发者对住这儿平台组的所有成员介绍该项目的设计。大约耗费0.5天~1天的时间...

持续集成部署

一. 背景 自动化部署就是为了解放生产力。 二. CI部署 Jenkins与Github集成 Github Hooks 配置Github项目仓库,Github项目仓库在处理这些动作的同时会发送信号至Jenkins触发自动构建操作。 生成Personal Access Token 登录Github,在头像上点击settings 点击Developer settings下的Pe...

敏捷开发模式下的项目复盘

一. 敏捷开发 1.1 背景 目标: 开发一个多系统通用的优惠券平台 团队: 产品经理(1人)/UED(1人)/iOS开发(2人)/Android开发(2人)/H5开发(2人)/Python开发(1人)/测试(2人) 周期: 35天 1.2 概念 敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。 敏捷开发不是一门技术,它是...

Flask源码剖析(20): 总结

一. 总结 Flask框架是个微框架,用于熟悉Python的基础语法,怎么进行源码分析学习,学习一个框架是怎么实现等等都是很有帮助的。 二. 分析 语法参考 在解析flask源码过程中,就当是重新复习一下python的基础语法,另外,可再翻一遍Python学习手册(第4版) 中文版,开卷有益。 源码分析 在读别人的源码之...

Flask源码剖析(19): 兼容

一. 兼容 Flask框架兼容与py2和py3版本,来看看是怎么实现的。 二. 代码 Flask框架提供python不同版本的兼容的实现放在flask/_compat.py文件中,如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3...

Flask源码剖析(18): Debug辅助

一. Debug辅助 Flask框架提供了在debug模式下的一些辅助函数,主要是抛出异常的各种提示。 二. 代码 debug模式下的辅助函数主要放在flask/debughelpers.py,看看是怎么实现的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

Flask源码剖析(17): 日志

一. 日志 对于大部分程序员来说,20%的时间在写代码逻辑,80%的时间在调试。 如何提高debug的效率呢?那么最重要的一点是,快读定位问题,从已有的记录信息中得到程序崩溃的内容,对此,Flask程序提供了一个logging模块来记录这些信息。 二. 代码 Flask框架提供记录日志的模块是flask/logging.py,来看看是怎么实现的。 1 2 3 4 5 6 7 8 9 10 ...