草庐IT

独家 | 6种让Python程序变慢的坏习惯

作者: ChristopherTao翻译:王可汗校对:王雨桐本文约1800字,建议阅读5分钟本文总结了Python代码中经常被忽略的影响代码的运行速度常见问题。随着Python的流行,用户数量也在增加。Python确实相对容易上手,也非常灵活,因此有更多可能的方式来实现一个函数。当有多种方法可以实现一件特定的事情时,这意味着每种方法都有优缺点。在本文中,我收集了6种编写Python代码的典型方法,这些方法可能导致相对较差的性能。一、不导入根模块在使用Python时,我们无法避免的一件事就是导入模块,无论是内置模块还是第三方模块。有时我们可能只需要其中的一个或几个函数或对象。在这种情况下,我们应

读C#代码整洁之道笔记04_重构C#代码识别代码坏味道

1. 应用程序级别代码坏味道1.1. 布尔盲点1.1.1. 由于函数使用布尔值而导致的信息缺失1.1.2. 解决方案是将布尔替换为枚举类型1.2. 组合爆炸1.2.1. 不同的代码使用不同的参数组合来执行同一件事情的产物1.2.2. 解决方案使用泛型1.3. 人为复杂性1.3.1. 简单的架构复杂化1.3.2. 解决方案务必保持软件的简单易懂(KeepItSimple,Stupid,KISS)1.4. 数据泥团1.4.1. 相同的字段同时出现在不同的类和参数列表中时1.4.1.1. 说明系统中缺少类定义1.4.2. 识别并泛化缺失的类可以降低系统的复杂度1.5. 粉饰注释1.5.1. 注释中用

读C#代码整洁之道笔记04_重构C#代码识别代码坏味道

1. 应用程序级别代码坏味道1.1. 布尔盲点1.1.1. 由于函数使用布尔值而导致的信息缺失1.1.2. 解决方案是将布尔替换为枚举类型1.2. 组合爆炸1.2.1. 不同的代码使用不同的参数组合来执行同一件事情的产物1.2.2. 解决方案使用泛型1.3. 人为复杂性1.3.1. 简单的架构复杂化1.3.2. 解决方案务必保持软件的简单易懂(KeepItSimple,Stupid,KISS)1.4. 数据泥团1.4.1. 相同的字段同时出现在不同的类和参数列表中时1.4.1.1. 说明系统中缺少类定义1.4.2. 识别并泛化缺失的类可以降低系统的复杂度1.5. 粉饰注释1.5.1. 注释中用

代码坏味道(一)

1、神秘命名  模块、类、函数、变量等的命名是编程中最难的两件事之一,正因为如此,改名可能是最常用的重构手法  对应的重构手法有:改变函数声明、变量改名、字段改名2、重复代码  顾名思义,就是在多处看到相同的代码结构  对应的重构手法有:移动语句、提炼函数3、过长的函数  确保函数内代码处在同一层抽象级,无须担心进程内的函数开销,提倡小函数4、过长参数列表  一个函数的参数一旦出现3个及以上,就需要注意,不易理解、使用和维护  对应的重构手法有:以查询取代参数、保持对象完整、引入参数对象、移除标记参数、函数组合成类5、全局数据  全局数据最显而易见的形式就是全局变量,他j可以给函数增加状态,这

代码坏味道(一)

1、神秘命名  模块、类、函数、变量等的命名是编程中最难的两件事之一,正因为如此,改名可能是最常用的重构手法  对应的重构手法有:改变函数声明、变量改名、字段改名2、重复代码  顾名思义,就是在多处看到相同的代码结构  对应的重构手法有:移动语句、提炼函数3、过长的函数  确保函数内代码处在同一层抽象级,无须担心进程内的函数开销,提倡小函数4、过长参数列表  一个函数的参数一旦出现3个及以上,就需要注意,不易理解、使用和维护  对应的重构手法有:以查询取代参数、保持对象完整、引入参数对象、移除标记参数、函数组合成类5、全局数据  全局数据最显而易见的形式就是全局变量,他j可以给函数增加状态,这

代码坏味道(二)

1、可变数据  数据更新导致,而另外一处期待不同的值  对应的重构手法:封装变量、拆分变量、移动语句、提炼函数、将查询函数和修改函数分离、移除设值函数、查询取代派生变量、函数组合成类、函数组合成变换、引用对象改为值对象  欠理解2、发散式变化  每次只关心一个上下文(一旦产生修改,跳到系统某个点,只在该处做修改)  对应的重构手法:拆分阶段、搬移函数、提炼函数、提炼类3、霰弹式修改  类似于发散式变化,但是又恰恰相反(没明白书里这话是什么意思)  对应重构手法:搬移函数、搬移字段、函数组合成类、函数组合成变换、拆分阶段、内联函数、内联类4、依恋情结  最大化区域内部交互、最小化跨区域交互,也可

代码坏味道(二)

1、可变数据  数据更新导致,而另外一处期待不同的值  对应的重构手法:封装变量、拆分变量、移动语句、提炼函数、将查询函数和修改函数分离、移除设值函数、查询取代派生变量、函数组合成类、函数组合成变换、引用对象改为值对象  欠理解2、发散式变化  每次只关心一个上下文(一旦产生修改,跳到系统某个点,只在该处做修改)  对应的重构手法:拆分阶段、搬移函数、提炼函数、提炼类3、霰弹式修改  类似于发散式变化,但是又恰恰相反(没明白书里这话是什么意思)  对应重构手法:搬移函数、搬移字段、函数组合成类、函数组合成变换、拆分阶段、内联函数、内联类4、依恋情结  最大化区域内部交互、最小化跨区域交互,也可

数据库坏块触发ORA-00600 [13013] [5001] [423] 从而导致数据库实例崩溃

环境概述操作系统:WIN2019ORACLE版本:19.17.0.0.0故障现象客户反馈数据库经常用着用着就连不上,通过查看alert日志发现是数据库实例崩溃。具体信息如下2023-02-09T03:04:36.619773+08:00ErrorsinfileD:\APP\ADMINISTRATOR\diag\rdbms\his\his\trace\his_smon_9116.trc(incident=114022):ORA-00600:internalerrorcode,arguments:[13013],[5001],[423],[12633689],[5],[12633689],[17]

数据库坏块触发ORA-00600 [13013] [5001] [423] 从而导致数据库实例崩溃

环境概述操作系统:WIN2019ORACLE版本:19.17.0.0.0故障现象客户反馈数据库经常用着用着就连不上,通过查看alert日志发现是数据库实例崩溃。具体信息如下2023-02-09T03:04:36.619773+08:00ErrorsinfileD:\APP\ADMINISTRATOR\diag\rdbms\his\his\trace\his_smon_9116.trc(incident=114022):ORA-00600:internalerrorcode,arguments:[13013],[5001],[423],[12633689],[5],[12633689],[17]

读C#代码整洁之道笔记04_重构C#代码识别代码坏味道

1. 应用程序级别代码坏味道1.1. 布尔盲点1.1.1. 由于函数使用布尔值而导致的信息缺失1.1.2. 解决方案是将布尔替换为枚举类型1.2. 组合爆炸1.2.1. 不同的代码使用不同的参数组合来执行同一件事情的产物1.2.2. 解决方案使用泛型1.3. 人为复杂性1.3.1. 简单的架构复杂化1.3.2. 解决方案务必保持软件的简单易懂(KeepItSimple,Stupid,KISS)1.4. 数据泥团1.4.1. 相同的字段同时出现在不同的类和参数列表中时1.4.1.1. 说明系统中缺少类定义1.4.2. 识别并泛化缺失的类可以降低系统的复杂度1.5. 粉饰注释1.5.1. 注释中用