Skip to content

Instantly share code, notes, and snippets.

@tai2
Last active November 2, 2018 01:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tai2/19e640182692188df762dee997e769e3 to your computer and use it in GitHub Desktop.
Save tai2/19e640182692188df762dee997e769e3 to your computer and use it in GitHub Desktop.
[draft]Railsはおまかせ(Rails is omakase翻訳)

http://david.heinemeierhansson.com/2012/rails-is-omakase.html

よくわからなかった部分

IT'S PART OF THE DEFAULT COURSE SETTING

default course settingはデフォルトのコース設定としたが、これでいいのかどうか(わざとソフトウェアっぽい言い回しとごちゃまぜにしているという理解で合ってる?)

a "what can I do to help?" directive

命令??

but here's an opportunity to paint some signs and get on the barricades

paint some signsのsignsの意味がよくわからない。記号?壁に落書きをするということ?

それから、最終段落は、なんとなく言いたいことはわかるが、正確な意味が取れておらず、よく訳せた感じがしない

TODO

  • 一人称「おれ」に変更
  • 酒と言ってることから日本料理屋を想定してるっぽいので、キッチン・シェフじゃなくて板場・板前とかに変える

There are lots of à la carte software environments in this world. Places where in order to eat, you must first carefully look over the menu of options to order exactly what you want. I want this for my ORM, I want that for my template language, and let's finish it off with this routing library. Of course, you're going to have to know what you want, and you'll rarely have your horizon expanded if you always order the same thing, but there it is. It's a very popular way of consuming software.

世の中には、アラカルトなソフトウェア環境がたくさんある。ものを食べに来た場所で、まずしなくちゃならないのは、きみがまさに欲しているものを注文するために、選択肢のメニューを注意深く見渡すことだ。ORMにはこれを、テンプレート言語にはこれを、そしてこのルーティングライブラリを使っておしまい。もちろん、きみは自分がなにが欲しいのかわかっていなければならないだろう、そして、もしいつでも同じものを注文するのなら、自分の知識を延ばすことはめったにないだろう。まあ、あるんだけど。これは、ソフトウェアを使うときの、とても一般的なやりかただ。

Rails is not that. Rails is omakase. A team of chefs picked out the ingredients, designed the APIs, and arranged the order of consumption on your behalf according to their idea of what would make for a tasty full-stack framework. The menu can be both personal and quirky. It isn't designed to appeal to the taste of everyone, everywhere.

Railsはそうではない。Railsはおまかせだ。シェフのチームが素材を選び、APIを設計し、あなたのかわりに食べる順番を決める。それらは、なにがおいしいフルスタックフレームワークの足しになるかという、かれらの考えにもとづいている。メニューは個人的であると同時に、風変わりなものであり得る。どこのだれにでも魅力的になるよう意図されたものではないのだ。

That doesn't mean patrons can't express exceptions. Substitutions are allowed, within reason. So you don't like test/unit? No problem, bring your own rspec. Don't care for CoffeeScript as a dessert? Delete a single line from your Gemfile.

だからと言って、お客がメニューにないことを表現できないわけじゃない。取り替えることは許されるんだ、理由があるなら。test/unitが好きじゃない? 問題ない、自分でrspecを持ってくればいい。CoffeeScriptがお気に召さない? Gemfileから一行削除しよう。

Hell, the menu is even open for suggestions. Good ideas are good ideas regardless of where they come from. But there's a fine line between a friendly suggestion and a belligerent diner. That line is usually exposed when the suggestion is declined: "I'm sorry, but hotdogs don't really fit our sushi menu, and while you may not care for unagi, we picked it for a reason. But thanks for the suggestions!". If only most arguments about the menu would stop there.

もっと言えば、メニューに提案することだってできる。良いアイデアは、だれが考えたかに関係なく良いアイデアだ。けれども、親切な提案と喧嘩腰のディナーの間には微妙な違いがある。その違いは、たいていの場合、提案が断られたときにあきらかになる。「もうしわけないけど、ホットドッグはうちの寿司にはあまり合わないんだ。それから、あなたはうなぎが好きじゃないかもしれないけれど、うちでは理由があって取り入れてる。けど、提案してくれたのはありがとうね!」メニューについてのほとんどの議論がこれで終わりならどれだけよかったことか。

But they don't, do they? They usually carry on and on. BUT I REALLY DON'T LIKE UNAGI!!! IT'S OFFENDING MY TASTE BUDS THAT IT'S PART OF THE DEFAULT COURSE SETTING. TAKE IT OOOOOOFFFFF!! Okay, buddy, sit down and have a sake.

でも、これでは終わらない、よね? ふつうは、そのまま続ける。だけど、おれはウナギが嫌いなんだ!!!デフォルトのコース設定にそんなのがあると、舌がおかしくなっちまうよ兄弟!!はずしてくれよおおお!! オーケイ兄弟、座って酒でも飲んでなよ。

When we, or in some cases I — as the head chef of the omakase experience that is Rails — decide to include a dish, it's usually based on our distilled tastes and preferences. I've worked in this establishment for a decade. I've poured well in the excess of ten thousand hours into Rails. This doesn't make my tastes right for you, but it certainly means that they're well formed.

ぼくたちが、ときにぼくが、Railsというおまかせ体験の料理長として、皿に盛るものを決めるとき、たいていの場合、考え抜かれた味と嗜好を基準にしている。ぼくは、この決まったやりかたで10年間やってきた。1万時間以上をRailsに注ぎ込んできた。だからと言って、ぼくの味覚がきみに合うようになるわけではない、けど、確実に、よくまとまっているということは言えるんだ。

We can disagree about what's a tasty feature, but the conclusion is likely to be "then don't eat that". This is doubly so if you're a first-time patron. The less time you've spent in our establishment, and the further away you are from helping out in the kitchen, the less weight your opinion will carry. Especially if it's expressed in a loud, obnoxious fashion.

なにが好ましい機能かについて意見が合わないことはあり得るけど、結論は、「食べるのはやめておこう」ってことになる可能性が高い。きみが一見さんならなおさらそうだ。ぼくらのやりかたにかけた時間がすくないほど、調理場で手伝う立場からは遠のき、意見の重みは減る。とくに、大声で攻撃的なやりかたで表現されている意見は。

This rubs some people the wrong way. "But my opinion is as valid as yours!". No, really, it's not. Your opinion is valid for you, but most certainly not for the menu I've designed in this restaurant. The power you always have is to vote with your feet. If most things on the menu disgust you, what on earth are you still doing at the table? The door is right over there, try not to slam it on your way out.

意外なことに、こういう意見に気分を害する人たちがときどきいる。「しかし、ぼくの意見は、きみのと同じくらい妥当だ!」いいや、ぜんぜんそんなことはない。きみの意見は、きみにとって妥当だが、このレストランでぼくがデザインしたメニューには、ほとんど確実に当てはまらない。きみにはいつでも行使できる力がある、それは店に通わないことで自分の意見を表明することだ。メニューのほとんどのものが気に食わないなら、いったいどうしてまだテーブルに着いてるんだい? ドアはすぐそこだ、出るときはできるだけお静かに。

If you want to have a long-term impact on the design of the menu of Rails, you'll have to work your way up to that. We added three more people to the Rails core group this week who did just that. They either showed up with a "what can I do to help?" directive or with a "here's a dish I've designed, have a taste and see if you like it". Nobody ever got to have a meaningful impact on the direction of Rails by contributing no code and just showing up in a Github comment thread and yelling about the evils of CoffeeScript.

もし長期的な影響をRailsのメニューの設計に対して持ちたいなら、それができる立場まで登り詰めなければならないだろう。ぼくらは、さらに3人をRailsコアグループに今週追加した。実際にそれをなしとげた人達だ。かれらは、「どんな手助けができる?」命令や、「ここにぼくがデザインした一皿がある、味見してみてよ」をたずさえてやってきた。コードで貢献した人だけがRaisの方向性に重大な影響を与えられるのであり、ただGithubのコメントスレッドに現れてCoffeeScriptの害悪について文句を言うだけで影響力を持った人は1人もいない。

Given the futility of this behavior, it's worth pondering why some people choose to engage in it? My pet theory is that it feels like meaningful activism in the moment. They haven't really paid much attention to how things are run on a day-to-day basis, but here's an opportunity to paint some signs and get on the barricades. Yeah, I've done my part! I've taken a stand! Down with.. uhm.. Turbolinks? Or was it CoffeeScript we're protesting this week? Or Bundler? Oh fuck it, down with SOMETHING! YEAH!!!

この振舞いが無意味だとして、なぜ人々がそのような行為を選択するのか、じっくり考えるのも悪くはないだろう。ぼくのお気に入りの理論は、それがその時点においては意味のある行動に感じられるから、というものだ。かれらは、日々の活動において、ものごとがどのように行われているのかにまったく注意を払っていないのだけど、いくらかの印を塗りたくってバリケードによじ登るチャンスが目の前にある。そう、おれは役目を果たしたぞ!立場を明確にしてやった! あんなもんは要らん…えーっとTurbolinksだっけ? 今週おれらが反対したのはCoffeeScriptだったか? いやBundlerだっけか? とにかくなんかか気に食わん! そうだ!!!

At the end of the day, it's worth looking at the bigger picture. Do I generally like what's being served in this establishment? Can I express my differences as exceptions or substitutions to the few things I don't care for? If so, then maybe I should give the chefs in the kitchen the benefit of assuming that they are working on what they truly think is the best way to go. It doesn't mean I'll have to like everything, but I can give up thinking it's a conspiracy to make the world love unagi as a sick joke.

締め括りとして、大局的な観点から見てみるのは悪くないだろう。ぼくは、この決まったやりかたで提供されているものが、おおむね気に入っているだろうか? 自分の見解の違いを、例外あるいは代替として、好みに合わないくつかのものに対して表現できるか? もしそうなら、調理場のシェフたちに、かれらがほんとうに思ったことに取り組むのが、最良の選択なのだと考えられるようにすることで、助けてあげるべきかもしれない。それは、ぼくが将来なにもかもを好きにならなければならないということではないが、世界中にうなぎを愛させようという、病的な冗談めいた陰謀なのだという考えを止められる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment