ホームページ  >  記事  >  バックエンド開発  >  関数はどのように書くのでしょうか?

関数はどのように書くのでしょうか?

伊谢尔伦
伊谢尔伦オリジナル
2016-12-03 09:40:283112ブラウズ

かつてプログラムにはサブルーチンと関数が含まれていました(おそらく私はこの時代を経験していませんでした)現在、プログラムには関数のみが残っています。

プログラミング言語の関数は、組み込み関数とカスタム関数またはクラスメソッドに分けられます。組み込み関数は直接呼び出すことができますが、カスタム関数はプログラマによって作成されます。

関数はプログラムの非常に重要な部分であり、それを適切に記述するには、いくつかの原則に従う必要があります。

関数は短くする必要があります。 if...else などの入れ子構造は関数内で許可されるべきではありません。 if..else、while、for、foreach などのネストされた構造では、コードは 1 行を超えてはなりません。このコード行のみが関数の呼び出しです。コードAを参照してください。

function test($bool){
         $age = 0;
         if($bool){
               $age = 5;
          }else{
                $age = 0;
          }
          return  $age;
}
$bool = true;
echo test($bool);

上記のコードには、関数本体に if...else と入れ子の構造が含まれています。「関数は短くする必要がある」という原則に従って、上記のコードはコード B として書き換える必要があります:

function testTrue(){
        $age = 5;
         return $age;
}
function testFalse(){
        $age = 0;
        return $age;
}
$bool = true;
if($bool){
      echo testTrue();
}else{
        echo testFalse();
}

Bスタイルコード。バックボーンコード(抽象度の高いコード)を簡素化できます。実際のプログラミングでは、コードBをベースに機能テストを追加するため、コードAとコードBを組み合わせました。コードCを参照してください。

function testTrue(){
       $age = 5;
       return $age;
}
function testFalse(){
        $age = 0;
        return $age;
}
function test($bool){
        $age = 0;
        if($bool){
             $age  =  testTrue();
         }else{
              $age  =  testFalse();
   }
$bool = true;
echo test($bool);

3 つのスタイルのコード、どれが優れていますか?わかりません。プログラミングの実習では、C スタイルのコードを選択します。短い関数を記述する理由は、短い関数は読みやすく、デバッグが容易になるためです。もちろん、多くのプログラマーがプログラミングの実践で要約したプログラミング原則にも影響されます。つまり、関数は 1 つのことだけを実行します。

「クリーン コードの方法」では、このプログラミング原則を次の言葉で強調しています。 30 年以上にわたり、関数は 1 つのことだけを適切に実行する必要があるという見解を、無数の人々が無数の異なる表現で伝えてきました。 ; この関数はこれを行う必要があります。

この原則をマスターするには、次のことを理解する必要があります: 物を何と呼びますか?一つは、これらの事柄が同じ抽象レベルにあることを意味します。たとえば、関数 A は注文データをデータベースに保存し、その過程でクーポン番号を作成し、テキスト メッセージを送信します。表面的には3つあるように見えますが、どれも同じ抽象度なので、実際には1つしかありません。クーポン番号作成時のコードを使用してクーポン番号作成関数を置き換える場合、関数 A は 2 つのことを行います。

さらに、関数 (to...do) を「上から下に」読むことも、関数が 1 つのことを行うかどうかを区別する良い方法です。若手プログラマーがこのスキルを習得するのは簡単ではありません。

関数のセクションを確認する、つまり、関数が他の関数に分割できるかどうかを確認することは、関数が 1 つのことだけを行うかどうかを識別する方法でもあります。

「抽象化レベル」に基づいて、関数が1つのことだけを行うかどうかを判断できると思います。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。