首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么样代码是好代码?

",比较容易搞清楚,避免代码里“坏味道",离好代码就不远了,坏味道一二三及推荐做法: 代码重复 函数太长 如果太长(一般不宜超过200,但不绝对),你自己都不太容易读懂,请不要犹豫,拆成函数吧。...笔者刚毕业,参与一个大型复杂金融软件,核心业务类,函数1000算小case,5000多行不在少数,我内心是哇凉哇凉,还好大致逻辑比较清晰 类太大 一般不宜操过1000,同样不绝对,jdk源码过千不少嘛...还是那个大型复杂金融软件,核心几个Algo C++文件,2万到3万,我心在滴血 数据泥团 即很多地方有相同三四项,两个类中有相同字段、许多函数签名中有相同参数。...把这些应该捆绑在一起数据项,弄到一个类里吧。这样,函数参数列表会变短不少 函数参数列表太长 工作中有7个参数函数调用,搞清楚每个参数业务含意,和顺序有点头晕。...TRUE : FALSE); } 静态工厂方法,不必在每次调用时都创建一个对象;而且相较于构造器,它有名称,便于阅读和理解;同时可以返回原类型任意子类型;也可以根据参数不同,返回不同类对象,如EnumSet

1.3K20

Python玩数据入门必备系列(8):自定义函数与无限参数

此时,我们希望有一个东西,能够把2个变量以及变量之间相加行为合并成一个东西,这就是函数1:def 函数名字(参数1,参数2): 这定义一个函数 2:函数行为是"把 a 和 b 相加,并把结果返回...这里括号非常重要 现在,mysum 已经是一个代表2个数值相加这一函数,在任何地方都可以调用他得到结果: 之前我特别强调把2个变量以及变量之间相加行为合并成一个东西 可以看到,虽然 mysum...: 这似乎是一个办法,但是调用时候代码很丑(看看上面的8) 以前调用 mysum(1,2) 多漂亮呀 ---- 有没有一个办法,能让 Python 帮我收集 mysum 传入参数,放入一个列表中...看看这个机制表达: 1:在参数 nums 前面添加一个 星号(*),表示调用时,可以传入任意个参数,这些参数全收集到一个列表参数现在,mysum 这个自定义函数真不错。...你心血来潮,尝试之前那个丑陋调用: 竟然报错了 这似乎没所谓,但是很多时候我们拿着一个列表数值希望调用我们 mysum 函数,并期望他直接给我正确结果 ---- 解包 有没有一种操作,能自动把一个列表中元素拆解成一个个元素

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

没有之一,我见过漂亮代码!!

函数两个参数分别是将要进行排序子数组下标:l是较低下标,而u是较高下标。函数调用swap(i,j)将会交换x[i]与x[j]这两个元素。...如果重复用n来运行程序,并且用统计方法来分析结果,我们将得到Quicksort在对n个元素进行排序时平均使用了1.4 nlgn次比较。 在理解程序行为上,这是一种不错方法。...现在,这个程序运行时间与n成正比,并且相对于示例3-3需要存储空间与n成正比来说,现在所需存储空间缩减为递归堆栈大小,即存储空间平均大小与lgn成正比。...我们在简化程序时经常要发出这样疑问,“我们真正要解决问题是什么?”或者是,“有没有更好函数来解决这个问题?”...* 只有在不仅没有任何功能可以添加,而且也没有任何功能可以删除情况下,设计师才能够认为自己工作已臻完美。 * 有时候,在软件中根本就不存在最漂亮代码,最漂亮函数,或者最漂亮程序。

1.7K2219

什么样代码是好代码?

代码重复 函数太长 如果太长(一般不宜超过200,但不绝对),你自己都不太容易读懂,请不要犹豫,拆成函数吧。...笔者刚毕业,参与一个大型复杂金融软件,核心业务类,函数1000算小case,5000多行不在少数,我内心是哇凉哇凉,还好大致逻辑比较清晰 类太大 一般不宜超过1000,同样不绝对,jdk源码过千不少嘛...还是那个大型复杂金融软件,核心几个Algo C++文件,2万到3万,我心在滴血 数据泥团 即很多地方有相同三四项、两个类中有相同字段、许多函数签名中有相同参数。...把这些应该捆绑在一起数据项,弄到一个类里吧。这样,函数参数列表会变短不少,简单化了 函数参数列表太长 工作中有7个参数函数调用,搞清楚每个参数业务含意,和顺序有点头晕。...TRUE : FALSE); } 静态工厂方法,不必在每次调用时都创建一个对象;而且相较于构造器,它有名称便于阅读和理解;同时可以返回原类型任意子类型;也可以根据参数不同,返回不同类对象

1.3K60

如何让你代码整洁漂亮

这里没有简单方法或窍门。 这里有一些你可以掌握编写整洁美丽代码方法。...“名称说明什么” Kendrick Lamar很好解释道: “如果我要讲一个真实故事,我会从我命名开始” 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...在任何编程语言中,函数通常是系统中第一,编写好函数是写好代码实质所在。...该技巧可以使得代码容易阅读理解消化。除此之外,我们也要使得函数语句处于同一个抽象程度。 在同一个函数中混合不同层次抽象,会使得其令人迷惑,并且不利于管理。...因为这个原因,写代码时候从 try-catch-finally语句写起是个好实践。这可以帮助你确定可以预期到用户代码,不管代码在 try有没有报错。

85780

如何让你代码整洁漂亮

这里没有简单方法或窍门。 这里有一些你可以掌握编写整洁美丽代码方法。...名称说明什么 Kendrick Lamar很好解释道: 如果我要讲一个真实故事,我会从我命名开始 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...函数是语言动词,而类是名词。在任何编程语言中,函数通常是系统中第一,编写好函数是写好代码实质所在。...该技巧可以使得代码容易阅读理解消化。除此之外,我们也要使得函数语句处于同一个抽象程度。 在同一个函数中混合不同层次抽象,会使得其令人迷惑,并且不利于管理。...因为这个原因,写代码时候从 try-catch-finally语句写起是个好实践。这可以帮助你确定可以预期到用户代码,不管代码在 try有没有报错。

76930

如何让你代码整洁漂亮

这里没有简单方法或窍门。 这里有一些你可以掌握编写整洁美丽代码方法。...“名称说明什么” Kendrick Lamar很好解释道: ”如果我要讲一个真实故事,我会从我命名开始“ 在软件中名称到处都是。我们命名函数、类、参数、包以及其他。...在任何编程语言中,函数通常是系统中第一,编写好函数是写好代码实质所在。...该技巧可以使得代码容易阅读理解消化。除此之外,我们也要使得函数语句处于同一个抽象程度。 在同一个函数中混合不同层次抽象,会使得其令人迷惑,并且不利于管理。...因为这个原因,写代码时候从 try-catch-finally语句写起是个好实践。这可以帮助你确定可以预期到用户代码,不管代码在 try有没有报错。

91960

专属Python开发者完美终端工具

大家好,我是一 今天给大家推荐一个非常精美的终端工具 - Rich Rich 是一个 Python 库,可以为你在终端中提供富文本和漂亮、精美的格式。...可与 Windows 终端一起使用,Windows 经典终端仅限 8 种颜色。 Rich 还可以与 Jupyter NoteBook 一起使用,而无需其他配置。...Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 自带功能参数类似。...,请注意,与内置“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。 有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。..., style="bold red") 输出如下图: 这个范例一次只设置了一文字样式。如果想获得细腻复杂样式,Rich 可以渲染一个特殊标记,其语法类似于 bbcode。

98940

Python 开发者需要知道完美终端工具

可与 Windows 终端一起使用,Windows 经典终端仅限 8 种颜色。 Rich 还可以与 Jupyter NoteBook 一起使用,而无需其他配置。...Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 自带功能参数类似。...,请注意,与内置“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。 有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。..., style="bold red") 输出如下图: 这个范例一次只设置了一文字样式。如果想获得细腻复杂样式,Rich 可以渲染一个特殊标记,其语法类似于 bbcode。...,该方法具有与 print() 类似的界面,除此之外,还能显示当前时间以及被调用文件和

94410

Python自动给抖音小姐姐视频点赞

复杂操作也能做,我们这里就不讲了,因为我们这个抖音爬虫用到 ADB 指令基本也就这些了。a....如果这样都检测不出来,只能说小姐姐藏得太深,或者漂亮不够明显了 大概思路就是这样,下面我们就来动手完成爬虫吧 动手撸码写爬虫 由于爬虫还是稍微有点大,所以我拆成三个部分来写。...主要包括四个函数: start_my_app 函数,用来启动 抖音 APP。 save_video_met 函数,点击 ”点赞“ 按钮。在检测到漂亮小姐姐之后调用。...(华为 Mate 20 Pro),其他型号手机同学,可以根据自己手机屏幕分辨率,对这些参数进行调整。...修改坐标的方法我也大概说一下,在你手机设置中,找到开发人员选项,然后将指针位置这个打开,然后你就可以看到你点击到屏幕位置了,顶部也会显示你点击位置坐标。

89510

专属Python开发者完美终端工具

Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 自带功能参数类似。...,请注意,与内置“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。 有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。...这个范例一次只设置了一文字样式。如果想获得细腻复杂样式,Rich 可以渲染一个特殊标记,其语法类似于 bbcode。...注意其中 log_locals 参数会输出一个表格,该表格包含调用 log 方法局部变量。 log 方法既可用于将长时间运行应用程序(例如服务器)日志记录到终端,也可用于辅助调试。...# 12.错误回溯(traceback) Rich 可以渲染漂亮错误回溯日志,比标准 Python 回溯容易阅读,并能显示更多代码。

98810

专属Python开发者完美终端工具

可与 Windows 终端一起使用,Windows 经典终端仅限 8 种颜色。 Rich 还可以与 Jupyter NoteBook 一起使用,而无需其他配置。...Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 自带功能参数类似。...,请注意,与内置“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。 有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。..., style="bold red") 输出如下图: 这个范例一次只设置了一文字样式。如果想获得细腻复杂样式,Rich 可以渲染一个特殊标记,其语法类似于 bbcode。...,该方法具有与 print() 类似的界面,除此之外,还能显示当前时间以及被调用文件和

95840

Python开发者完美终端工具

可与 Windows 终端一起使用,Windows 经典终端仅限 8 种颜色。 Rich 还可以与 Jupyter NoteBook 一起使用,而无需其他配置。...Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 自带功能参数类似。...,请注意,与内置“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。 有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。..., style="bold red") 输出如下图: 这个范例一次只设置了一文字样式。如果想获得细腻复杂样式,Rich 可以渲染一个特殊标记,其语法类似于 bbcode。...") # 5.Console 控制台记录 Console 对象具有一个 log() 方法,该方法具有与 print() 类似的界面,除此之外,还能显示当前时间以及被调用文件和

1.3K20

谷歌“名猿”Addy Osmani在几天前贴出一段代码

函数是许多现代浏览器命令行API中一个部分,它等价于document.querySelectorAll,你可以将一个CSS选择器作为这个函数参数,然后你就能够获得当前页面中所有匹配这个CSS选择器元素列表...更多关于 当然,除了使用$$函数之外,我们还有一种简单方法,document.all,虽然这并不是一种很规范使用方法,但是它几乎在每一个浏览器中都能运行成功。...在JavaScript中,有好几个类似于数组但是并不是数组对象,除了前面的NodeLists,还有函数参数集合arguments,在这里我们可以使用call或apply函数函数方法运用到这些对象上...这个函数可以接受一个参数,如果参数缺省,默认为十进制,但是你完全可以使用别的数组: (30).toString(); // "30" (30).toString(10); // "30" (30).toString...总结 现在,你已经完全理解了前面的这一代码中各个部分。作为一个程序员,我们应该在完成工作之后多问自己几遍为什么,还有没有更好简洁方法

1.4K20

专属 Python 开发者完美终端工具

可与 Windows 终端一起使用,Windows 经典终端仅限 8 种颜色。 Rich 还可以与 Jupyter NoteBook 一起使用,而无需其他配置。...Python脚本程序中,你只需导入 rich print 方法,该方法和其他 Python 自带功能参数类似。...,请注意,与内置“打印”功能不同,Rich 会将文字自动换行以适合终端宽度。 有几种方法可以为输出添加自定义颜色和样式。你可以通过添加 style 关键字参数来为整个输出设置样式。..., style="bold red") 输出如下图: 这个范例一次只设置了一文字样式。如果想获得细腻复杂样式,Rich 可以渲染一个特殊标记,其语法类似于 bbcode。...") # 5.Console 控制台记录 Console 对象具有一个 log() 方法,该方法具有与 print() 类似的界面,除此之外,还能显示当前时间以及被调用文件和

1.3K30

在Python中绘图,丰富,专业

Excel可以生成漂亮图形,为什么还要使用Python呢? 我们正处于互联网时代。一切都是在线——互联网不可避免地是最大公共数据库。...,为了让本文容易理解,我们只看一下全球确认数字。...df = df.iloc[:,4:] global_num = df.sum() 图2 现在我们有了一个一维表:日期和相应日期的确认冠病毒病例。我们将用它来绘制一段时间内全球冠病毒病例。...pandas提供了一种直接从数据框架绘制图形便捷方法,我们只需要使用dataframe.plot()。但是必须记住,在绘制后要让matplotlib显示图形,就需要使用plt.show()。...后续文章中,我们会讨论如何制作漂亮图形。 注:本文学习整理自pythoninoffice.com。 欢迎在下面留言,完善本文内容,让更多的人学到完美的知识。

1.8K20

Python 输出调试

找出两个输出可能不是很困难,但是如果有五个以上不同输出呢?尝试查找与输出相关代码可能会很耗时。 当然你可以在打印语句中添加文本,使其容易理解: 输出结果。...通过使用icecream,我们不仅可以看到函数输出,还可以看到函数及其参数! 02. 检查执行情况 如果你想要找到执行代码位置,可以通过执行如下所示操作,来查找执行了哪个语句。 输出结果。...使用icecream则无需多余文本信息,就可以轻松地完成上述操作。 输出结果如下。 从输出结果看,函数hello中第5代码已被执行,而第7代码未执行。 03....删除Icecream代码 最后你可以将icecream仅用于调试,而将print用于其他目的(例如漂亮打印)。 输出结果。...由于你可以区分调试打印和漂亮打印,因此搜索和删除所有ic调试语句非常容易。 删除所有调试代码后,你Python代码就整洁了。

51500

这个烂大街用户消费分析案例,我用了点不一样pandas技巧

可以网上搜索"用户消费分析 pandas" 查阅其他同类文章作为对比学习 ---- 数据背景 案例数据为 CDNow 平台上某段时间订单数据,定义加载数据函数3:数据源是文本文件,每列数据由多个空格分隔...7万数据 下方红框信息,表明4个列没有缺失数据 绿色框,看到 user_id 与 date 类型不对 转换类型逻辑我写在加载数据函数中: 6:使用 pd.to_datetime 把非日期类型字段转为日期...= pd.Grouper(key='date', freq='M') 现在统计销售额趋势是这样子: 不过,我们注意到,统计后结果列名不受我们控制,因此,在 pandas 0.25版本追加了一个聚合方式...对象,其中参数分别是列名与统计方法 调用如下: 注意此时我们需要解包操作,把其中定义字典解开为参数传入 ---- 现在可以一次性定义需要用到指标度量: 其次把指标计算也定义出来: 有些计算如果觉得不希望每次统计都重新计算..."每月销售额": "每月消费人数": "每月客单价": 3:多个度量,只需要分别传入即可 "每月平均订单单价": 本次涉及并非一些 pandas 方法,而是使用 pandas 一种模式

1.6K50
领券