capsctrldays

2003-02-27 (木) [長年日記]

[Ruby] DP/TemplateMethod

つーわけで、たどたどしくも実装。

 # Template
 class Language
   private
   def initialize() end

   # to be inherited
   protected
   def first() end
   def second() end
   def third() end

   # Template Method
   public
   def count
     puts "=== #{self.class} ==="
     first;second;third
   end
 end

 # English
 class English < Language
   def first
     puts("ONE")
   end

   def second
     puts("TWO")
   end

   def third
     puts("THREE")
   end
 end

 # Japanese
 class Japanese < Language
   def first
     puts("いーち")
   end

   def second
     puts("にーい")
   end

   def third
     puts("さーん")
   end
 end

 # Client
 eng = English.new
 eng.count

 ja = Japanese.new
 ja.count

ええとですね、言語っていうクラスがありまして、そいつを継承している「英語クラス」「日本語クラス」がありまして、そいつらに「数を数えろや!」って言ったら、「1、2、3の順番で」数を数えます。

合ってるかどうかよく分からん。以下の点も不明やし。

  • Languageクラスをどうやったら抽象化できるんかな
  • オーバーライド不可(Javaでいうfinal)ってのはあるのかな
  • Clientの動作はコレでいいのかしらん
  • initialize()はデフォでprivateだったという罠
    • だからLanguageのprivateは意味ナシ
  • クラス別にファイルを分割したら、"uninitialized constant" というエラーが。これなんだろか。

整理してからwikiに移そう。

[Ruby] デザパタというか

Rubyってのはパターンを考えなくてもよいくらい、がんがん書ける言語だーと認識したほうがよいのかもしれない。と、ちょっとだけ思った。

動的言語と静的言語(2)

たださんからのツッコミですが、『Rubyアプリケーションプログラミング』に、まつもとさんのコラムとして載っていました(p.479)。

これによると、

「動的」とは「プログラムの実行時に決まる」という意味で、「静的」とはその逆、つまり「プログラムを実行しなくても、そのプログラムを見るだけで決定できる」という意味です。

とあります。

これだけではちょっとよく分からなかったんですが、静的言語のJavaも明示的なキャストをする局面が多くあるという記述を読んで、なんとなぁ〜く分かりました。

オーディオBlogとMoblogが普及のきざし

今週のTVブロスに割と面白い記事が載っていて、それは、blog界隈には「一次ソースってのが少ないよね」というものでした。「あのサイトおもしろいぜー」つってぐるぐる廻るだけで、けっこう「狭い」と。その点、実際にやってみることでちゃーんと一次ソースになってるデイリーポータル Zは面白いよねーつってるんだけど、たしかにね。あれは面白いですよねー。

ただ、一次ソース「だから」面白いなんてこたぁーないってことに気をつけておかないといかんよね。例えば上記のオーディオBlogなんて、んー、どうなんだろ。たしかに一次ソースだが、んなもんおもしろいか? 中にはおもしろいものもあるかもしれんが、おそらく大部分はおもしろくないだろ?

tDiaryを使ってればよく分かるんだが、一次ソースうんぬんよりも、ツッコミツッコマレってのが重要なんじゃないかなあ? 日記コミュニケーションを加速するって、ほんとウマいこと言ってると思います。そこに「オモシロさ」があるような?気がするYO。

[Java] Jakarta Commons - Components via textfile.org

Javarなひとたちは口をそろえて「Commonsいいよ!」とか言ってますよね。時間をみて見てみようっと。

[ゲーム] 怪盗スライ・クーパーの広告

おもしろいっすね。こういうのって、楽しいね。オヤジビジネスを超越した企業間の融合にこそ、勝機がありですよ。きっと。どうですか。コンサルタントさん。

飛び込む via useDDIpocket

何の話だこれは。おとぎ話でも読んでいるのかと思ったよ。

[Ruby] DP/FactryMethod

家に帰ってから結城さんの本を読もう。でもとりあえず。

 # Product
 class Book
   def getName
     return self.class
   end
 end

 # ConcretePrduct
 class EnglishBook < Book
 end

 # Creater
 class Language
   def create
     return prepare
   end

   protected
   def prepare() end
 end

 # ConcreteCreater
 class English < Language
   def prepare
     EnglishBook.new
   end
 end

 # Client
 lang = English.new
 book = lang.create
 puts book.getName

えとですね、TemplateMethodの続きみたいにしてて、英語クラスを作ったら、そいつに「作れ」って投げると、英語本が返ってくるという感じです。細かいところで間違い多いと思われ。

で、今日気づいたのは、Clientの動作の部分。昨日は、英語クラスが返ってくるから「eng」なんていう変数を用意していたんだけど、そうじゃあなくて、「lang」って変数名にすると、なんかこう、抽象的でよくね?

同様に「eng_book」じゃなくて「book」に。これで親クラスが無いよぉー!つって泣かなくて済みそう。

[] 個人と組織のナレッジイノベーション

個人と組織のナレッジイノベーション(マイクロソフトナレッジソリューション部/プロシード) 会社に置いてある販促品なんですが、午前中に時間があったのでパラパラと。で、読んでみてビックリ。けっこう良い。これ。でも、薄いし(物理的に)、2001年発行なんでちょっと古いし、値段も高いのよね。たぶん自分では買わないと思う。

以下、メモ

  • SECI理論:よく企業が間違えるのは、いきなりCに飛んじゃうのよね。
  • MSはBSCを導入している
  • HPのガレージのルールはかなり良い:荻窪のHPに行った時、壁に貼ってあったよ。
  • 機能分化よりもプロセス(もしくはプロジェクト)分化:ナレッジはプロセスに宿るんだって。これって、手続き型からオブジェクト指向へっていうのと似ている気がする。

略語

前の部署では、マーケティング担当のことを「MKT」と略していたんだけど、ここでは「MRK」と略されている。ここの略のほうが正しいと思う。

[ENG] at last...

ついに来ちゃったよ。英語のドキュメント。MS Wordで37ページありますです!隊長!……頑張りますよ。もちろん。土日は死ぬな。こりゃ。

Amazonのオススメ機能はエピファニーという会社の製品

マジっすか。製品なんすか。あれ。スッゲエなあ。

[ENG] Sheの発音

今日も英会話でして。ええ、ええ。"she"の発音が悪いらしく、何度も何度も訂正されました。

「she」

「NO」

「she」

「NO」

「she」

「NO」

泣きそうになりました。

かと思えば、

「she」

「good」

だったり。何が違ったのか?

気をよくしてもう一度言うと、

「she」

「NO」

なわけで。

本日のツッコミ(全1件) [ツッコミを入れる]
1 proprog (2004-08-26 (木) 00:04)

「動的」と「静的」の違いの説明がとても分かりやすかったので、引用・リンクさせていただきました。http://programmer.exblog.jp/816461/