「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

リファクタリング

pointこの用語のポイント

pointソースコードを書き換えるよ

pointプログラムの動きは変えないよ

pointソースコードを見やすくしたり無駄な処理を省くためにやるよ

スポンサーリンク

簡単に書くよ

リファクタリング(英:refactoring)とは

人間語で書いたプログラムの元ネタを「ソースコード」と言うのですけどね。プログラムの動きを変えないまま、ソースコードを書き換えること
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ソースコード」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ソースコードは「人間語で書いたプログラムの元ネタ」です。

リファクタリング

プログラムを作って動かすまでの一般的な流れは

1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する


です。

リファクタリング2

コンピュータさんは人間語が分かりません。

リファクタリング3

人間様はコンピュータさんの言葉が分かりません。

リファクタリング4

プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。

リファクタリング5

次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。

リファクタリング6

コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。

リファクタリング7

かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。

この話で登場した

人間語で書いたプログラムの元ネタ

を「ソースコード」と言います。

リファクタリング8

以上を踏まえて

プログラム自体の動きは変えないように気を付けつつ、ソースコードを書き換える作業

が「リファクタリング」です。

リファクタリングは

1.無駄な処理を省いて処理の流れを分かりやすくする
2.ソースコードを見やすくする
3.仕事してる感を出す


のような目的でやります。

リファクタリング9

例えば、そうですね。

ピヨ太君は今日の昼間、テレビの3分クッキングを見ていました。
おっと、この料理は美味しそうです。
殴り書きでレシピを書きとめました。

リファクタリング10

そのレシピを夕食で再現してみたところ、やっぱり美味しかったです。
これはレパートリーに入りますね。

リファクタリング11

そこで、殴り書きしていたレシピを きちんと書き直しました。
次に作るとき見やすいようにです。

リファクタリング12

この話におけるレシピがソースコードだと思ってください。
料理がプログラムです。
レシピを書き直す作業がリファクタリングになります。

リファクタリング13

もう少し実際のプログラムに近い例も見てみましょう。

ピヨ太君が以下の処理を書きました。
処理の内容は「"aa"でも"bb"でも"cc"でもないときは"dd"って表示してね」です。

if($str != "aa"){
    if($str != "bb"){
        if($str != "cc"){
          print "dd";
        }
    }
}


ピヨ太君は満足して眠りにつきました。

リファクタリング14

次の日、ピヨ太君は自分の書いた処理を見直しました。
入れ子が多くて見にくいです。

リファクタリング15

そこで以下のように書き換えました。
処理の内容は同じです。
「"aa"でも"bb"でも"cc"でもないときは"dd"って表示してね」です。

if($str == "aa"){
    //何もしない
}else if($str == "bb"){
    //何もしない
}else if($str == "cc"){
    //何もしない
}else{
    print "dd";
}


好みの問題は ありますけどね。
書き換えた後の方が直感的に分かりやすい気がします。

ピヨ太君は、処理の内容(プログラムの動き)は変えないまま、ソースコードを書き変えました。
そんなことをした目的はソースコードを見やすくするためです。

この話におけるピヨ太君のやったことがリファクタリングです。

処理内容は変えないでソースコードを書き換える作業

です。


image piyo2

一言でまとめるよ

まぁ「リファクタリング」って単語が出てきたら「ソースコード(人間語で書いたプログラムの元ネタ)をキレイにするんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像035
書籍画像060

おまけ

■訳してみるよ

「re(リ)」という接頭辞が付くと「再び」とか「後ろへ」とか「反対に」のような意味になります。
「factoring(ファクタリング)」は「factor(ファクタ)」+「ing」です。
「factor(ファクタ)」の意味は「要素」とか「要因」とかです。
何となく くっつけると

再び要素ing

となります。

どう訳せば良いのか分かりませんでした。
ゴメンなさい。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
タヌキとキツネ
エンジニアのための生成AI入門 はじめての生成AIアプリ開発からエージェント開発まで