区块链技术博客
www.b2bchain.cn

从布尔值到异常求职学习资料

本文介绍了从布尔值到异常求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

本文转载自【何以解耦】:https://codedecoupled.com/exception.html

在实现业务逻辑之前,我们通常需要检查一些前提条件,比如实现库存管理系统中的库存增加逻辑:

class ProductSku {     public function addStock($number): void     {      } }

在实现 addStock 时,我们需要确定 $number 的值为正。因为负数在这里是没有意义的,逻辑上无法处理,为了防止 Bug,我们需要对其进行检测。

显而易见的操作是写一个返回布尔值的检测函数:

class ProductSku {     public function addStock($number): void     {         if (!$this->isValid($number)) {             return;         }          $this->increment('stock', $number);     }      private function isValid($number): bool     {         return $number > 0;     } }

类方法 isValid 充当了一个检测函数,当 $number 为负时,addStock 直接返回。

让我们再仔细分析一下以上代码。当 $number 为负时,实际上程序已经出现了此段代码无法处理的情况,只是 addStock 直接返回将这个情况隐藏了,理论上我们应该将这种情况暴露出来以便调试(Debug)。

处理检测前提条件更健康的做法是使用异常(Exception),使用异常重构以下代码:

class ProductSku {      public function addStock($number): void     {         $this->guard($number);          $this->increment('stock', $number);     }      private function guard($number)     {         if ($number > 0) {             throw new DomainException('Invalid number to add '.$number);         }     } }

抛出异常来处理代码中无法处理的情况,这样子便于调试,代码的质量也能得到相应的提高。

本文转载自【何以解耦】: https://codedecoupled.com/value-object.html ,如果你也对 TDD,DDD 以及简洁代码感兴趣,欢迎关注公众号【何以解耦】,一起探索软件开发之道。

本文转载自【何以解耦】:https://codedecoupled.com/exception.html

在实现业务逻辑之前,我们通常需要检查一些前提条件,比如实现库存管理系统中的库存增加逻辑:

class ProductSku {     public function addStock($number): void     {      } }

在实现 addStock 时,我们需要确定 $number 的值为正。因为负数在这里是没有意义的,逻辑上无法处理,为了防止 Bug,我们需要对其进行检测。

显而易见的操作是写一个返回布尔值的检测函数:

class ProductSku {     public function addStock($number): void     {         if (!$this->isValid($number)) {             return;         }          $this->increment('stock', $number);     }      private function isValid($number): bool     {         return $number > 0;     } }

类方法 isValid 充当了一个检测函数,当 $number 为负时,addStock 直接返回。

让我们再仔细分析一下以上代码。当 $number 为负时,实际上程序已经出现了此段代码无法处理的情况,只是 addStock 直接返回将这个情况隐藏了,理论上我们应该将这种情况暴露出来以便调试(Debug)。

处理检测前提条件更健康的做法是使用异常(Exception),使用异常重构以下代码:

class ProductSku {      public function addStock($number): void     {         $this->guard($number);          $this->increment('stock', $number);     }      private function guard($number)     {         if ($number > 0) {             throw new DomainException('Invalid number to add '.$number);         }     } }

抛出异常来处理代码中无法处理的情况,这样子便于调试,代码的质量也能得到相应的提高。

本文转载自【何以解耦】: https://codedecoupled.com/value-object.html ,如果你也对 TDD,DDD 以及简洁代码感兴趣,欢迎关注公众号【何以解耦】,一起探索软件开发之道。

本文转载自【何以解耦】:https://codedecoupled.com/exception.html

在实现业务逻辑之前,我们通常需要检查一些前提条件,比如实现库存管理系统中的库存增加逻辑:

class ProductSku {     public function addStock($number): void     {      } }

在实现 addStock 时,我们需要确定 $number 的值为正。因为负数在这里是没有意义的,逻辑上无法处理,为了防止 Bug,我们需要对其进行检测。

显而易见的操作是写一个返回布尔值的检测函数:

class ProductSku {     public function addStock($number): void     {         if (!$this->isValid($number)) {             return;         }          $this->increment('stock', $number);     }      private function isValid($number): bool     {         return $number > 0;     } }

类方法 isValid 充当了一个检测函数,当 $number 为负时,addStock 直接返回。

让我们再仔细分析一下以上代码。当 $number 为负时,实际上程序已经出现了此段代码无法处理的情况,只是 addStock 直接返回将这个情况隐藏了,理论上我们应该将这种情况暴露出来以便调试(Debug)。

处理检测前提条件更健康的做法是使用异常(Exception),使用异常重构以下代码:

class ProductSku {      public function addStock($number): void     {         $this->guard($number);          $this->increment('stock', $number);     }      private function guard($number)     {         if ($number > 0) {             throw new DomainException('Invalid number to add '.$number);         }     } }

抛出异常来处理代码中无法处理的情况,这样子便于调试,代码的质量也能得到相应的提高。

本文转载自【何以解耦】: https://codedecoupled.com/value-object.html ,如果你也对 TDD,DDD 以及简洁代码感兴趣,欢迎关注公众号【何以解耦】,一起探索软件开发之道。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 从布尔值到异常求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们