hongweipeng 发布的文章

数据库保存时间是用时间戳还是日期格式?


起步

这是一个架构权衡的问题。它不是从性能上去考虑的。时间戳到日期的互转只是简单的计算,消耗的计算量远远达不到其他地方。Mysql 内置了 timestampdatetime 两个类型供开发者选择。

这种类型要选哪个比较合适?这个时候首先要问自己,是不是要保存 1970 年以前的时间,如果是,那么就必须采用 datetime 了,没有其他选择。

这点以外,我更喜欢用时间戳,因为它能避免很多日期类型带来的问题。


Django 设置多环境配置文件载入


起步

通常,针对不同的开发环境,需要不同的配置保证程序可运行且不干扰。单个 settings.py 文件就很难满足需求,需要将他拆分为多个文件,根据特定环境载入不同的配置文件。一种简单的划分就是分为 4 个文件:

__init__.py
base.py
dev.py
prod.py


thinkphp5.0 使用 phpunit 进行单元测试


起步

thinkphp5.0 是 tp 发展路线第一个支持 composer 的。tp 有自己的载入机制,composer 也有自己的载入机制。

官方提供了 think-testing 组件可以通过 composer require topthink/think-testing 1.* 安装,但我对这个测试组件不是很满意,原因是它每个测试都是模拟成 http 请求。这也就意味着对于一些特定函数,还得封装到控制器中或者路由,该控制器还得控制它生产环境不能对外开放。

另一个原因是可读性会变差,在单元测试文件中只是能看到请求体和响应体,具体测试的函数,测试的细节都看不到。于是我尝试寻找可以独立测试tp或者tp项目,测试颗粒更细的测试单元。(当然是可行的,不然我也不会写这篇文章)


使用 Python 内置的单元测试框架


起步

随着项目不断变得庞大,复杂性越来越高。为了保证代码质量和可用性,可以将应用的最小部件来进行正确性的检测工作。因此就有了单元测试。单元测试带来了诸多的好处:提高代码质量;提高程序的健壮性;避免代码重构引入新的问题。