Category Archives: Rails

[Rails]Rubyのカベ-シンボルって何だ?

久々にRoRネタで。

Javaプログラマで、Ruby初心者であるワタシがハマったRuby(とRoR)の仕様について、メモ残そうかと。

Railsのチュートリアルをいくつかコナして、「さ、何か作ってみるか!」と意気込んでscaffoldした・・・までは良かったんですが、そこでパッタリと手が止まってしまいました。

書けん・・・。チュートリアルに沿ってやってたときは、分かった気になってただけだったのか?

何が分からないって、Rubyのソースがイマイチ読めない。Railsの仕組みは理解したつもりなんですが、やっぱそれを実装しているRubyの言語仕様も分かってないとダメだと、最近気付きました。感覚で読めるかと思ったんですが、ワタシのアタマも大分固くなってきたんでしょうか。お恥ずかしい限りで・・・。

で、恐らくこれはワタシだけじゃなく、Javaプログラマ:特にCOBOLチックな基幹系のJava中心にやってた人たちは、みんなハマるんじゃないかと思いまして。

”裾野を広げる”と言っている以上、先頭切って恥をかくのもワタシの仕事・・・と勝手に思いまして、小ネタをここにUPしていくことにします。

具体的に「こりゃ勉強しないと」と思ったのは、

  • シンボル
  • ブロック
  • 特異メソッド
  • Mix-in(≒JavaのInterface?)

あたりでしょうか。

今回は、まずは「シンボル」から。

ハッシュのキーに使ったり、Railsでは頻繁に登場します。

ですが、どのRails本読んでも、「定数のようなもの」とかしか書いてなくて、どうもイメージがつかめません。

しかも、ハッシュのキーをシンボル(:Hoge)じゃなくストリング(’Hoge’)にしても動いちゃう(※)ので、ますます分からなくなってしまいまして。

(※)これはRailsクンの仕様みたいです。

で、ググったら、同じような疑問を持った人がチラホラ。

こちらの記事(Rubyのシンボル(:コロン))を読んでだいたい理解できました。

でも、使いどころがまだモヤモヤしてたんですが、こちらの説明 でかなりスッキリしました。

定数の値に深い意味はなくて、名前を付けることだけに意味がある場合は、Symbolを使えばいいわけです。

と。なるほど。

慣れるしかないですね。目指せ、Rails脳!!

[Rails]阻止したいRoRバズワード化

今週末、Rails勉強会@東北第3回が催されます。

ワタシは残念ながら、都合が悪くて参加できないんですが、新たに参加表明された方々もいらっしゃる(予定?)ようなので、前回のワタシのポジションペーパーを晒しておきます。

(多分、何書いたらいいのか悩んでる人も多いと思うので。雑なんで、ちと恥ずかしいですが・・・。)

Rails勉強会用の小林のポジションペーパー

さて、最近ビジネスな場面でガンガン取り上げられているRuby On Rails(以下RoR)ですが、使い方を誤ると大変・・・というのを今一度認識しておいたほうがいいんではないかと思いまして。

まずは、たけだソフトさんのこちらの記事「バズワード on Rail」を一読ください。面白おかしく、明快です。くれぐれもこんな状況に陥らないように、ITアーキテクトの皆さんはキモに命じましょう。

で、何でこんなこと考えたかといいますと、アットマークITの「ITアーキテクトの要求開発力向上作戦」 なる記事に触発されたせいなんです。

たけださんとほぼ同じことを言ってますが、まさにRoRの使いどころを端的にあらわしてるんではないかと。

簡単に言えば、「Webアプリ開発するなら、上流(担当)こそ、実装に落とせる力を持っとけ。RoRならとっつきやすいよ。」 と。

そう。RoRは上流から使ってこそ活きるんじゃないですかね。

加えて筆者は

私は常々,プログラミング能力というのは低く見られがちだと思っています。プログラムは誰でも書けるという話がありますが,それは甘いと思います

とも綴ってます。よくぞ言ってくれました!!激しく同意します。

こんな素敵な記事を書いた牛尾さんという方が気になったのでググってみたら、豆蔵の方だったんですね。こちらのネタも良いです。 ご興味のある方は、ぜひご覧ください。

p.s.

Four Days on Rails、やってみました。ワタシにもできました。何かハマったらブログに書こうと思ってたんですが、特にハマるところはありませんでした。チュートリアルにぴったりかも、です。

[Rails]RBC熱い・・・

熱いです。Rubyビジネスコモンズ(以下RBC)。

Ruby初心者の私ごときが語れる話題ではないのですが、この盛り上がりは圧倒されます。

何といいましょうか、オープンソースのコミュニティのノリとはまた違った”ビジネス”色の濃さ、があります。それが逆に、我々のような中~大規模プロジェクトに携わる技術者にとっては、身近に感じられたりするのかなぁ、と。

特に最首さん(会長)、杉山さんというご両名のブログが熱い・・・。

最首さんのブログは、以前、たけだソフトさんの「自営業」というエントリでの熱い議論(?)で知りまして、それ以来、ほぼ毎日チェックしてました。その時、ちょうどRBCを立ち上げてる最中だったようで、おかげでコミュニティの立ち上がる様子をリアルタイムで伺い知ることができました。

杉山さんのブログは、「仙台 Rails」で検索してたら、たまたま「東京⇒福岡⇒仙台!!」というエントリがヒットして知ったんですが、記事内になんと最首さんやら片平さん(Rails勉強会@東北を主催)の名前がでてきてビックリ!

偶然、全てが繋がってしまいました。

杉山さんがおっしゃるように、福岡-仙台って流れが実現できてしまうのかもしれませんね。

RBC関連の話題を読むと、なぜかワクワクします。普通は、熱すぎるブログは引いてしまうんですが、逆に惹きつけられます。これから何か起こりそうな予感がして。

でも、ふと冷静な自分もおりまして、

「人のことはいいから、まず自分で手を動かせ!(Rails身につけろ)」

とか

「この流れに乗って仕事にのめり込むのもいいけど、ワーク・ライフ・バランスをしっかり考えろよ!家族第一だろ?バンドも大事だろ?」

という内なる声が聞こえます。

そうです。以前、理想論ばかり掲げてアタマでっかちになって、ダメになったことがありましたから・・・。

自分の立ち位置は見失わないようにしたいです。

[Rails]仙台Railsゴォールデン社長ぉ

Rails勉強会@東北第2回に行ってまいりました。

前回よりも人数も多く、まったりと(?)盛り上がりました。

まず、takedaさんのAction Web Service。

RailsはWEBサービスを公開する手順もあまりに簡単。しかもテストのviewまでサクっとscaffoldしてくれて。よいです。

次にxibbarさんのacts_as_xx。

ワタシがガンヲタと知ってか知らずか、ガンダムを題材にプレゼン。実に分かりやすかったです。ありがとうございます。

最後は、katahiraさんのAJax。

JavaScriptを隠蔽してるので、ソースコードがスッキリ。でも、最終的にはFireBugでJavaScriptのソースも覗いてみておいたほうがいいかも。

次回は、ワタシも何かやりたいです。

その後の懇親会。

今回もいろんな話が聞けてよかったです。大事ですね。こういう会。

(皆さん、何次会まで行かれたんでしょうか・・・)

Rubyビジネス・コモンズはじめ、RoRを取り巻く環境は、この一ヶ月でかなり活発な動きがあったように思われます。

この勉強会も、その流れに一役買えればなぁ、なんて思いました。

# 期待してますよ!! katahiraさん!

# タイトルと本文は関係ございません。

[Rails]えんたーぷらいずなRails

今週末、Rails勉強会があります。

勉強会なので、毎回ネタを決めて、持ち回りでプレゼンする方式です。

今のところ、有スキルな皆さんに”おんぶにだっこ”状態で、私のようなRails初心者は話についていくのがやっと、といった状況です。

でも、初心者だからといって聞くだけじゃいかん、とも思いまして。

私なりのネタを探してみました。

私がやるべきは・・・「企業のシステム開発案件に適用するには?」 とか「Javaプログラマが乗り換えるには?」といった、裾野を広げることなんじゃないかなと。

で、ググってたらいい記事を見つけました。

なぜRoRがエンタープライズ、Web 2.0向きか

おぉ、まさに私が知りたかった内容かも。

XMLコンソーシアムなる団体が出したレポートのようです。

アンチXML(?)なRailsがXML関連のコミュで紹介されるってのが興味深かったですが、内容はとても分かりやすかったし、何より、これくらいカッチリした文書の方が、なんかしっくりきます。LL系のドキュメントって、小手先のことというか、断片的な内容の記事が多くていまいち馴染めなかったもので。(”これくらい、書かなくたって分かってるでしょ?”みたいな突き放した感じが・・・。私がついていけてないだけなんでしょうけど。)

チーム開発に求める条件として

各自が黙々とコーディングする環境ではだめで、コミュニケーションによってスキルを補完しあいながらコードをよい状態に保ちながら進むという良い雰囲気が醸成されている必要がある

とありますが、これはRailsに限らず、”理想のチームワーク”の姿なんじゃないでしょうか。こんなチームがあったら何やっても成功するんじゃないですかね。こういうチームを組めない現実ってのが多いとは思いますが・・・。

最後に・・・ふと執筆者の名前を見ると、どこかでお見かけしたような・・・。あ、たけだソフトさんのブログに出てたNayさんではないですか?ほぉ、世の中狭い・・・っていうか、すごい人たちだ。(うーん、えらそーなこと書いてしまった。すんません。)

さ、また”裾野を広げる”ネタ、探さねば。

Railsな皆さんに会う

Rails勉強会@東北第1回 に行ってまいりました。

参加者が5名とちょっと少なく、まわりはRailsエキスパートばかり。

うまく溶け込めるか、ドキドキしながら参加しましたが、皆さんに温かく迎えていただいて、すんなり入ることができました。katahiraさんはじめ皆々様、ありがとうございました。

お題的にも、「テスト」ということで、JUnit知ってる分、違和感なく理解することができました。(JavaとRails双方に精通されているtakedaさんのフォローのおかげです。もちろん、xibbarさんの実演もよかったです。)JUnitとの違いといえば、RailsにはFixtureって便利なのがあること、でしょうか。ま、後で自分でも色々やってみます。

その他にもいくつかご紹介いただきましたが、最後のFireBugですか。あれいいですね。

私は個人的に自分のwebサイト(仕事用、バンド用など)を構築してて、特にCSSにいつも振り回されているので、”いまどの設定が効いてるの?”ってのが一目でわかるのがイイです。使えそうです。

あと、JavaScript等で動的に生成されるHTMLソースが見れるのも大きいです。これはさっそく入れてみようかと。

そして、その後の懇親会。

なんと全員参加。楽しく有意義な時間を過ごさせていただきました。”自立した”方々とお話するのって、ためになりますし面白いですね。やっぱ最後はRails云々ではなく”人間力”だなぁ、などと思ってしまいました。

特にtakedaさんとは、初対面にもかかわらず、ブログを通じて情報交換させていただいていたので、全く違和感なく意気投合してしまいました。また飲みましょう!
・・・しかし最後は、全員でkatahiraさんを煽りまくって終わったような(?)感がありますが・・・悪気は無いです。ごめんなさい。(もしかして前回も?)

次回以降も、できるだけ引き続き参加したいなと思ってますし、もっと潜在ユーザも取り込みたいと思っております。はい。

Railsに感じる”至れり尽くせり”感

引き続き、Railsの勉強してます。

最初に買った本で、ざっくり”今のRails”の使い方のイメージは掴めました。

が、そっから先、要は中身(からくり)に突っ込もうと思うと、途端に手詰まりになっちゃいまして。全然情報が足りない。

ネットで探しても体系立った解説サイトが見当たらない・・・。

なので、もう一冊、真打ともいえる本を買いました。

RailsによるアジャイルWebアプリケーション開発ツ黴€

これはイイ!!

洋書の和訳なんですが、文章が堅苦しくないし、解説も丁寧。

前半のチュートリアル形式の話も面白かったんですが、その後の、ActiveRecordをはじめとした仕組みの解説が分かりやすい。

というか、「ふむふむ、なるほど。んじゃ、こういうときはどうすんの?」と思うと、次にその答えがすぐ書いてあったりして、読み手の心理に沿った章立てがすばらしいと思いました。時折出てくるアメリカンジョークも。(私、和訳したジョークが大好きなんですよ。なので、NHKでやってるフルハウスとかも大好き。)

・・・しかし、読めば読むほど、よく考えられてるなーと感心することが多いです。例えば、update(更新)が競合したときのロック処理とかも、仕組みとして用意されてるし。(自前で考えると結構面倒なんです。うちらはよくタイムスタンプとかのユニークな値を判定に使ったりしてます。)
一言で言うと、「プログラマーがうれしくなるフレームワーク」ですかね。

・・・いや、でもまだそんなに語れるほど詳しくないんで・・・すんません。もう少し短所も含めてツボを理解できるよう精進します。

でも、Ruby On Railsに感じるこの「至れり尽くせり」というか「痒いところに手が届く」ような感覚は何だろう。そういえば、昔C++からJavaに移ったときにも似たような感じだったなぁ。

ブレイクするんでしょうね。

Railsお勉強の続き

一応、昨日書いた「DB繋がんない」件、解決しましたので、覚書として書いときます。

まず、mySQLにroot(パスワード付き)で入れなかった理由は、やはりmySQLのインストールが上手くいってなかったから、らしい。ネットで探したら同じ症状の人が結構いました。

mySQLをインストールする際、最後のサインアップを促す画面で、いきなりskipせずに、一旦、サインアップするボタンを押した後、cancelしたら、うまくいきました。何でだろ・・・。ま、これに関しては結果オーライで勘弁してください。(深追いするつもりはございません。)

で、無事mySQLには入れるようになったんですが、今度は、railsのActiveRecordからconnectしに行くとエラーになる・・・。

原因は、mySQLのポートをデフォルトの3306から3307に変えたためでした。(3306は、先に入っていたmySQL4.1で使ってたので。)

なので、railsの方も、mysql.rbのMYSQL_PORT(確か・・・)の値を3307に変えたらうまくいきました。(エラーメッセージが分かりづらくて大変でした。)

***

懸案も片付いたので、お勉強を進めると、今度は誤植の嵐・・・。ちょっとひどいかも。

出版社のWEBサイトに正誤表があると書いてあったので、アクセスすると、すげー重い。本の中身は良いこと書いてあるのに、印象悪くなってしまいました。もったいない。

それでもめげずに、正誤表とにらめっこしながら、今日はDBアクセスとAjaxまでやりました。すげー、ここまでソースが自動で生成されるとちょっと感動!しかも結構キレイだし。

ただ、サンプル作ってるうちはいいんですが、いざ業務で使えるレベルのものを作ると考えた時、まだハードルはありそう。ちょっとイメージが沸きません。もうちょっとさわってみないと。

以上、お勉強レポートはこのくらいにしておきます。

遅ればせながらRailsかじる

お仕事のお話。

今週末、Rails勉強会@東北第0回なる催し(?)があります。

私もご紹介を受けたので、面白そうだから顔だそうかな・・・なーんて軽く考えてたんですが、募集要項を見ると

「ポジションペーパーによる自己紹介」

とか書いてありまして。しかも

「Railsについて(のネタ?を)ひとつ以上」

だと。

んー、実はRailsは全然触ってないのでネタ無いっす。そもそもポジションペーパーってナニ?

・・・と、この手のイベントに免疫のないオッサンには色々とカルチャーショックな点が多く、おじけづいてしまいまして、今回は参加見送らせていただきました。ごめんなさい。

次回は絶対参加するぞー!

***

・・・ということで、まずは組んでみないことにはお話にならんでしょ、と思い立ち、昼休みにヨドバに直行。

artonさんのRails本 [2]を見つけたので、即購入し、コーディング開始。

「こんにちは、○○さん」を出すところ(つまり、初歩の初歩)までやってみました。ほー、なるほど。ちょっと楽しい。私は”お約束(哲学?)”に従うのはあまり苦にならないので。でも”オレさまルール”でガンガン行きたいひとは大変かも。

で、続けてDB連携やろうとしたら、なんかMySQL5にrootで入れない。インストール失敗?もしかしてMySQL4も入ってるから?両方path通っているとまずい?・・・つまんないとこで躓いてます。いいや、明日やろう。

***

新しい技術に触れるのってワクワクしますねぇ。

でも、職場でそんなこと言ってると、周りの先輩方からよく出てくる言葉が「手段と目的取り違えるなよ。」

ごもっとも。

システム作る上では、J2EEだろうがRailsだろうが、”ナニで作るか”は作り手の視点。お客さんにとってはどうでもいい話だったりします。

んがしかし、だ。

新しい手段を知らないってのはどうなんでしょうか。

”引き出し”は多い方がいいと思うんですが。じゃないと、先の名言もただの言い訳・遠吠えに聞こえちゃいます。はい。