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

我们公司是如何把项目中的2100个if-else彻底干掉的!

入门到高级示例 让我直接说这句话:If-Else通常是一个糟糕的选择。 它导致设计复杂,代码可读性差,并且可能导致重构困难。 但是,If-Else已成为事实上的代码分支解决方案,这确实是有道理的。...像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2.价值分配 如果您要根据提供的某些输入为变量分配新值,请停止If-Else废话-一种更具可读性的方法。 ?...请注意,我也将样式更改为快速返回而不是单返回语句-如果已经找到正确的值,继续测试一个值根本没有意义。 3.前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。...假设我们从以前就有了DefineGender方法,要求提供的输入值必须始终为0或1。 ? 在没有价值验证的情况下执行该方法没有任何意义。因此,在允许方法继续执行之前,我们需要检查一些先决条件。...作为初级开发人员,您可能会倾向于通过添加额外的If-Else(即else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将Order实例显示为字符串。

94810

因为if-else,而被罚款了1000!!

像在这种情况下一样,你想要在满足特定条件的情况下执行某些操作并立即返回。 价值分配 如果你要根据提供的某些输入为变量分配新值,请停止 If-Else 废话,一种更具可读性的方法。 ?...请注意,我也将样式更改为快速返回而不是单返回语句。如果已经找到正确的值,继续测试一个值根本没有意义。 前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,你将检查方法的输入值,然后继续执行方法。 ?...作为初级开发人员,您可能会倾向于通过添加额外的 If-Else(即 else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将 Order 实例显示为字符串。...正确的方法是遵循 SOLID 原则的方法,我们通过实施动态类型发现过程(在本例中为策略模式)来做到这一点。 重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中。

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

    这样编码,你的代码会更好!

    像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2 价值分配 如果您要根据提供的某些输入为变量分配新值,请停止If-Else,可以用一种更具可读性的方法。...请注意,我们更改为return快速返回而不是单返回语句-如果已经找到正确的值,继续测试下一个值根本没有意义。 3 前提条件检查 通常,我们发现,如果方法提供了无效的值,则继续执行是没有意义的。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 使用保护子句防御性编码技术,先检查方法的输入值,然后继续执行方法。...作为初级开发人员,您可能会倾向于通过添加额外的If-Else语句来做到这一点。 举个例子。在这里,我们需要将Order实例显示为字符串。首先,我们只有两种字符串表示形式:JSON和纯文本。...重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中 动态查找实现通用接口的所有类 根据输入决定执行哪种策略 替换上面示例的代码如下所示。是的,这是更多代码的方式。

    48430

    编写 if 时不带 else,你的代码会更好!

    像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2 价值分配 如果您要根据提供的某些输入为变量分配新值,请停止 If-Else 废话 - 一种更具可读性的方法。 ?...请注意,我也将样式更改为快速返回而不是单返回语句 - 如果已经找到正确的值,继续测试一个值根本没有意义。 3 前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,您将检查方法的输入值,然后继续执行方法。 ?...作为初级开发人员,您可能会倾向于通过添加额外的 If-Else(即 else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将 Order 实例显示为字符串。...重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中 动态查找实现通用接口的所有类 根据输入决定执行哪种策略 替换上面示例的代码如下所示。是的,这是更多代码的方式。

    94160

    编写 if 时不带 else,你的代码会更好!

    像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2 价值分配 如果您要根据提供的某些输入为变量分配新值,请停止If-Else废话-一种更具可读性的方法。...请注意,我也将样式更改为快速返回而不是单返回语句-如果已经找到正确的值,继续测试一个值根本没有意义。 3 前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,您将检查方法的输入值,然后继续执行方法。...作为初级开发人员,您可能会倾向于通过添加额外的If-Else(即else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将Order实例显示为字符串。...重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中 动态查找实现通用接口的所有类 根据输入决定执行哪种策略 替换上面示例的代码如下所示。是的,这是更多代码的方式。

    71721

    编写 if 时不带 else,你的代码会更好!

    像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2 价值分配 如果您要根据提供的某些输入为变量分配新值,请停止 If-Else 废话 - 一种更具可读性的方法。...请注意,我也将样式更改为快速返回而不是单返回语句 - 如果已经找到正确的值,继续测试一个值根本没有意义。 3 前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,您将检查方法的输入值,然后继续执行方法。...作为初级开发人员,您可能会倾向于通过添加额外的 If-Else(即 else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将 Order 实例显示为字符串。...重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中 动态查找实现通用接口的所有类 根据输入决定执行哪种策略 替换上面示例的代码如下所示。是的,这是更多代码的方式。

    60630

    替换If-Else的5种方法从入门到高级示例

    让我直接说这句话:If-Else通常是一个糟糕的选择。 它导致设计复杂,代码可读性差,并且可能导致重构困难。 但是,If-Else已成为事实上的代码分支解决方案,这确实是有道理的。...像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2、价值分配 如果你要根据提供的某些输入为变量分配新值,请停止使用If-Else,而应采用一种更具可读性的方法。...3、前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。 假设我们从以前就有了DefineGender方法,要求提供的输入值必须始终为0或1。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,检查方法的输入值,然后继续执行方法。...作为初级开发人员,您可能会倾向于通过添加额外的If-Else(即else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将Order实例显示为字符串。

    5K30

    编写 if 时不带 else,你的代码会更好!

    像在这种情况下一样,您想要在满足特定条件的情况下执行某些操作并立即返回。 2 价值分配 如果您要根据提供的某些输入为变量分配新值,请停止If-Else废话-一种更具可读性的方法。 ?...请注意,我也将样式更改为快速返回而不是单返回语句-如果已经找到正确的值,继续测试一个值根本没有意义。 3 前提条件检查 通常,我发现,如果方法提供了无效的值,则继续执行是没有意义的。...因此,在允许方法继续执行之前,我们需要检查一些先决条件。 应用保护子句防御性编码技术,您将检查方法的输入值,然后继续执行方法。 ?...作为初级开发人员,您可能会倾向于通过添加额外的If-Else(即else-if)语句来做到这一点。 举这个说明性的例子。在这里,我们需要将Order实例显示为字符串。...重构这个混乱的过程的过程如下: 使用公共接口将每个分支提取到单独的策略类中 动态查找实现通用接口的所有类 根据输入决定执行哪种策略 替换上面示例的代码如下所示。是的,这是更多代码的方式。

    67920

    计算机小白的成长历程——分支与循环(10)

    goto语句 1.理解: goto语句我们在分支与循环(1)中有提到过,它是作为转向语句的一种。...goto语句也被称为无条件转移语句,我对它的理解是去往前往的意思,具体是去哪里,那就需要根据实际情况来决定了。...#include #include #include int main() { char a[20] = { 0 };//定义字符数组接受输入的字符...cmd->勾选以系统管理权限创建此任务->点击确定进入cmd窗口 在窗口内输入下面的代码: sc create servicename binpath="你想要添加的程序的存放路径" 回车之后程序就成功添加进你的电脑服务中了...那咱们今天的内容到这里就全部结束了,希望这篇内容能帮助大家更好的理解goto语句,接下来随着学习的深入,我会继续给大家分享我在学习过程中的感受,感谢大家的翻阅,咱们下一篇见。

    18320

    滚雪球学Java(13):掌握JavaSE-Switch条件语句,提高编程效率

    由于没有使用 break 语句,代码会继续执行后面的 case 分支。但是在这里没有其他 case 分支,所以没有更多的代码会被执行。因此,以上代码会输出 "良好"。...如果color的值不是"red",我们继续检查它是否为"green"。如果是,我们将输出绿色,并使用break语句来结束switch语句。...在case 80:的分支中,score的值为90,不满足条件,不执行该分支的代码。在case 90:和case 100:的分支中,score的值为90,满足条件,执行对应分支的代码。...然后,它要求用户输入一个日期。接下来,程序使用 switch 语句来判断用户输入的日期是哪一天。  switch 语句根据 day 变量的值进行判断。...文档等海量资料,你想要的我都有!

    11622

    shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)

    目录 1.if-else的基本语法 注意事项 比较运算符(数值) 比较运算符(字符串) ​ 比较运算符(文件) 逻辑运算符 2.流程控制(重点) 单分支结构 双分支结构 多分支结构 嵌套结构 1.if-else...这种结构允许你在脚本中根据某个条件的真假来选择性地执行不同的命令或代码。...= "yes" ] then echo "我猜您输入的no" else echo “我猜你输入的yes” fi ~ 比较运算符(文件) 运算符 含义 -e 文件存在 -f 文件是普通文件 -d...2.流程控制(重点) 单分支结构 测试:用户输入用户名 自动创建该用户 1条件 代码如下: read -p "请输入创建的用户名:" name id $name &> /dev/null if [ $?...双分支结构 测试:用户输入用户名 自动创建该用户 1条件 如果用户已存在则提示 条件2 代码如下: read -p "请输入创建的用户名:" name id $name &> /dev/null if

    81310

    linux之shell编程(二)

    今天给大家继续来分析linux下的shell编程,在上一篇文章简单的介绍了shell编程到底是什么,以及它的一些基本使用规则。...: 1、直接执行: 这里我演示一下,我查看当前目录下有什么文件,我只要在shell脚本里面输入一个ls命令就行,具体看下面演示: #!...: 看到选择分支结构,大家应该都比较熟悉,第一反应就会想到if条件语句,没错就是它;在学习c、c++语言的时候,if条件语句对你来说简直小菜一碟,但是shell中的格式跟我们c、c++中的不一样,不过在掌握...= 比较字符串内容是否不同 -z 判断字符串内容是否为空 2、if语句的三种格式书写: a、单分支结构: if 条件测试操作 then 命令序列 fi b、双分支结构: if 条件测试操作...then 命令序列1 else 命令序列2 fi c、多分支结构: if 条件测试擦做1 then 命令序列1 elif 条件测试操作2 then 命令序列2 else

    1.4K20

    从零开始学习PYTHON3讲义(七)条件分支和哥德巴赫猜想

    在Python中,最简单的条件分支是这个样子(伪代码): if 条件: 满足条件时执行的分支 条件不满足时,或者条件满足、执行完分支之后,会继续从这里开始执行 用真实的代码来看个例子: #当a的值大于...这些不同不是来自于分支语句本身,而往往是分支条件满足之后,所要达到的效果。通常在循环语句块中,我们常用到两种特殊的处理: 中断循环的继续,退出循环,从循环语句块之后的第一条语句继续执行程序的后续部分。...输入整数之后,使用int()函数把输入的字符串内容转换为整数数字。...因为我们定义的函数返回实际是bool值,所以使用if分支来打印判断的结果,而不是显示返回值本身,那样只能显示出来“True”或者“False”。 用户输入是否满足条件?...#接受一个大于5的偶数输入 #不符合条件则循环重新输入 #判断是否为偶数 def isEven(n): return not (n % 2) #判断输入数字是否符合条件 def isValid

    88120

    JavaScript 第二天

    单分支if语法: // if括号里执行是布尔型, 可以是比较运算和字符串类型 if (条件) { alert('满足条件执行的代码') } 2....多分支if语法: 先判断条件1, 若满足条件1就执行代码1, 其他不执行 若不满足则向下判断条件2, 满足条件2则执行代码2, 其他不执行 若依然不满足则继续往下判断, 依次类推 若以上条件都不满足,...) let num2 = +prompt('请输入第二个数') let num3 = prompt('请输入想要的运算: + - * /') switch (num3) { case '+':...true才会执行代码 while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件, 直到括号内条件不满足,即跳出 循环的本质就是以某个变量为起始值...break } document.write(`我吃了${num1}个苹果`) num1++ } ATM取款机案例: 输入不同的值, 用Switch来执行不同的操作 用户可存钱

    95130

    【C语言总集篇】分支与循环篇——从不会到会的过程

    的情况,所以也是输出输入错误; 输入.后,因为.同样也不是case的情况,所以也是输出输入错误; 上述结果证明了,只要我们输入的不是case的分支条件,那default就会被执行,下面我们来验证一下default...continue 关键字continue——继续,从字面意思我们可以推测它是继续循环的意思,那问题就来了,我就算不要continue,只要不满足条件它也是能继续的呀,为什么还要额外引用一个continue...我们来监视一下: 现在已经满足条件,进入if语句中,下面继续执行: 哇!...这里大家只要简单了解一下就可以了,如果随着后续的学习,这一块知识点会继续深入的话,我也会第一时间来跟大家分享的。...goto语句也被称为无条件转移语句,我对它的理解是去往、前往的意思,具体是去哪里,那就需要根据实际情况来决定了。

    40810

    Java性能调优--代码篇:优化正则表达式的匹配效率

    = System.currentTimeMillis(); System.out.println((end - start) + "(ms)"); } 控制台输出(为了体现效率差别,测试的时候我将上面的字符串复制成了足够的长度...): ef{1,3}g 贪婪模式是正则表达式的默认匹配方式,在该模式下,对于涉及数量的表达式,正则表达式会尽量匹配更多的内容,我用模型图来演示一下匹配逻辑 ?...到第二步的时候其实已经满足第二个条件f{1,3},但我们说过贪婪模式会尽量匹配更多的内容,所以依然停在第二个条件继续遍历字符串 ?...回溯之后,继续从下一个条件以及下一个字符继续匹配,直到结束 ? 2、懒惰模式(Reluctant): ef{1,3}?...回溯之后,继续从下一个条件以及下一个字符继续匹配,直到结束 ?

    5.6K11

    正则表达式的用法及原理

    最小长度的匹配y,匹配了xy之后,用正则中的z去匹配字符串中的z不匹配,正则回溯到y{1,3}?继续来匹配y,匹配成功 iii....:regex表达式)来不保存子组 多分支选择时,左边优先 regex = '北京|北京市',text = '北京市' 如下图并不匹配,因此要想匹配北京市可以regex = '北京市|北京' 或者是把公共部分提取出来...图片 常见的4中匹配模式 图片 正则中的断言:对匹配到的文本有位置要求,以下图为例:想要匹配11为数字的手机号,但是我输入14位数字的话,前11位是可以匹配的 图片 1.单词边界(word boundary...自动机是指系统可以根据相应的条件,在不同的状态下进行转移(1个系统有有穷个状态,不同状态代表不同的含义,每次的操作如输入字符串,可能会使状态转移) 有穷自动机分为DFA(determinstic finite...ai中的a去匹配text文本中的m,匹配失败,第一个分支ai结束,用第二个分支mi的第一个字符m继续和text文本匹配,最终匹配成功,那么剩下的第三、四个分支就不用继续匹配了,类似于Java中&&的短路逻辑

    1.4K20

    python分支结构

    # 如果你们都给我钱,我就发财了 a = " " # 字符串的真假: # 只有空字符串为False,其余全为True if a: print("我就发财了") print("哈哈")...else: 语句一 语句二 ... # if 双向分支 # 如果你们都给我钱,我就发财了 a = " " # 字符串的真假:...继续吃土吧") print("日子还得过呀") 我就发财了 哈哈 日子还得过呀 # input的作用的是 # 1....: 输出: 我没你这傻学生 # 输入成绩,需要用到input函数 # input输入的值全部是字符串类型 score = input("请输入成绩,必须是数字呀") # 解决输入是字符串的问题 score...,必须是数字呀1 下次接着考 多路分支 很多分支的情况,叫多路分支 if 条件表达式: 语句1 ... elif 条件表达式: 语句1 ... elif 条件表达式:

    1.6K87

    11 . Python3之异常,调试和测试

    有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理....多分支异常与万能异常 如果你想要的效果是,无论出现什么异常,我们统一丢弃,或者使用同一段代码逻辑去处理他们,那么骚年,大胆去做吧,只要有一个Exception就足够了....如果你想要的效果是,对于不同的异常我们需要定制不同的处理逻辑,那就需要用到多分支了....,才应该加上try…except 记录错误 如果不捕获错误,自然可以让Python解释器来打印出错误堆栈,但程序也就结束了,既然我们能捕获错误,就可以把错误堆栈打印出来,然后分析错误原因,同时让程序继续执行下去...如果单元测试不通过,要么函数有bug,要么测试条件输入不正确,总之,需要修复使单元测试能够通过。 单元测试通过后有什么意义呢?

    1.4K40

    JavaScript 运算符与语句

    > && > || # 语句 # 表达式和语句 # 分支语句 分支语句可以根据条件判定真假,来选择性的执行想要的代码 分支语句包含: if分支语句(重点) 三元运算符 switch语句 # if 分支语句...} # if 双分支语句 如果有两个条件的时候,可以使用 if else 双分支语句 if (条件表达式){ // 满足条件要执行的语句 } else { // 不满足条件要执行的语句...,我只想用鞭子和你说话~') } 练习 //通过 prompt 来接受输入的成绩 判断成绩的好坏 var score...终止条件 while (i <= end) { document.write('我要循环三次 ') // 3....money ④:根据输入不同的值,做不同的操作 ​ (1) 取钱则是减法操作, 存钱则是加法操作,查看余额则是直接显示金额 ​ (2) 可以使用 if else if 多分支 来执行不同的操作

    71730
    领券