気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【Ruby】評価する側と評価される側【自分用Ruby練習コード】

def play_music(m)
	$knowledges.music_categories.each {|x|
		unless Regexp.new(x) =~ m::category_nm
			return false
		end
	}
	m.authors.each{|x| 
		if x.include?($knowledges) 
			puts "GJ" 
		end
	}
end
  • 自分の好きなカテゴリでなければ、そもそも聴かない。聴かれない。
  • 自分の知ってる作曲者、Pであれば有無を言わず「GJ」
  1. eachがカッコいいので、何度も書いてしまう
  2. グローバル変数オブジェクトの$knowledgesはいったいどこに定義されているのでしょう
  3. unless Regexpのところが動くか怪しい(初心者乙)
  4. $knowledgesオブジェクトは知識や記憶のストレージとなっている?属性として、music_categoriesという配列オブジェクトを保有してしまっている。もう一個上の単位で抽象化が必要なのではなかろうか。
  5. play_musicメソッドに音楽オブジェクトmが渡されるが、再生する音楽情報はplay_musicにとって、物理的な概念ではない。もしかしたら、(author)作曲者、作詞者を持っていないかもしれない(曲と作成者の紐付けはどこでやればよいのか)