- ハッシュ使うのやめてクラスにしましょう
3 :デフォルトの名無しさん[sage]:2014/06/21(土) 14:39:45.09 ID:Sibwh2QA - >>2
はい、そうです。 データベースから取ってきた値を そのままハッシュ(連想配列)にする。 データベースのカラムとハッシュのキーが 一対一で結びついている。 こういう設計は最悪です。 メンテナンス性が悪すぎます。
|
- ハッシュ使うのやめてクラスにしましょう
5 :デフォルトの名無しさん[sage]:2014/06/21(土) 14:44:52.21 ID:Sibwh2QA - 連想配列のほうが良さそうなので言い方変えますよ。
設定ファイルでもありますね。 ファイル(例YAML)を読み込んで その構造がそのまま連想配列になってる。 それをアプリからそのまま参照するとか。
|
- ハッシュ使うのやめてクラスにしましょう
7 :デフォルトの名無しさん[sage]:2014/06/21(土) 14:50:16.61 ID:Sibwh2QA - >>4
「キーのスペルミスに弱い」という話ですね。 それも一つです。 まず自由なキーが使えた方がいい。という例は少ないです。 使えるキーは普通あらかじめ決まっているものです。 スクリプト言語のせいで連想配列が簡単に 使えるように成りましたが、大規模アプリを作る上で 連想配列はデメリットも多いです。 そうそう、クラスにした時の内部データ(プライベート)であれば 連想配列でいいですよ。連想配列のままアプリ全体で使うのではなく クラスでラップしろってことです。
|
- ハッシュ使うのやめてクラスにしましょう
8 :デフォルトの名無しさん[sage]:2014/06/21(土) 14:54:07.28 ID:Sibwh2QA - 連想配列だとリファクタリングにも弱いですね。
設定ファイルのキーの名前を変えようと思っただけでも、 連想配列を直接使用していると、その影響範囲が どこまで及ぶかわからない。 クラスであれば、メソッド名(プロパティ)の 変更のリファクタリングを行うだけ 互換性を維持するために、設定ファイルで古い値を 使えるようにしたり旧メソッドを残しておくということも簡単です。
|
- ハッシュ使うのやめてクラスにしましょう
11 :デフォルトの名無しさん[sage]:2014/06/21(土) 15:09:33.16 ID:Sibwh2QA - >>10
それ、値がオブジェクトになっただけだろw KEy => 値 これを メソッド => 値 (または、プロパティ=> 値) こうしろって話。 ちなみに俺がプロパティと呼んでいるものは、 変数と直接繋がっているわけじゃなくて 内部的にメソッド呼び出しに変換されているもののこと 説明しなくてもわかると思うけど。
|