继上周末搞了csgo饰品的爬虫之后,最近一周一直在根据社区小伙伴的意见建议进行优化。不得不说,玩家才是最好的产品经理,很多提出来的建议都让人为之一振,这也直接优化了最终的程序效率、实现方式等,同时也增加了一些新的功能。在这里就以优化篇记录一下本周进行的优化流程吧。
思路回顾
配置优化
先说个功能性不那么强,但直接关乎程序上手热度的更新吧。
配置这问题确实之前没太关注过,自己给自己写程序,更关注的是功能。和后端程序猿做出来的前端一样:能用就行,要啥自行车。不过一旦想推广自己的程序,尤其是在游戏社区中推广,一个良好的UI是极其重要的。在这里,就是自定义配置的方式。
之前写Python一贯的配置方式是直接在一个统一的变量文件中修改变量,比如definitions.py
,虽然是专门定义配置的地方,但是免不了定义的变量和一些简单的处理变量的逻辑交织在一起,对一些刚接触工程的人其实是不甚友好的。所以上周发布不久就优先更新了配置的方式。
这里配置使用的是python的configparser,依旧在definitions.py
里处理变量,但是配置源设定在config/config.ini
中,可以让用户专心只做自己心仪的配置,不需要思考太多东西,对于发布出去的程序来说,的确是一个非常重要的更新。
RawConfigParser
有小伙伴使用发现configparser.ConfigParser()
会转义一些特殊字符,比如百分号,这个在我自己使用的时候确实没有发现。查了一下,使用configparser.RawConfigParser()
就不会对字符进行转义了。
处理配置列表
有一些参数需要配置为列表,但是是以string的形式读进来的。之前面对[a, b, c, ..., n]
这种列表形式的string我都是掐头去尾再将元素一个一个split出来,后来看别人的建议,json.loads('[a, b, c, ..., n]')
直接就解析为list了,确实方便。python对json的支持的确挺好的,写着写着就发现,python确实是一门有趣的语言。