当前位置: 首页 > 后端技术 > Python

关于Python项目规范性整体调整过程的思考

时间:2023-03-25 21:20:17 Python

本文主要记录Python数据统计分析项目规范性整体调整的过程,以及自己的一些思考。为什么要调整?主要是为了解决目前数据程序不易测试和发现错误的情况。调整公共模块,在出错时向业务层抛出错误,让告警模块将错误信息上传到Kafka,最终可以主动发送告警邮件。并且方便添加除报警外的其他节目嵌入点。调整所有Python数据统计分析程序,满足pep8规范和GooglePythonstyle规范,减少IDE提示。完善代码注释和文档,方便后续维护(之前的开发者都是Erlang风格,提倡不写或者少写注释)。认清程序现状项目结构:目前整个数据统计分析项目的总体模型是各个面向数据业务的统计分析程序相互独立。几乎所有的数据统计分析程序都依赖底层的公共模块。包括数据库模块、日志模块、CDN相关模块、心跳模块、阿里云各产品打包模块、网宿云各产品打包模块等。每个公共模块和每个统计分析程序都是熟人写的,以及风格完全不同,包括C++风格、Erlang风格和Python。IDE出现各种不符合规范的提示。对于公共模块中出现的错误,为了不影响业务层(原因猜测),一般直接在本模块中捕获,不会抛给业务层,也不会做太多处理,使得错误很难被发现。很多函数的返回值处理成功和失败时,返回值个数不一致,导致低概率程序出现各种解包错误。这种多返回值语言的所有常见错误和错误都需要调整。确定程序调整原则底层公共模块的返回值个数需要一致。与外界交互的公共模块(数据库、oss、日志服务等)必须返回执行是否成功的状态,如果有错误需要返回错误状态和错误原因给上面那层。封装公共模块时可以使用类,但对外提供的功能接口优先以函数的形式使用。所有班级统一调整为新式班级。删除公共模块中的死代码。完成笔记。完整的文档。录制程序调整过程qk_agent_praser重命名为qk_agent_parser,使用该模块的地方需要做调整。原因:拼写错误需要及时修改。qk_agent_praser没有外部函数接口调整,只有内部调整(减少split分析次数),没有外部影响。check_up只改变了少量的format(由于使用了循环调度,程序退出后,存在sock绑定的addr没有释放的问题,导致需要等待sock被回收下一个单元测试)。qk_email提供了功能性的对外接口,因此监控程序中使用的部分代码需要修改。qk_heartbeat添加了两个功能性外部接口。修改心跳间隔为可配置,所以需要调整调用方式才能使用心跳模块。qk_ipdb调整了类名和返回值,需要修改使用ip数据库对应方法的地方(ip查询和数据统计程序)。数据库连接池初始化返回值变化(返回连接池是否创建成功,创建失败返回)。mysql_query的返回值已被修改。当查询失败时,它不会返回一个空列表,而是返回False,str(e)。aliyun_oss:oss相关的返回格式,全部修改(相应的,使用oss的程序也改了很多)。aliyun_cdn:在返回值中返回请求状态码和请求文本。aliyun_kafka:生产和消费都有返回值。修改了aliyun其他模块的返回值。网速查询带宽模块增加了指定时间段查询,但时间不能太长,否则会导致数据不全(网速接口造成)。根据公告模块,修改相应的调用方法,调整所有模块、类、方法、函数的注释,明确参数含义和返回值,完成文档。思考和感知。或许上述调整现在看来是理所当然的。这是编写程序的开始。当时应该都考虑到了,但在现实中,由于种种原因,程序变成了一个需要整体调整的鬼。在调整的过程中,也发现之前规定的一些调整原则存在一定的问题,导致最终放弃。比如其中一个原则:业务层需要以类的形式进行完整的封装,而不是一个纯函数,方便MixIn添加的额外功能,比如数据埋接口、添加日志、属性检查等任何你想MixIn的函数乍一看我觉得这个原则带来的好处很多,但实际上它带来了很多变化,包括整个程序结构,表达形式和调用方式程序。最终,这个原则被放弃了。最后,所有开发者都应该尽可能的参与需求分析,了解需求,明确自己的目标,记住需求分析时女神李若彤的模样,而不是验收时小笼包陈妍希的模样并交付。参考:Google-PythonStyleSpecification记得给我点个赞哦!对计算机各个方向的视频课程和电子书,从入门、进阶、实用进行了认真梳理,并按照目录进行合理分类。你总能找到你需要的学习资料。你在等什么?立即关注并下载!!!念念不忘,必有回响,朋友们,请点个赞,万分感谢。我是职场亮哥,四年工作经验的YY高级软件工程师,拒绝当领导的斜杠程序员。听我说,我进步很大。如果有幸帮到你,请给我一个【点赞】,给我一个关注,如能评论鼓励,将不胜感激。职场凉阁文章列表:更多文章我的所有文章和回答均与版权保护平台合作,版权归职场凉阁所有。未经授权转载必究!