SQLite 基本概念及使用概述

SQLite 是一个开源的嵌入式关系型数据库,是一个自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 具有如下特点: 无需单独的服务器进程,是无服务器的 不需要配置,无需复杂的安装或管理步骤 数据库存储在一个单一的跨平台的磁盘文件中 非常小的,轻量级的 自给自足的,不需要任何外部的依赖 事务是完全兼容 ACID,允许从多个进程或线程安全访问 支持 SQL92(SQL2)标准的大多数查询语言的功能 使用 ANSI-C 编写的,并提供了简单易用 API 兼容类 UNIX 平台(Linux, Mac OS-X, Android, iOS)和 Windows(Wi...

阅读更多

RabbitMQ 消息中间件使用简介

RabbitMQ 是一个用 Erlang 开发的 AMQP(Advanced Message Queue, 高级消息队列协议)的开源实现。AMQP 是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,也可以用于系统间服务的相互调用(RPC)。AMQP 模型定义了一系列模块化组件和标准规则来进行协作. 有三种类型的组件可以连接服务器处理链来创建预期的功能...

阅读更多

reStructuredText 语法简介

reStructuredText 含义为 重新构建的文本,是扩展名为 .rst 的纯文本文件,也被简称为:RST 或 reST。其是 Python 编程语言的 Docutils 项目的一部分,Python Doc-SIG (Documentation Special Interest Group)。该项目类似于 Java 的 JavaDoc 或 Perl 的 POD 项目。 Docutils 能够从 Python 程序中提取注释和信息,格式化成程序文档。.rst 文件是轻量级标记语言的一种,被设计为容易阅读和编写的纯文本,并且可以借助 Docutils 这样的程序进行文档处理,也可以转换...

阅读更多

用 PyTest 测试 Python 代码

Pytest 是一个比较成熟且功能完备的 Python 测试框架。其提供完善的在线文档,并有着大量的第三方插件和内置帮助,适用于许多小型或大型项目。Pytest 灵活易学,打印调试和测试执行期间可以捕获标准输出,适合简单的单元测试到复杂的功能测试。还可以执行 nose, unittest 和 doctest 风格的测试用例,甚至 Django 和 trial。支持良好的集成实践, 支持扩展的 xUnit 风格 setup,支持非 python 测试。支持生成测试覆盖率报告,支持 PEP8 兼容的编码风格。 基本使用 usage: py.test [options] [file_or_d...

阅读更多

Git 使用札记

Git 是一个优秀的版本控制工具,可以有效、快速的处理大大小小的项目版本管理。日常使用掌握如下图所示的工作流程和命令就足够了。 但要熟练地使用 git,只掌握上图中的命令是不够的。以下是我在使用 git 过程中收集的比较有用的操作和命令。 基本配置 Git 的配置文件为 .gitconfig,它在用户主目录下 ~/.gitconfig,针对当前用户是全局的,同时每个项目目录下也可以有一个局部的配置文件,仅针对当前项目有效。 # 显示当前的配置 git config --list # 配置文本编辑器 git config --global core.editor vim # ...

阅读更多

Python 库打包分发(setup.py 编写)简易指南

Python 有非常丰富的第三方库可以使用,很多开发者会向 pypi 上提交自己的 Python 包。要想向 pypi 包仓库提交自己开发的包,首先要将自己的代码打包,才能上传分发。 distutils 简介 distutils 是标准库中负责建立 Python 第三方库的安装器,使用它能够进行 Python 模块的安装和发布。distutils 对于简单的分发很有用,但功能缺少。大部分Python用户会使用更先进的setuptools模块 setuptools 简介 setuptools 是 distutils 增强版,不包括在标准库中。其扩展了很多功能,能够帮助开发者更好的创...

阅读更多

Git 重置(reset)操作简介

要理解 git reset 需要先了解其在版本管理中用到的三个重要概念,通常被称为三棵“树”,“树” 的实际意思是 “文件的集合”,而不是指特定的数据结构。这三棵树即: 树 含义 HEAD 上一次提交的快照,下一次提交的父结点 Index 预期的下一次提交的快照 Working Directory 工作目录 HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交。 这表示 HEAD 将是下一次提交的父结点。 通常,理解 HEAD 的最简方式,就是将它看做 你的上一次提交 的快照。 Index 即索引,通常也被称之为暂存区,是 预期的下一次提交。 当运...

阅读更多

Linux 进程内存地址空间

进程是操作系统进行资源分配的最小单位,而内存是进程运行必不可少的资源。那么,为什么需要内存呢?CPU 太快,但其数据容量极小且功能单一,而其他 I/O 等硬件功能多样,只是相对于 CPU 来说它们又太慢,所以便需要内存在 CPU 与 I/O 设备间进行缓冲。 现代操作系统均支持多任务,操作系统一般会为每个进程分配 独享的内存空间,这个独享的内存空间只是在进程自己看来是独享的,实际上其只是操作系统为其分配的 虚拟内存空间,虚拟内存在真正被使用时才映射到物理内存上。进程每次访问自己内存空间的某个地址 (虚拟地址)时,操作系统都需要把地址翻译成实际物理内存地址。 虚拟内存是操作系统里的概念...

阅读更多