「C/VB6プログラマのためのオブジェクト指向プログラミング入門」を始めます。

by tanabe on June 30, 2007

Rails 勉強会が終わったので、次の勉強会のテーマ決めをした。

決まったテーマは「よりよりプログラムを書くための道具としてオブジェクト指向プログラミングを使う」。別名、「C/VB6プログラマのためのオブジェクト指向プログラミング入門」。

こんな順序で内容を解説する予定。単なる Meyer 本の焼き直しですが、最近のものでこの順序と内容の解説は見たことない気がするのでやる価値はあるかなと。

  • DRYとルーチン
  • 結合性と凝集性
  • モジュール
    • 情報隠蔽
    • 抽象データ型
  • インスタンス
    • モジュールの壁とインスタンス生成
    • 各インスタンスは別のもの
  • クラス
    • インスタンス化可能なモジュール
  • 開放/閉鎖原則
  • 継承
  • インターフェイスと実装の分離
  • 動的束縛
  • ポリモーフィズム

リフレクションとか高階関数とかクロージャとかジェネリクスとか execute around method とかも枝葉として取り上げようと思う。

目的は、各言語の記法を覚えれば、Java でも C# でも VB.net でも言語の取っ掛かりには困らないところまで理解すること。

せっかくだから、解説終わったら Wiki にまとめて公開してしまう予定。今後使いまわせるし。

  

1から1000まで続けて書いてできる整数

by tanabe on June 29, 2007

sumim さんのところrubyco さんのところ経由。

やってることは問題文そのままですが、こんなんとか。

p (1..1000).to_a.join.size 
p (1..1000).to_a.join.scan(/1/).size
  

今日、「JRuby で From Java to Ruby」なプレゼンやる予定。

by tanabe on June 18, 2007

RubyKaigi2007 の報告会として、社内で「JRuby で From Java to Ruby」なプレゼンやります。何かしらおもしろい反応があれば、ここでも報告しようかと思います。どうなるかなぁ。

  

Rails の link_to_remote を訳してみた

by tanabe on June 18, 2007

勉強会用に Rails API ヘルプの link_to_remote を訳していて、ラストまで訳したときに過去にも一度訳したような覚えが。そして大嘘が発覚babie さん、ごめんなさい。。

新訳から抜粋。

さらに、オプションを指定することで、ブラウザサイドの JavaScript コードを利用することもできる。

  • :confirm: 確認ダイアログを利用する。
  • :condition: リクエストは、ある条件が満たされたときだけ実行される。リクエストが実行されない場合の条件を指定する。
  • :before: リクエストが開始される前に呼び出される。
  • :after: リクエストの完了後に呼び出される。
  • :submit: FORM エレメントの親となる DOM エレメントの ID を指定する。デフォルトでは現在の(current の)FORM となるが、テーブルの行の ID やその他の DOM エレメントとすることが多い。

過去訳から抜粋。

:condition: この表現を使うことで、リモートリクエストをより安定して (conditionally) 使うことができます。リモートリクエストが発行されない場合には、ブラウザサイドの状態を返すようになります。

これはひどい。

  

DuckTyping は破綻しない。。。よねぇ?

by tanabe on June 12, 2007

Rubyco さんの日記へ反応。

そういえば、Duck Typingでは「メソッド名がグローバル」になりますね…。ふと思ったのですが「大規模プロジェクトでメソッド名がコンフリクトしてDuck Typingが破綻する」という可能性はあるでしょうか?

「(1)大規模プロジェクトでもDuck Typingは破綻しない。なぜなら…」インスタンスにとって同名のメソッドは一つだけで、かつ実行時にはインスタンスが特定されるから。

かと思うんですが、問題取り違えてる?

あと、DuckTyping は「あるべきメソッドがそこにあることを期待する」のであって、「あるかどうかわからないけど投げてみる」とは(設計上・オブジェクトの役割上の意味で)違うと思った。(けど、これもぼくの理解が間違っているかもしれない。)  

MacBook シェア95% (豚ポチ調べ)

by tanabe on June 11, 2007

RubyKaigi2007 で脇道の驚きとして一番強いのはこれ。

もうみんな MacBook しか使ってない。

ぼくは 2kg 超のノート PC 持ち歩く根性はないなぁ。バッテリーの持ちと持ち歩きが楽なことしかチェックしないから、あまり MacBook に惹かれていなかったんだけど、なにか見えていない魅力でもあるのかなぁ?

  

RubyKaigi2007

by tanabe on June 10, 2007

kdmsnr さんの感想に完全に同意。

事前にタイトルを見たとき、 Daveにはもっとテクニカルでプラグマティックな話をしてもらいたいと思ったけど、 あのテーマで良かったなぁ。感動した。

達人はプレゼンも達人だった。あれほどエモーショナルなプレゼンを見たのは初めて。あれでいやらしくならないのは、やっぱり愛だよなぁ。

けして突飛な話でもなかったし、誰も思いつかないような洞察というようなものでもなかったけど、2007年の Ruby を切り取って少し先の話をするという意味でなんともピタリとはまった人選だった。去年 DHH、今年 Dave という人選をした人、GJ すぎ。

追記:大事なことを書き漏らした。実行委員各位、楽しい場をどうもありがとうございました!  

プログラミングの原則 Wiki の編集を開放しました。

by tanabe on June 05, 2007

参考書籍に「プログラミング作法」がないのは寂しいな。 何か書いてみるか。

via http://www.kt.rim.or.jp/%7ekbk/zakkicho/07/zakkicho0706.html#D20070603-5

ということだったので、とっても期待しつつ編集を開放しました。

ワクテカしながら待ってみます。

余談ですが、「プログラミング作法」はマーケ成分が足りないので取り上げ方がむずかしく今のところ触れてません。基礎がきっちり正しい形で書かれているので、購入して万遍なく読んでほしい印象です。(と言いつつ、ひさしぶりに本棚から取り出して読んでみたり。)