GoldMap项目笔记(二)
每写一个新的项目,都是一次学习新知识的过程。同样的,也是在锻炼自己的编码能力。这一回也不例外。
公司的项目一直运行在python2上面,之前也知道python早就发布了3的版本,没想到这一次配置开发环境,发现python已经进化到了3.6版本,开源社区果然充满了活力!3.6版本的标准库,目前使用最多的就是asyncio这个库。其实在早几年,曾经接触过相关的异步并发的库,可惜只是浅尝辄止,并没有深入。而这次使用下来,发现比当年使用已经简便得多,加之相关的资料,文档都比较完备。总之,相比当年,开发体验完全不可同日而语。 在asyncio的基础之上,还有一系列的第三方库都很不错,比如uvloop,aiohttp,asyncpg等等,据说都是很棒的开源库,使用下来发觉也很不错。
这里说一件在阅读aiohttp文档的时候发生的囧事。我在运行aiohttp文档的示例代码发现报错了,一时间让我有些不知所措。后来仔细研究发现,示例代码只是一个片段,并不完整,后来编写成完整的代码,方才成功运行。看来阅读文档,还是要仔细用心啊!
uvloop的文档非常的简单,也没有相关的api说明,根据示例,看来也是简单的替代了asyncio的event_loop,据说性能因此而提升了很多。等等有空查看一下相关的数据,相信网上可以找得到。
第三个用到的异步库是访问操作ostgresql的客户端。据说性能是psycopg2的三倍,也不知道是真是假,不过先用起来在说。这个客户端性能据说很优异,不过我觉得用惯了orm的童鞋会不太适应,因为这个库完全需要自己写sql语句来操作pg。目前也没有哪个orm采用了这个客户端来做驱动,也许等这个项目完成了以后,我可以试着改写一个orm来操作asyncpg。不过这是后话,暂且不表。
目前项目已经放到github上面,如果有谁有兴趣的话,可以下载下来看一看。不过目前代码还非常简单,一点点在做增加,最近添加的修改就是增加了logger,通过logger来记录程序运行的错误,以前的做法只是很简单的通过traceback来写入文件,文件还要自己手动删除,很简陋。以下是github链接:goldmap
今天听同事说到了西部世界这部美剧,据说很不错看,等有空了我也来搜一搜看一看吧(〜 ̄_ ̄)〜