- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 08:39:14 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に完全対応していないためです。) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 191 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 13:47:13 ]
- RubyとしてActiveScriptRubyをインストールするのがスレ的にいちばん簡単だと思う
- 192 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 14:00:55 ]
- >>190 ありがとうございます!
諦めてnokogiri使わせて頂きます。
- 193 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 14:22:47 ]
- OneClick Installer の被害者の方々が続々と
- 194 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 16:44:00 ]
- なんでmswinのバイナリがあるのにコンパイルしようとしてんだろ
前も思ったけどrubygemsってそのへんの判別どうなってんの?
- 195 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 17:17:21 ]
- >>194
gem作成者がWindows向けかどうかを手で条件判断してる install_win_binary if RUBY_PLATFORM =~ /win32/ とか この場合、 mingw32 はマッチしないから、用意したWindowsバイナリ(mingw32でもたぶん動く)は使われずに 自前でコンパイルするように分岐する Windows かどうかの判定は install_win_binary if RUBY_PLATFORM =~ /win|mingw/ みたいに mingw を含めるようににしろ、と少し前から言われてる これに沿ってない、あるいはそう言われる前の古い gem パッケージは、 mingw32 でも「バイナリパッケージなし」と判断されてコンパイルプロセスが走る いっそそういうヘナチョコ gem も許してコンパイルを受け入れよう、というのが>>190でも書いてある DevKit
- 196 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 17:26:42 ]
- >>195
ありがとう、雛形作成ツール or Rakefile手書きした人の責任ってことか Rakeでis_windows?みたいなの用意していてくれれば解決だった気がする
- 197 名前:デフォルトの名無しさん [2010/02/04(木) 17:56:02 ]
- win で判定しちゃだめだ。
Darwin (= MacOSX) が引っかかる。
- 198 名前:デフォルトの名無しさん [2010/02/04(木) 17:59:08 ]
- プラットフォームの判別
jp.rubyist.net/magazine/?0017-CodeReview#l17 さすがに bccwin は外してもいいような気がする。
- 199 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 18:07:35 ]
- っていうかこの用途での RUBY_PLATFORM の利用はいいかげんやめたほうが…
p の表示結果を横取りして解析するようなむず痒さを感じる
- 200 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 18:51:01 ]
- ruby -rdebug hoge.rb
でデバッグするとき、gdbの--tty=みたいなことをしたいのですが、どうすればいいでしょうか? デバッガへの入力(pやbreak等)と出力(pの結果等)はそのままrubyを起動した端末で、 hoge.rbの標準入出力は別の端末につなぎたいのです。
- 201 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 19:20:47 ]
- >>199
じゃあ何使ったらいいの バイナリの判定ならCONFIG["RUBY_SO_NAME"] とか?
- 202 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:00:16 ]
- [1,2,3].map(&:to_s)
=> ["1", "2", "3"] 何が起きてる?リファレンスを嘗め回したがさっぱり
- 203 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:09:45 ]
- &の右側がProcオブジェクトでないときはto_procを呼ぶ。
:fooというシンボルのto_procはcall xするとx.fooの意味になるprocを返す。 例 > :to_s.to_proc.call 1 => "1" これでわかる?
- 204 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:11:02 ]
- あー、どこを見ればそれがわかるのか、というのは俺も教えてほしい。
- 205 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:15:43 ]
- 検索しにくい機能はこれだから困る
「Ruby1.9 ではイテレータをブロックなしで呼び出すと Enumerator を返すよ機能」と呼ぶ irb> [1,2,3].map(&:to_s) ["1", "2", "3"] irb> [1,2,3].map{|e| e.to_s} ["1", "2", "3"] irb> [1,2,3].map(&:next) [2, 3, 4] irb> [1,2,3].map{|e| e.next} [2, 3, 4] irb> [1,2,3].map{|e| e.next}.map{|e| e.to_s} ["2", "3", "4"] irb> [1,2,3].map(&:next).map(&:to_s) ["2", "3", "4"]
- 206 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 21:17:23 ]
- >>204
doc.okkez.net/ あとは、リテラルを知っておくと調べたいことが明確になるかな。 ところで上のマニュアルで検索すると、結果が出るまで数十秒くらい待たされるんだが、どうなってんの? 特に検索に失敗した場合の結果報告が遅すぎる。
- 207 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 22:10:58 ]
- >>203
.call 1 がどこから来るのか分からん
- 208 名前:デフォルトの名無しさん [2010/02/04(木) 23:20:11 ]
- Rubyで書けばこんな定義。
class Symbol def to_proc proc {|obj, *args| obj.send(self, *args) } end end 実際1.8.6までのRubyにActiveSupport(Railsで使ってるRubyコア拡張) 入れると↑のように定義される。
- 209 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 23:30:59 ]
- >206
ごめん。 全てのデータを読み込んでるから遅い。 チューニングしたいけど、まとまった時間がとれない。
- 210 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 00:26:44 ]
- [1,2,3].map(&:to_s) は
[1,2,3].map(&proc{|obj| obj.send(:to_s) })になると。 *argsはブロック引数が2個以上のときか > ["abc","def","ghi"].each_with_index(&:slice!) => ["bc", "df", "gh"] 理解。
- 211 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 00:43:06 ]
- 98%くらいは>>205のブロックつきメソッドの短縮表記目的だけどな
正確な動作を覚えておくと便利なことはあるだろうね
- 212 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 02:11:15 ]
- わかりにくいのはSymbol#to_procのほうじゃないか
- 213 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 02:24:19 ]
- わかりにくいというか、ぶっちゃけわけがわからないよね
- 214 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 04:33:05 ]
- sort_by(&:length) とか便利
- 215 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:16:02 ]
- どうせならEnumerable#reduce/injectみたいに
&無しで実現してもらいたかった昨日
- 216 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:19:42 ]
- >>213
>>205だと理解しているうちはいいけどな SymbolかProcになるって時点で変だ 目を覚ませって感じではある
- 217 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:24:14 ]
- 簡潔さを追求しすぎてパァール化してるな
- 218 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:34:51 ]
- イテレータなんて古代言語使われると混乱しちゃう
それと>>202は&で:to_sをブロックとして扱おうとしてるだけだから 別にブロックなしというわけでなくEnumeratorも関係なくね
- 219 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:35:36 ]
- ところで>>206で配布してるchmファイルってみんな見れてるのか?
開くとき他のchmファイルと違って「セキュリティの警告」がでるし 開いても本文カラムが「取り消されたアクション」か 「ページを表示できません」のいずれかにしかならん 以前は ttp://elbereth-hp.hp.infoseek.co.jp/ruby.html のchmファイルを使っていたが問題はなかった WindosXP SP3 なんだがどうしたものか
- 220 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 09:44:36 ]
- >219
ごめん。Windows持ってないんで検証出来ないんだ。 なんかチェックボックス外したら使えるという話は聞いたことがある。 手元のDebianではちゃんと見れた。 XPのSP3以降?ではそういう警告が出るようになったらしい。 Vistaで警告が出てたときはチェックボックスを外したら使えた。
- 221 名前:220 mailto:sage [2010/02/05(金) 09:46:14 ]
- 220で書いてるVistaはたまたまそこにいた人が使ってたやつね。
- 222 名前:デフォルトの名無しさん [2010/02/05(金) 11:01:26 ]
- 終わった話だけど。
block = proc {|x| x.to_i } %(1 2 3).map(&block) の &block のところに &:to_i と書けるという話であって、 ブロックを取らないならEnumeratorを返すという話ではない。 # そもそも1.8.7のmapは互換せ(ry
- 223 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 11:14:26 ]
- >チェックボックス
もしかしてIEのセキュリティレベルを落とさないと見れない仕様か デフォルトの状態でリファレンスマニュアルが読めないとか ここまでくるとドザーに対する嫌がらせに近いな
- 224 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 11:44:27 ]
- >>223
嫌がらせはそのへんにしとけ よく知らないけどセキュリティ絡みならそのchmのプロパティで「ブロックの解除」を試してみたら?
- 225 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 11:48:33 ]
- chm 自体がそういうものになった
なんでもかんでも Windows 叩いてオナニーしてる厨には理解できんだろうが ttp://support.microsoft.com/kb/902225/ja > これは正常な動作であり、セキュリティ更新プログラム 896358 および > Windows Server 2003 SP1 のインストールの結果として予期されている動作です。
- 226 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 12:13:05 ]
- >>219
Windows開発者にはかなり既知な問題なのですが、 chmファイル単体をそのままネットから落とすと、セキュリティがらみのフラグがつくんです。 exeファイル単体をネットから落とした時もいちいち確認してくるよね? >>224 もいってるけど解決策はchmのプロパティでブロックを解除してやる
- 227 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 12:25:52 ]
- chm自体が規格として取り残されたというか…
そもそも表示にIE使う時点で将来的に規定事項だったその時がやって来ただけというか…
- 228 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 12:29:03 ]
- 配布する人が
「XPやVistaや7の人は俺を信用してチェックボックス外してね」 と警告するしかないな
- 229 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 14:46:34 ]
- zipped htmlでくれ
- 230 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 14:50:20 ]
- 全文検索が問題なんだよね
標準で検索フレームがつくのがchmの大きな利点 それさえ別途便利に使えれば素のHTMLの配布で問題ない というかchmの検索はもうちょっと賢くなって欲しい というか一般語の検索に特化されててプログラミング用語やトークンの検索に向かねー
- 231 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 15:38:21 ]
- >>224, >>225, >>226
ありがとう また一つ賢くなった
- 232 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 16:18:43 ]
- pc12.2ch.net/test/read.cgi/tech/1155031689/
【ActiveScript】RubyをWindowsで使うスレ【GUI】
- 233 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:23:17 ]
- :to_i.to_procがproc{|x| x.to_i}になるってのは
マニュアルのどこに書いてあるの?
- 234 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:50:56 ]
- >>233
ttp://doc.okkez.net/static/191/class/Symbol.html > self に対応する Proc オブジェクトを返します。 「self に対応する Proc オブジェクト」ってなんじゃらほという疑問の答はむろん書いてない Ruby のマニュアルなんてそんなもんだ
- 235 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:16:44 ]
- >>234
そこはすでに読んだ〜よ
- 236 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:36:29 ]
- 素人はこれだから
Rubyはソースコードに全て書いてある /* * call-seq: * sym.to_proc * * Returns a _Proc_ object which respond to the given method by _sym_. * * (1..3).collect(&:to_s) #=> ["1", "2", "3"] */ static VALUE sym_to_proc(VALUE sym) { return rb_proc_new(sym_call, (VALUE)SYM2ID(sym)); } ほら書いてあった
- 237 名前:デフォルトの名無しさん [2010/02/05(金) 20:43:18 ]
- selfで示されるメソッドを呼ぶProcを返す。
自身で示されるメソッドを呼ぶProcを返す。 ならまだ分かるか。さあるりまにフィードバックしよう。
- 238 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:51:32 ]
- >>236
利用法しか書いてないのがそれっぽいといえばそれっぽいな Cレベルのコメントでもそれなのか
- 239 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:54:53 ]
- [1,2,3].map(&:to_s)
[1,2,3].map(&:to_s.to_proc) [1,2,3].map(&Proc.new {|obj| obj.to_s }) [1,2,3].map{|obj| obj.to_s } やっと腑に落ちた 横レスだけどみんなありがとう
- 240 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 20:55:08 ]
- いや一応、これで必要十分なコメントではあると思うぞ
Symbolクラスのメソッドとして単体で吟味したときわけわかめになるだけで それこそ :mes.to_proc #=> proc{|o| o.mes} と一言書いてもらえてれば納得度が上がったと思う
- 241 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:05:08 ]
- lines.collect(&:split/,/)とかやりたい
- 242 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:18:45 ]
- [1,2,3].map(&:to_s.to_proc)
から [1,2,3].map(&Proc.new {|obj| obj.to_s }) が腑に落ちない
- 243 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:27:11 ]
- >>242
>>240
- 244 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:05:10 ]
- >>242
カッコで括って評価の順序を明確にすれば理解出来るか 1. [1,2,3].map(&:to_s) 2. [1,2,3].map(&(:to_s.to_proc)) 3. [1,2,3].map(&(Proc.new{|obj|obj.to_s}))
- 245 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:05:51 ]
- ん?
:mes.to_proc #=> proc{|o| o.mes} が腑に落ちないと言ってるんだが?
- 246 名前:デフォルトの名無しさん [2010/02/05(金) 22:08:54 ]
- 「Symbol#to_procがそういうprocを返すように定義されている」
- 247 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:09:04 ]
- そりゃ失礼した。
どう腑に落ちないのかはよくわからんが。
- 248 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:14:26 ]
- 仕様です→なんでそんな仕様?
ってことでしょ >>245はこんなとこじゃなくMLででも聞け
- 249 名前:デフォルトの名無しさん [2010/02/05(金) 22:18:12 ]
- なんでこういう仕様かっていうと[1,2,3].map(&:to_s)って書くため
気持ち悪いのは元々Railsだから仕方ない
- 250 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:26:57 ]
- 名前
名前、ばかにする ばかにする、あんた、名前 1だけ・・・ 出会い頭に、おたんこなす宣告から、あんたばかぁ、から丁寧にばかにするまで レパートリーに富んだ構文糖に乾杯 >> 244
- 251 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:27:02 ]
- obj.methodsでシンボルの配列が帰ってくるから
関連がないということもない と言えないこともない
- 252 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 22:58:44 ]
- いや、どこにそういう仕様だと書いてあるのかってことなんだが
- 253 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:21:49 ]
- AがnilだったらAにxを代入
A = x unless A これより簡潔な書き方ってあります?
- 254 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:25:43 ]
- おま、それ x が真だったら短絡して A = x と同じ意味になっちゃうぞ
- 255 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:28:33 ]
- あれ?そうなっちゃいます?
rubyってifとかunlessを倒置して後ろに置いてるのをよく見ますけど。
- 256 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 01:41:21 ]
- 弁解の余地もございません
>>254は撤回した上で吊ってきます unless修飾子なんか嫌いだグスン
- 257 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 02:05:03 ]
- >>253
a = a or x a ||= x
- 258 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 02:54:23 ]
- >>137
了解です。できれば Ruby/GTK2 から扱いやすいプロッターがあるといいのですがなかなか見つけられません。
- 259 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 03:02:50 ]
- >>257はfalseでも動作するので注意
まあ元のunless自体同じような動作だが
- 260 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 07:57:34 ]
- >>230
インデックスの仕方が微妙なせいで、記号とかアンダーバー含むと全然検索できないw chm便利なんだけど、検索は本当に困る
- 261 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 10:17:38 ]
- >>253 に関連して
a or next a or raise みたいなイディオム?をたまに見かける
- 262 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 10:30:03 ]
- read or die
- 263 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 10:31:17 ]
- >>254
意味がわからん。 >>253が間違えてるとは思えない自分に誰か救済の手を
- 264 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 10:33:27 ]
- >>263をさらに撤回する ほんとうにすまない
- 265 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 13:54:41 ]
- お前らミス多すぎるだろ・・・俺もミスってた
a = a or xは優先順位の都合で (a = a) or xとして結合するからxの代入が起きない a = (a or x) a = a || x と書くのが正しい なんにせよ初期化のイディオムとしては、||=を使うこと (簡単な解説を兼ねてorを並べたのが失敗) falseの扱いは>>259の言う通り根本的な問題だから触れなかったけど 必要なら時はa = a.nil? && xとかやって まあfalseが入ってるかもしれない変数にこの手の初期化はあまり行わないから普段は問題ない
- 266 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 13:57:09 ]
- またミスったああああ
a = a.nil? && x これダメ絶対、素直に後置してください・・・
- 267 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:11:35 ]
- gdgd
- 268 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:12:26 ]
- ネスティングを少なくする書き方をおしえて下さい。
- 269 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:17:08 ]
- >>268
Rubyのネストは怖くない ブロックは大いに使え が、まあ、self を返すブロックつきメソッドとか map みたいなコレクション変更メソッドとか そういうのを1行でメソッドチェインするようになると結構見栄えはよくなるよ メソッドチェインするときはブロックは { } で書いてね end のあとにドットつけられると動作上問題なくても見栄え的にぐんにゃり
- 270 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:23:37 ]
- 少し長くなった(ネストした)と思ったらさっさと別メソッドに分けるとか
簡潔なメソッド名を考えると、コメント代わりになるし動作の見直しにもなるのでおすすめ
- 271 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:25:08 ]
- メソッドが10行超えたらほぼ確実にどこかおかしいな
- 272 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:27:46 ]
- >271
kwsk
- 273 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:40:56 ]
- 5行越えたらFワードって聞いたぞ
外人さんの過激派はさすがに煽り方が違う
- 274 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:43:07 ]
- まあ、メソッド多いほうがテストしやすいしな
とか言ってるとがっつりプライベートメソッドにされてたりする 気持ちはわかるが
- 275 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:33:30 ]
- ・メソッドが10行を超えることは望ましくない
・1行が80byteを超えることは望ましくない はRubyのコーディングルールとしてよく採用されている
- 276 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:44:58 ]
- 1行80bytesは理由があるからともかく
メソッド10行制限ってのはカルト宗教の世界だな
- 277 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:49:22 ]
- > 1行80bytesは理由があるから
ねえよ そっちのほうがただの宗教だ 悔しかったら「lessやgrepは色づけしないから色付けに頼った視覚効果のスクリプトを書くべきではない」レベルまで言え
- 278 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:52:33 ]
- 10行ルールってまじ?
標準ライブラリのほとんどがボツってこと貝?
- 279 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:53:24 ]
- メソッドが長いとリフレクションしにくい
- 280 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:57:01 ]
- >>277
あ、どっかでそれ読んだ 「お前の環境がヘボいだけだろ」とか心の中で突っ込んだ覚えがある 行数は、本来は行数そのものが問題じゃないよね 短い定義の適切なメソッドの作成を目指すべきというのが本論 その現実的な目安として、やっぱ5行…は過激派だが、10行くらいがポイントだと思うなあ これより長かったら分割手段を本気で考えたほうがいいかと
- 281 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:58:58 ]
- >>278
まあ基本的には めちゃくちゃベーシックな添付クラスだからごてっとするのも致し方ない面はあるが、 それでももうちょいこまごまとしててもいいとは思う 特にユーティリティ的なクラス
- 282 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:03:26 ]
- はいはい、なんでもサブルーチンサブルーチン(笑)
どんどん分割しよう。
- 283 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:07:32 ]
- 空行だらけのBlogみたいで読みにくいからやめてくらさい
- 284 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:18:27 ]
- あれはblogシステムでは「段落」としてるものを、ユーザーが「物理行」に使ってるためだろ
- 285 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:25:41 ]
- 横書き日本語なのに段落を前後空間空けとしてレンダリングするブラウザがアホなだけ
- 286 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:28:32 ]
- >>277
べつに誰も悔しくないと思うけどw
- 287 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:03:47 ]
- >>275-278
Railsのプラグインのソースを読む機械が多いが、 ちゃんと作ってるプラグインはモジュール化しまくり、メソッド分割しまくりだな。 なんでこんなところまでちゃんとモジュール化しとんねん!て思うほど
- 288 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:49:17 ]
- >>275-276
漏れは関数は25行以内(最悪でも50行程度)って教えられた 80x25のコンソールで一画面か、印刷して一ページのサイズ
- 289 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:53:55 ]
- >>277
それがあるんだよ たまに def hoge() p 123 end みたいに改行せずにエディタの80文字の折り返しだけで次の行へいったつもりでソース書く馬鹿がいるんだよ (っていうか昔の糞エディタだと2行に分かれていたものが1行に繋がってしまうケースとか良くあったんだ)
- 290 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:56:36 ]
- 10行君は初心者。
- 291 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:58:11 ]
- >>284
いや、実態は携帯で長ったらしくスクロールさせてページ切り替わると リロードが増えてアクセス数も増えるみたいな都市伝説があるらしい 仮に100歩ゆずってそれでリロードされるのが事実だとしても そんな方法でアクセス数増やしてなにが嬉しいのかと
|

|