nomuran's diary

野村直之のはてな日記(後継ブログ)です

Ruby on Rails他のコードを投稿し合いリファクタリングし合うサイト

「お題」を出していろんな言語でソースコードをいち早くポストする
「どう書く」サイトも面白いですが、書き方にこだわる時、あるいは
煮詰まった時に、他人にリファクタリングしてもらうべく投稿する、
というサイトがありました。

教えてくれたのは、Emily ChangさんのeHubです。

http://www.emilychang.com/go/ehub/app/refactormycode/

http://refactormycode.com/

Rubyコードが中心だけれど、Perl, Python, Javascript, PHP,
C, C++, C#, Java, LISPもありますね。他の言語も投稿して良いのかな。。

eHubで取り上げられて、こうなっちゃったとのことです:
Sorry my site went down
Due to the very very heavy traffic! I'm doing my best to keep this up on my tiny 200MB shared host account. Make sure you bookmark the site and come back later when I change hosting provider. I'm really sorry for the inconvenient. - Marc-Andre

マスコミに限らず、Web広報と、サーバ増強スケジュールは同期とらなければ、
という一事例になるのでしょうか。。


個人的に興味のあった、このコードを見てみました:
http://refactormycode.com/codes/25-ajax-rich-text-widget

"I don't like this code. It has a lot of redundancies. Any way of reducing it substantially?"
AJAXにはよくある問題。Tim B. Leeも、この点、正確には、その根本原因の1つであるところの「手続き的であり過ぎる性質」を改良し、reversibleにしなくては、と2年前にモントリオールでのW3C AC Meeting (AC:Advisory Committee)で言及しています。

Code Kingさん、さくっと説明無しに書いてて、、確かに、矩形エリアの定義を受け渡す
パラメータの冗長性などが減っているようです。

その次の人は、さらに小さく、洗練させるべし、という(暗黙の)ルールでもあるのかな。
「これ以上は内部関数を外部から呼び出せるようにしなければならないのかの仕様が不明なので、、」
といいつつ、
dojo 0.9 内蔵の rich text editor使うのが1つの良いリファクタリング」と言っています。

このあたり、「どう書く」と似た雰囲気かな。


最初の投稿者から、「OK,内部関数は内部でとじちゃってて良いよ〜」とのコメントの後、
テスト後のコードをさっきの人が投稿。

Your refactoring

ということで、「どう書く」とよく似ているけれど、助け合いの雰囲気が強く、
照れ隠ししながら善意のcontribution を誘う作りになっている、という感じ。

本当に意図通り、同じ機能のコードが洗練(パフォーマンス改善も有り得ますね)
されていくのならば1つの新しい優れたCGM、といえるでしょう。えーと、つまり、、
CGMが一般に質が低い、収束しない、と言われる欠点を解消できるかも、
という意味で、可能性を感じます。