Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Ruby | Collecting Inputs | 入力の種類

概要

入力の種類

前提

Confident Rubyではメソッド内の処理を次のように分類しています。
・Collecting Inputs(引数チェック、変換など)
・Performing Work(主処理)
・Delivering Output(戻り値に関わる処理)
・Handling Failure(例外処理)

当記事は上記のうち、Collecting Inputsに関する話です。

詳細

メソッドに対する入力には以下のようなものがあります。

・引数
・定数
・同一クラスの他メソッド
インスタンス変数
・間接的入出力(Indirect Input)

間接的入出力(Indirect Input)について

デメテルの法則に反している場合や環境情報など、self以外から参照される情報を指しています。
デメテルの法則に反すると、対象入力の内部構造の影響を受けてしまいます。
環境情報については、プログラム外の情報の影響を受けます。
双方とも、バグの要因になりやすいです。

デメテルの法則に反する箇所に関しては、selfから参照できるようにリファクタリングをする必要があります。
環境情報などは、テスト時にモック等する必要があるでしょう。