gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

相変わらずもやもやしているドラフトな覚え書き

「クラス」とか「SQL」とか、大雑把過ぎる切りわけがあるから混乱をきたす気がしている。
ので、ちと役割分担を試みてみたり。


:クラス3種:
部品クラス:
 機能ベース。
  同一機能なら同じクラスになる。九分九厘、「業務クラス」とか「より複雑な部品クラス」を作るときの部品。

構造体クラス:
 データベース。
 単純にデータを固まりで扱いたいとき用。業務クラスの戻り値で使ったりもするし、MagicWeaponの場合、これにDB系とcgi_request系、template_engine系の部品を足し込んで処理してたりもする(data_clump)。

業務クラス:
 役割ベース。
 通常、クラス切りで一番大切だし重要視されているのはここ。「同じ役割である」なら同一クラスにするべきだが、「たまたま同じ動きをするんだけれども役割/意味合いが違う」場合、このレイヤーでは別クラスにするべき。


SQL2種:
検索SQL
 「nレコードを特定するキー群を取得する」ためのSQL
 このタイミングにおいて、キー配列以外は取得しないようにする。

取得SQL
 「指定されたキー群から該当レコードの必要なカラムを取得する」ためのSQL


SQLは多分本当はこれに「集計」とかあるはずなんだけど…DB負荷を考えると、出来ればあんまりやらせたくないような。
理想としては「定期的にデータをデュプリして、副DB側で重たい集計とかをやらせる」と楽なんだろうなぁ、と。
まだアイデアがまとまらんので、一端、SQLは3種にせず2種にしておく。


多分。個々に、作り方考え方が異なるはずなので。
…それにしてもまだ壮絶にドラフトな発想だなぁ orz