コード臭59 -基本/do機能
8618 ワード
並べ替え、dosort、basicsort、dobasicsort、Primitivesort、SuperBasicPrimitivesort、誰が実際の作業を行うのですか?
TL博士:より良い解決のために叫ぶミニラッパーのための近道.
読みやすさ 悪いネーミング低粘着性 シングル責任原則 良いオブジェクトラッパーを使用する は、ダイナミックな装飾者 を使います
サンプルコード
宣言性 結論
TL博士:より良い解決のために叫ぶミニラッパーのための近道.
問題
解決策
サンプルコード
間違い
<?
final class Calculator {
private $cachedResults;
function computeSomething() {
if (isset($this->cachedResults)) {
return $this->cachedResults;
}
$this->cachedResults = $this->logAndComputeSomething();
}
private function logAndComputeSomething() {
$this->logProcessStart();
$result = $this->basicComputeSomething();
$this->logProcessEnd();
return $result;
}
private function basicComputeSomething() {
/// Do Real work here
}
}
右
<?
final class Calculator {
function computeSomething() {
// Do Real work here since I am Compute!
}
}
//Clean and cohesive class, single responsibility
final class CalculatorDecoratorCache {
private $cachedResults;
private $decorated;
function computeSomething() {
if (isset($this->cachedResults)) {
return $this->cachedResults;
}
$this->cachedResults = $this->decorated->computeSomething();
}
}
final class CalculatorDecoratorLogger {
private $decorated;
function computeSomething() {
$this->logProcessStart();
$result = $this->decorated->computeSomething();
$this->logProcessEnd();
return $result;
}
}
検出
doxxx ()やbasicxx ()のような慣習に従うと、静的なプリンタに対してラッピングメソッドを見つけるように指示することができます.
タグ
<?
final class Calculator {
private $cachedResults;
function computeSomething() {
if (isset($this->cachedResults)) {
return $this->cachedResults;
}
$this->cachedResults = $this->logAndComputeSomething();
}
private function logAndComputeSomething() {
$this->logProcessStart();
$result = $this->basicComputeSomething();
$this->logProcessEnd();
return $result;
}
private function basicComputeSomething() {
/// Do Real work here
}
}
<?
final class Calculator {
function computeSomething() {
// Do Real work here since I am Compute!
}
}
//Clean and cohesive class, single responsibility
final class CalculatorDecoratorCache {
private $cachedResults;
private $decorated;
function computeSomething() {
if (isset($this->cachedResults)) {
return $this->cachedResults;
}
$this->cachedResults = $this->decorated->computeSomething();
}
}
final class CalculatorDecoratorLogger {
private $decorated;
function computeSomething() {
$this->logProcessStart();
$result = $this->decorated->computeSomething();
$this->logProcessEnd();
return $result;
}
}
doxxx ()やbasicxx ()のような慣習に従うと、静的なプリンタに対してラッピングメソッドを見つけるように指示することができます.
タグ
結論
我々は開発者の生活の中でいくつかの時間のこの種の方法に遭遇した、我々は何かがそれらとokではなかったにおいがした.今はそれらを変更する時間です!
詳しい情報
何が正確に名前です-パート2リハビリ
マキシ・コンティ・ 5月23日・ 5分読む
#tutorial
#codenewbie
#programming
#webdev
% [ https://en.wikipedia.org/wiki/Wrapper_function ]
% [ https://en.wikipedia.org/wiki/Decorator_pattern ]
クレジット
Roger BradshawのUnsplashによる写真
The primary disadvantage of Wrap Method is that it can lead to poor names. In the previous example, we renamed the pay method dispatchPay() just because we needed a different name for code in the original method.
マイケルマイケル
ソフトウェア工学大引用
マキシ・コンティ・ Dec 28 ' 20・ 13分読む
#codenewbie
#programming
#quotes
#software
この記事はCodesmellシリーズの一部です.
あなたのコードの臭い部分を見つける方法
マキシ・コンティ・ May 21 ' 21・ 4分読む
#codenewbie
#tutorial
#codequality
#beginners
Reference
この問題について(コード臭59 -基本/do機能), 我々は、より多くの情報をここで見つけました
https://dev.to/mcsee/code-smell-59-basic-do-functions-2a86
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
何が正確に名前です-パート2リハビリ
マキシ・コンティ・ 5月23日・ 5分読む
#tutorial
#codenewbie
#programming
#webdev
% [ https://en.wikipedia.org/wiki/Wrapper_function ]
% [ https://en.wikipedia.org/wiki/Decorator_pattern ]
クレジット
Roger BradshawのUnsplashによる写真
The primary disadvantage of Wrap Method is that it can lead to poor names. In the previous example, we renamed the pay method dispatchPay() just because we needed a different name for code in the original method.
マイケルマイケル
ソフトウェア工学大引用
マキシ・コンティ・ Dec 28 ' 20・ 13分読む
#codenewbie
#programming
#quotes
#software
この記事はCodesmellシリーズの一部です.
あなたのコードの臭い部分を見つける方法
マキシ・コンティ・ May 21 ' 21・ 4分読む
#codenewbie
#tutorial
#codequality
#beginners
Reference
この問題について(コード臭59 -基本/do機能), 我々は、より多くの情報をここで見つけました
https://dev.to/mcsee/code-smell-59-basic-do-functions-2a86
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
The primary disadvantage of Wrap Method is that it can lead to poor names. In the previous example, we renamed the pay method dispatchPay() just because we needed a different name for code in the original method.
ソフトウェア工学大引用
マキシ・コンティ・ Dec 28 ' 20・ 13分読む
#codenewbie
#programming
#quotes
#software
あなたのコードの臭い部分を見つける方法
マキシ・コンティ・ May 21 ' 21・ 4分読む
#codenewbie
#tutorial
#codequality
#beginners
Reference
この問題について(コード臭59 -基本/do機能), 我々は、より多くの情報をここで見つけました https://dev.to/mcsee/code-smell-59-basic-do-functions-2a86テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol