TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
Java有償化まとめ
C#は糞2.0
Eclipse統合M36【Java/C++/Ruby/Python/Scala】
【C++】高速化手法【SSE】2
Excel VBA 質問スレ Part65
次世代言語11[Rust Swift TypeScript Dart]
Kotlin 6
【質問】C++でソフト開発したい!【初心者】
Win32API質問箱 Build125
くだすれPython(超初心者用) その48【まず1嫁】

ハッシュ使うのやめてクラスにしましょう


1 :2014/06/21 〜 最終レス :2018/12/17
ハッシュで使っていいのは、
キーの数が5つ程度まででしょうな。
それより大きなものになると
クラスにした方がいい。
ただの値の塊であるハッシュは
メンテナンス性が悪く変更に弱い。

2 :
>>1
ハッシュって連想配列って意味で使ってますか?

3 :
>>2
はい、そうです。
データベースから取ってきた値を
そのままハッシュ(連想配列)にする。
データベースのカラムとハッシュのキーが
一対一で結びついている。
こういう設計は最悪です。
メンテナンス性が悪すぎます。

4 :
>>3
たしかにそういう側面はあるよねえ。
静的型付言語だととくにコンパイル時の型チェックで名前が正しいか
チェックされないっていうのがあるし。

5 :
連想配列のほうが良さそうなので言い方変えますよ。
設定ファイルでもありますね。
ファイル(例YAML)を読み込んで
その構造がそのまま連想配列になってる。
それをアプリからそのまま参照するとか。

6 :
また手続き脳か

7 :
>>4
「キーのスペルミスに弱い」という話ですね。
それも一つです。
まず自由なキーが使えた方がいい。という例は少ないです。
使えるキーは普通あらかじめ決まっているものです。
スクリプト言語のせいで連想配列が簡単に
使えるように成りましたが、大規模アプリを作る上で
連想配列はデメリットも多いです。
そうそう、クラスにした時の内部データ(プライベート)であれば
連想配列でいいですよ。連想配列のままアプリ全体で使うのではなく
クラスでラップしろってことです。

8 :
連想配列だとリファクタリングにも弱いですね。
設定ファイルのキーの名前を変えようと思っただけでも、
連想配列を直接使用していると、その影響範囲が
どこまで及ぶかわからない。
クラスであれば、メソッド名(プロパティ)の
変更のリファクタリングを行うだけ
互換性を維持するために、設定ファイルで古い値を
使えるようにしたり旧メソッドを残しておくということも簡単です。

9 :
>>7
ふむ、なるほどね。全面的に同意する。

10 :
だから
KEy => 値
これを
KEy => クラスオブジェクト
で、良いんだろ?

11 :
>>10
それ、値がオブジェクトになっただけだろw
KEy => 値
これを
メソッド => 値
(または、プロパティ=> 値)
こうしろって話。
ちなみに俺がプロパティと呼んでいるものは、
変数と直接繋がっているわけじゃなくて
内部的にメソッド呼び出しに変換されているもののこと
説明しなくてもわかると思うけど。

12 :
>>11
いや全くわからん
最初クラスって言ってたのにてメソッドだとかプロパティになってるし
Keyをメソッドにするって事は、1回1回のハッシュ検索にメソッド呼び出す事になんの?

13 :
メソッド呼び出ししてても、内部でハッシュを使ってるなら、
高速に値を検索可能ですよ。

14 :
関連スレです。
こちらも是非ご覧下さい。
【毛の壁】脱アルゴリズム宣言【FXST】
ttp://peace.2ch.sc/test/read.cgi/tech/1403215505/

15 :
>>13
別の事やる為に速度妥協してるアルゴリズムを高速とは言わない

16 :
>>15
大部分の速度が必要ない所に、速度を求めてどうするw
速度厨房はこれだから、役に立たないんだよ。
そんな小手先の最適化よりもメンテナンス性が大事。
内部でハッシュを使っているなら、たんなる
メソッド呼び出し程度の速度低下しかおこらん。

17 :
>>16
メソッド呼び出し程度の速度低下って。
素のハッシュ検索に比べてどの程度、速度落ちると思ってんだよ
話にならん雑魚だな

18 :
つうか速度落とさずそれと同じ事やるなら二重ハッシュだろうが
管理的な何か => { Key => 値 }
これをわざわざ
クラス => 値
にしたらおせーだろうが知的障害か
あと、こういうのは別にハッシュの使い方自体を変えるんじゃなく、
ハッシュ自体は今まで通りのハッシュの使い方で
YAMLとかにバッチ処理与えるスクリプトかけば終わるんだよ
新しい規格を広めるよりそっちのほうが格段にコスパが良い
そもそもクラスって概念の応用ごときで新しいものは生まれない
新しいもの作るならラムダまで掘り下げろ
ラムダを二重にしたものがクラスなんだが、それは理解しているのかと
雑魚は入門からやり直せ

19 :
> 管理的な何か => { Key => 値 }
>
> これをわざわざ
> クラス => 値
>
> にしたらおせーだろうが知的障害か
誰もそんなこと言ってないだろ?
クラス => { メソッド => 値 }
こうだろ。大丈夫かなこいつ?
だいたいなんで速度とか言い始めたんだ?
速度が重要な場所の話なんかしてないし。

20 :
学力足りてねーよ
そしていってる事が2転3転して説明能力さえない
それだけで学歴の低さがうかがえる
1回もプレゼンテーションやったこと無いだろお前
高校生か?高卒か?
R

21 :
ほらね。人格否定に走っちゃった。
これは最初の書き込み内容から、
その後の発言まで想像できたね。

22 :
人格どうこうではなく言ってる事がどんどん変わってんだよお前は
その知能でプログラミングするのは難しかろうよ
脳トレでもやっとけ

23 :
http://flashfabrica.com/f_learning/brain/brain.html
やっとけ

24 :
>>1 の言いたいことは分からんでもないけど、あくまで連想配列の特殊な場合だから
前提なりを示さないと他人に通じないと思う。
自分は Perl の連想配列(ハッシュ)をまずイメージするから、
「連想配列のキーが自由なことは少ない」というのは理解できなかった。
データベースでも環境変数でも、キーはどんどん追加される
>>1 が考えている連想配列は、プログラムのインタフェースに使われるもの、
もっと言えば、クラスで置き換えられるような連想配列において成立する。
そういう前提であれば分からんでもない
ただし、「クラスにした方がいい連想配列の使い方してたら、クラスにした方がいい」
っていうトートロジーのような気がしないでもない

25 :
> データベースでも環境変数でも、キーはどんどん追加される
データベースのカラム名、nameとかtelとか、
この名前がどんどん追加される場合ってどういう時?

26 :
>>25
カラムは増えないね
関係データベースで言うと微妙になっちゃうけど、
キー値が増える(列が増える)って意味で。

27 :
ハッシュって何?

28 :
SHA256とかのやつじゃね

29 :
そもそも普通はそんな使い方しねーよという使い方をして、
連想配列だめじゃんって言っている気がしなくもない。

30 :
>>1は静的型言語限定の話だよね?
それなら理解できる。
動的型言語なら条件付きで理解できるが、
同意はほとんどできない。

31 :
>>1と同じようのはコードスメルにもあるよ
http://c2.com/cgi/wiki?PrimitiveObsession

32 :
ってか古の時代からさんざん議論されてきたことをスレ立ててまで言うことか
やはりアイちゃんの釣りスレなのか

33 :
ハッシュと同じ機能をクラスで実装するって意味がわからん。
クラスって単にある機能をカプセル化したオブジェクトだから
ハッシュを実装したクラスとかリンクリストを実装したクラスとか
そういう概念になるんじゃないの?

34 :
ハッシュのなかにクラス入れちゃダメって言ってるの?

35 :
JavaでもO/Rマッパー(JPA)やO/Xマッパー(JAXB)が一概に良いとは言えんけどな
あと静的型言語でもphpとかみたいに動的配列と連装配列にシンタックスシュガーほしい

36 :
ハッシュやめてクラスっていう意味がわからん
ハッシュテーブルもやめるの?

37 :
設定とかのキーが固定の場合はクラスを使えってことだろ?
キーが不定で増える場合とか、キーの名前を動的に作り出す場合とかは連想配列だろう

38 :
Hackのshapeは連想配列だけどキーの文字列が固定されていて
宣言していないキーを入れたり宣言されているキーが足りなかったりすると型エラーになる

39 :
まぁ>>1みたいなのはアプリの全体設計とかしたこと無い人が考えることだな
CIとかも使ってなさそう
staticおじさん臭もほのかに漂う
若いなら、まぁ誰もが通る道ではある

40 :
typoに弱いのは事実なんだが、いちいちアクセス用のbeanクラスのようなものを
作ってという生産性を落とすようなのとは結局のところトレードオフなんだよね、
で終わるような話題だよな。

41 :
>>40
そもそも構造体代わりのBeanなんて作るなよ。
Objectから値を取り出すときは、常に何らかの処理をして出せよ。

42 :
BeansはBeanInfo実装したりBeanの中にPropertyChangeSupport入れなきゃならなかったりするのに、
単なる構造体のようなclass作ってbeansだと
言い張るアホが多いコト多いコトから。
それじゃjava.beansの恩恵を受けられずに意味がないってのに。

43 :
1 は腕自慢の新人で、できそこないのオッサンのコード見て叩いて俺スゲーって思ったんだろう。
みんながそんなヘボと仕事してるわけじゃないんだから、なかなか共感が得られなくても仕方ない。
必要なときにはやるけど必要じゃなければやらない。そんだけ。
普通しないことは普通しない。そうだね。
まあ、まるきり >24 だね。

44 :
PHPでは、ちょっとしたものを作るとき、クラスとハッシュのどちらの実装がいいか?

45 :
ハッシュテーブルの事をハッシュって略すのって普通なの?

46 :
>>45
普通だと思うよ。ティッシュペーパーをテッシュって言うでしょ。
だから全然ふつうのことだと思うよ。

47 :
パイパイがそう言うなら納得した

48 :
紛らわしいから避けるべき用法な気はするけど、特にスクリプトでは結構使われてるんだよな

49 :
ディクショナリとディレクトリを言い間違える

50 :
ハッシュテーブルと連想配列は別物

51 :
オブジェクト指向は害悪だな

52 :
要約値表って言い方は中々普及しないな

53 :
連想配列の実装がハッシュテーブルである保証はあるのか?

54 :
なんか20近辺までそこはかとなく自演臭い

55 :
2chでそういうの疑い始めたら末期

56 :
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
                  京都大学霊長類研究所

57 :
>>56
あい。

58 :
アイと研究員の議論を邪魔しないでくれ

59 :
じゃっぷまた負けたのかwwwwww

60 :
>>46
vb(a|s)に連想配列ないから帰れよ
Dictionary オブジェクト使わせてもらってる身分でしゃしゃってんじゃねえぞ

61 :
負けたのかwww

62 :
>>60
          , 、、  ,,                   丿⌒ヽ、
        , '  ____ " 、、               /⌒     ヽ
         , '   /⌒三 ⌒\  ',          (  す  す   )
       ;  /( @)三(@)\  ;          )  い    `  (
       ; /::::::⌒(__人__)⌒:::::\ ;  _     /  ま     丿
        |  u   |r┬-|  u  | ;   ヽ 、_ノ    せ    /
       \   u `,. -'"´´ ̄`ヽ ;    ヽ、_ノヽ  ん   ノ
    _   /    (___   | ',          ) :  (
  ,、'  /              |  ;         (     /
 、 ( ̄                |  ;         ヽ、_ノ
     ̄ ̄ ̄|            | ;

63 :
ジャップまた負けたのかwwwwwwwwwwwwwwww

64 :
ペコwwwwwwペコwwwwww
ペコペコペコペコwwwwwwwww
ペコペコペコペコペコペコペコペコペコペコペコペコペコペコwwwwwwwwwwwww
ペコペコペコペコペコペコペコペコジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwプwwwwwwwww

65 :
オブジェクト指向は愚かな考え。
http://peace.2ch.sc/test/read.cgi/tech/1393660194/

66 :
ハッシュは実装方法に関する表現なんだから
連想配列って言えよ

67 :
どうせ1個か2個しか言語知らない奴のたてたスレ
バッチ処理する考えすら思い浮かばないから静的言語しか出来ないんだと思う
この手の発想に落ちるのはJAVA使いだろう
JAVAは害悪だな

68 :
>>67
バッチ処理ってなあに?無知な桃白白にやさしく教えて

69 :
桃白白→桃→ピーチ→ビッチ→老化→婆ッチ→バッチ

70 :
このように入力に対して一連の手順で加工しその結果を出力として返す処理をバッチ処理といいます

71 :
>>70
入力に対して一連の手順で加工しその結果を出力として返す処理をバッチ処理と
仮定してもバッチ処理する考えすら思い浮かばないから静的言語しか出来ないんだ
とのつながりがわからなくない?だからたぶん違うんだと思うよ。

72 :
頭の悪い奴はたったの3行でも読みにくい文章を書く
Rゴミ

73 :
「バッチ処理とは」で検索

74 :
というかお前ら>>67の言わんとしてる事が理解出来るの?

75 :
2行目以外は分かるよ

76 :
別に一生理解しなくても困らないならいいんじゃないのって思う
周りで誰もやってないならそういうレベルの場所にいるってだけ

77 :
バックグラウンド系の話かと思ったが
コマンドのチェーンの方を言いたかったのか

78 :
オブジェクトとハッシュテーブルの区別がない言語もあるのに。
そもそもそれぞれ用途が違うし、どういう文脈の話なの
beanに限った話?クラスがわりにハッシュ使うのやめろって話?

79 :
>>78
Map<String, String> getPerson() {
 Map<String, String> person = new HashMap<>();
 person.put("name", "たおぱいぱい");
 person.put("bloodType", "O");
 return person;
}
こういうのやめろってことだと思うよ。

80 :
>>79
なるほど。やっぱり言語や用途によるとしか言えないね
静的型の場合、ハッシュじゃ型情報が1個になるから基本クラスでいいけど、
メンバを動的に増やしたい時はハッシュになる。JavaのPropertiesみたいに。
動的型の場合は使い分けがあんま分からんね。

81 :
>>80
メンバを動的に増やしたいときってどういうときに必要なの?
リストじゃあかんの?

82 :
>>80
PropertiesはクラスでラップしてるからOKの部類っすよね。
なので、>>80>>7とほぼ同じ考えかと。

83 :
>>81
話がまた戻るが速度次第でしょ
キーが多いとか実行環境が遅いとかならリストじゃつらい
そもそもMapなりハッシュMapなりを使う理由の大半は速度だろ?

84 :
>>83
速度が必要ないのに、クラスの代わりに使う人がいるんだよ。
定義するのめんどくさ〜いって。
それをどう思う?

85 :
>>84
その方がコードが速く書けて仕事が速く終わるというならアリなのかもしれない
仕事の速さも要求されてないのにそんな事してるならタダの物臭

86 :
>>81
リストでもいいけど、添え字アクセスになっちゃう
用途の違うメンバを0,1でアクセスしたくない
ハッシュテーブルは連想配列のインターフェースがあるわけで。
>>84
クラス使えでいいよ。ハッシュリテラルでもなきゃ
ハッシュで書いた所で楽にならんし、型チェックも効かないし

87 :
クラスに置き換えるべきタイミングの見極めが適切にできて
その作業を確実に素早くできるなら問題ない
まあ単に俺カコイイってだけの自己満臭が拭えないけど

88 :
後でクラスに置き換える必要が出るなら
最初からクラスつかえや、と思うな
クラスで実現できない部分があるからハッシュ使うわけで

89 :
なるほど思い出した
システムハンガリアンで簡易型チェックを組み込んだりしたわ

90 :
>>1
せめて痛い目を何度か見てからスレ立てろよ

91 :
つかよっぽど小規模なツールでもなきゃハッシュとか使うな
O/Rマッパー使えよう

92 :
JavaScript「連想配列がObjectなワシはどないしたらええんじゃ…」

93 :
javascript使うのやめてjavaにしましょう

94 :
JavaScriptの仕様は無法もいいとこだが、こうもブラウザで使われてちゃあな。

95 :
連想配列よりC#のDataSetのほうが許せん
なんなんだよアレ

96 :
配列の配列の連想配列

97 :
ttp://www.24w.jp/study_contents.php?bid=javascript&iid=javascript&sid=array&cid=005
こういうのとか逆のケース多く感じる
連想配列って紹介してるけどそりゃプロパティだろ
ハッシュっぽくプロパティ指定できるJscriptにも問題あるが

98 :
>>97
そのページは連想配列っぽい使い方だからおかしくないが

99 :
JAVAがメインな奴って
明らかにズレてるからレスで分かる

100 :
Javaしか知らんやつが指示をだすとマジでヤバいからな
プロジェクトが膠着する


100〜のスレッドの続きを読む
簡単なプログラム言語って何?
Android SDK以外でのアプリ作成を全面禁止へ
【PHP】下らねぇ質問はここに 9
いまだにVC6から離れられない奴の数→
将来性ないプログラミング言語。Delphi含まれず安心
【.cmd】 バッチファイルスクリプト %12 【.bat】
クラスとかインスタンスってなんのためにあんの?
英語の技術書読めちゃうプログラマ
Xamarin Part6
ふらっと C#,C♯,C#(初心者用) Part141
--------------------
オリックス生命の代理店支援室酷すぎワロタwwww
純烈について19
【デレステ】スターライトステージ★7959
【サッカー】<香川真司がブログで“伝えたいこと”>「他人事だと思わないで。東京の映像を見ても、危機感が少し薄いように思えます」
【越後】新潟アナスレッド〜Part66【美人】
サーバント×サービス SERVANT×SERVICE【鯖】
SKE48 47都道府県ツアー決定
【バーチャルYouTuber】.LIVEアイドル部アンチスレ#6339【アップランド】
【名無し奥も○○奥も】気楽に井戸端会議5333【みんな来い】
【乃木中】買っちゃえスタジオ即売会!感想スレ
雑談 袋井の奇跡
杉浦幸ってエロいよね
【米韓】 ワシントンの桜の根元には辛い歴史が埋まっている〜来週、満開の桜の下を通るムン大統領は何を思うのか[04/06]
Nintendo Direct2020.3.17
【市場主義】 熊五郎スレ25 【現金給付】
ネ実AAA大戦スレ 應龍来来
【革細工】◆◇レザークラフト 75DS◆◇
ボンペイ吉田と愉快な仲間逹 Part.6
【パヨク】首里城寄付金が10億突破 玉城デニー「現時点で具体的に寄付金をどこに充てるか決まってない」 ネット「寄付金詐欺
なぜ僕/私の英語は上達しないのか?
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼