もちゅろぐ

iOSやSwift、モバイル設計だったりRailsについてまとめていく

クラス名にSimpleやEasyがついててもクラス内コードが単純なわけではない

クラス名は目的やできることや塊を表現する。
そのためクラス名にSimpleやEasyがついてる場合

  1. 提供してる機能自体がシンプル
  2. 提供してる機能の使い方がシンプル
  3. 保持してるデータ構造の名前が「シンプル」とネーミングされている

と少なくとも3つの解釈ができる。

ここで、クラス名にSimpleだからといってクラス内コードがシンプルと思うのは、
設計において

  • 「できること」とその「実現方法」の隠蔽化による関心ごとの分離を理解できていない
  • クラス名の活用意図を間違えている

と言える。どの解釈においてもコードがシンプルと断言には至らない。

「3.がそうじゃないのか?」と思っても、仕様・要件上「シンプルな方」だからシンプルと名付けてるだけであって 絶対にコードがシンプルになるわけではない。

データ構造がシンプルだからコードもシンプルと言うのは、偶然コードもシンプルになりやすいだけである。

提供してる機能自体がシンプル

何か高機能なサービスをラッパーして使いたい機能のみを提供するクラスなどによく見かける。

提供してる機能の使い方がシンプル

スレッド操作や並列処理、直接扱おうとするとコードが複雑になり、ボイラープレートコードなどで埋め尽くされるのを1つのクラスに隠蔽化することで、手段を簡単に扱えるようにさせる場合に使われやすい。

保持してるデータ構造の名前がシンプル

データクラスにおいて保持するデータ構造の名前が「シンプル」とついてる。つまりドメイン用語でシンプルとついてる。