[#44578] Ruby初心者が作りました — Kabu and Ruby管理人 <kabu_and_ruby@...>

http://www.geocities.jp/kabuandruby/index.html

26 messages 2008/02/06

[#44691] ”Rubyアプリケーションプログラミング”の伝言サーバの使い方 — "Yangkook Kim" <yangkookkim@...>

キムと申します。オーム社から出版されている書籍、"Rubyアプリケーションプログラミング"のP267~275に掲載されている伝言サーバー&クライアントの利用の仕方がわかりません。質問を要約すると次の2点です。1、サーバーが正常に起動されているかどうかわからない。2、書き込みクライアントで入力をサーバーに送信する方法がわからない。

8 messages 2008/02/24

[ruby-list:44579] Re: Ruby初心者が作りました

From: rubikitch@...
Date: 2008-02-06 15:34:59 UTC
List: ruby-list #44579
From: Kabu and Ruby管理人 <kabu_and_ruby@ybb.ne.jp>
Subject: [ruby-list:44578] Ruby初心者が作りました
Date: Thu, 7 Feb 2008 00:03:34 +0900

るびきちです。

> http://www.geocities.jp/kabuandruby/index.html
> 株価を自動DLします。
> いろいろ意見をもらえたらと思います。

コードを読んでみました。とりあえずコメントしときます。

* 日本語を含むコードなので一行目に「#! ruby -Ks」と入れてください。
  「$KCODE='s'」していますが、それでは遅いです。
  なぜなら、Rubyインタプリタがスクリプトを読む時点でスクリプトの文字コードが
  Shift_JISであることを認識する必要があるからです。
* Rubyスクリプトの標準的なインデントは2です。インデントをきれいにしましょう。
* 自分でString#to_sjis(Stringクラスのto_sjisメソッド)を定義していますが、
  「require 'kconv'」すればString#tosjisメソッドが使えます。
* CSVファイルの解析には標準ライブラリのcsv.rbを使ってみましょう。
  自分で解析をがんばるよりもライブラリを使う方がバグを減らせます。
* regExは文字列ではなくて正規表現オブジェクトを使ってみましょう。
* 処理ごとに関数(メソッド)に分けると何をやっているかがわかりやすくなります。
* 「puts a.to_s + ' ' + b.to_s」は「puts "#{a} #{b}"」のほうがわかりやすいです。
  #{}による式展開の結果が非文字列の場合は内部でto_sを呼んでくれます。
* エラーメッセージは「$stderr.puts」で標準エラー出力に出しましょう。

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/

In This Thread