PyHubWeekly | 第四期:清理无效代码,给你的项目瘦瘦身吧!

简介: 当我们开发一个项目过程中,会不断的对某些部分进行增删、修改,这个过程中会产生很多无用的引用和代码。当这个工程代码量逐渐增多时,我们用人眼挨个去寻找无用代码自然是不现实的,本文就来介绍一款能够瞬间查找、修改项目中无效代码的工具,给你的项目瘦瘦身。

本期内容PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具,本期为大家推荐GitHub上4个优质的Python项目,它们分别是:
1. fastapi2. system-design-primer3. thefuck4. vulture下面分别来介绍一下上述4个GitHub项目。1. fastapi

在项目开发中,往往会涉及多个模块,在不同模块之间如何进行数据传递和调用是一个成熟系统需要慎重考虑的。

如果是对实时性要求不高的离线系统,有很多选择,例如,最简单的通过数据库建立连接。但是,对于那些对效率要求较高的系统,往往会选择restful接口。

目前,Python中用于开发api接口的工具比较知名的有flask,而本文介绍的fastapi调用更加高效、鲁棒性更强、开发和调试更加便捷,而且支持可视化的文档界面可以用于手动调试接口。

12.png

2. system-design-primer

很多互联网、IT行业的从业者都会考虑一个问题,有一天年龄大了、该何去何从?产品经理?项目经理?

我个人认为架构师也是一个很不错的选择,一个好的架构能够让开发过程中效率大大提升。我们在开发过程中处处也都在接触架构,往小了说会接触算法核心的架构,往大了会接触整个系统从数据层到前端多个环节的架构。

在开发一些项目之后我愈发的认识到一个优秀的架构师有多么难得,要同时兼顾考虑web服务、数据读写、运维安全、网络通讯、缓存机制、负载均衡等。

因此,我给自己制定的2020年计划中有一项就是在大型系统的架构方面有更加深入的学习,无意之中我看到system-design-primer这个项目,如获至宝,它从CDN到负载均衡、从反向代理到应用层、从数据库到缓存、从异步到通讯都进行了深入的阐述,非常实用且切合实际的项目需求。

13.jpg


3. thefuck

这是一款由Python开发的命令行纠错工具。

Linux命令是在开发过程中经常接触的工具,当我们输入一长串命令,按下enter键之后怎么办?

  • 重新输入一遍
  • 上键+移动到指定位置修改

这显然是比较低效的。thefuck提供了简单高效的解决方案,虽然它名称看上去粗俗了一些,但是的确好用,当输入命令错误之后,只需要在命令行下输入f**k即可显示更正后的命令,免得再去手动修改。

image.gif


4. vulture

vulture是一款无用代码查找、清理工具。

当我们开发一个项目过程中,会不断的对某些部分进行增删、修改,这个过程中会产生很多无用的引用和代码。当这个工程代码量逐渐增多时,我们用人眼挨个去寻找无用代码自然是不现实的。

vulture在Python程序中查找未使用的代码。这对于清理和查找大型代码库中的错误很有用。如果同时在库和测试套件上运行vulture,则可以找到未经测试的代码。

例如,我们新建一个code.py文件,

import os
class Greeter:
    def greet(self):
        print("Hi")
def hello_world():
    message = "Hello, world!"
    greeter = Greeter()
    greet_func = getattr(greeter, "greet")
    greet_func()
if __name__ == "__main__":
    hello_world()

调用vulture,

> vulture code.py
dead_code.py:1: unused import 'os' (90% confidence)
dead_code.py:4: unused function 'greet' (60% confidence)
dead_code.py:8: unused variable 'message' (60% confidence)

这样,就可以输出无用的引用、函数、变量,同时,会给出每一个判断的可信度。

此外,vulture还支持设置最小可信度、白名单等功能,这对于减少项目的冗余代码非常有用。

新春祝福

工作日的最后一天,此时,我已经踏上了回家的旅途。

这本应该是一件令人非常激动、开心的事情,而今年却被新型冠状病毒蒙上了一层阴霾。街道上、火车站,到处都是戴着口罩、脚步匆匆的行人,从路人的表情、言语中更加能够感受到此次病毒的可怕与当下氛围的紧张感,这让我真切的感受到,人们在大自然面前是如此的渺小而无助。

多难兴邦,我对钟南山院士的一句话印象深刻--“这不是第一次,也绝不是最后一次”,我相信,在医务工作者和全国人民的共同努力下,针对新型冠状病毒终究会找到合适的解决方案。

无论面对什么样的困难,在这一年一度的佳节来临之际,祝福大家身体健康、阖家欢乐!

相关文章
|
8月前
|
JavaScript API
【源码共读】组件太多,重复工作量大?这次一行命令带你解放双手!
【源码共读】组件太多,重复工作量大?这次一行命令带你解放双手!
81 0
|
存储 缓存 搜索推荐
想要快速地拥有Sitecore DXP平台!这九个开发大坑一定要避开!
随着互联网技术的深入的发展,人们对于个性化的渴望已经达到了新的阈值,这也让以数字洞察力、个性化体验为名的Sitecore DXP平台成为了品牌们竞相追捧的新宠。而在这样的需要背景下,一众新手企业纷纷投身市场,想要分一杯羹。但是经验不足的新人入场,难免会带来不少麻烦,甚至引发了人们对于Sitecore性能的质疑。
|
安全 测试技术 BI
最齐全不接受反驳、常用BUG管理工具系统
最齐全不接受反驳、常用BUG管理工具系统
847 0
最齐全不接受反驳、常用BUG管理工具系统
|
XML Java 数据格式
从非诚勿扰看数据索引,优化代码小妙招
从非诚勿扰看数据索引,优化代码小妙招
150 0
|
设计模式 存储 JavaScript
【学习计划📚】日积月累 · No1(每日更新,建议收藏)!
前言 大家好,我是HoMeTown,最近发现自己的小群也有一百多个兄弟了,寻思着为兄弟们做一些什么!让大家一起进步!
179 0
|
开发框架 Java 测试技术
【测试基础】五、这样提bug单,开发小哥还会怼你么?
【测试基础】五、这样提bug单,开发小哥还会怼你么?
【测试基础】五、这样提bug单,开发小哥还会怼你么?
|
存储 Python
热饭的测开成果盘点第二十二期:wqrfnium自动维护库
本期介绍的是一个组件,身为python的第三方库,已经被pypi收录,且国内镜像源也早已复制。也就是说可以通过pip install 来下载。这个组件包括:wqrfnium 和 wqrfnium_app 。他们都是基于python/selenium/appium的一个可以自动维护ui元素,抵抗ui元素定位变化的组件。
热饭的测开成果盘点第二十二期:wqrfnium自动维护库
|
存储 Unix 程序员
程序员的自白:我如何让失败项目起死回生,变成价值 270 亿美元的应用程序?
Slack 是颇受欢迎的企业沟通和协作工具,目前有 63 万企业在使用。2014 年初拿到了 4000 多万美元融资之后又完成 1.2 亿美元的融资,其估值达到了 11.2 亿美元。2015 年 2 月,slack 成立一周年日活跃用户就达到 50 万人。2019 年 6 月 20 日,创业公司 Slack 正式登陆纽交所。 这个应用起源于一个几乎已经宣告失败的游戏项目,发展成今天一家价值 270 亿美元的公司实属不易。今天,我们来听听 Flicr 与 Slack 的联合创始人 Stewart Butterfield 的轶闻趣事。
146 0
程序员的自白:我如何让失败项目起死回生,变成价值 270 亿美元的应用程序?
|
Java C语言
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
各位学弟学妹们好,作为稍微年长的我(岁月是把杀猪刀啊),今天就给大家补补课。 在大学里的,我们上的计算机专业课程一般都是像操作系统、编译原理、计算机组成原理、计算机网络这些理论课程,还有一些像C语言、Java、.Net这些可以实践的课程,甚至还有可能让你焊一个收音机,但是对于一些基本习惯却很容易被忽略,需要学弟学妹们自行摸索。
233 0
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
|
新零售 数据可视化 大数据
教你五招“必杀技”,你也能当数据“昏析师”
掌握数据分析技能已变成任何岗位“标配”, 今天,网聚宝数据分析师给大家“安利”几种基本的用户数据分析法和场景,帮你轻松提升运营业绩,不再“盲人摸象”! 技能一: 新老客占比分析——你的流量还好吗? 横轴(时间维度):付款日期 2015.12-2017.2期间 纵轴(会员量):会员数  对比维度: 1. 红色趋势线代表老客户,即入店购买2次以上的客户 2. 蓝色趋势线代表新客户,即入店购买1次的客户 分析这些数据我们发现 2015.12-2016.1老客户数量在增长,新客数量下降。
6392 0

相关实验场景

更多