web2py book の用語について - action

36 views
Skip to first unread message

kato

unread,
Apr 25, 2012, 7:03:47 PM4/25/12
to web2py...@googlegroups.com
Tsuda さん
レビューをいったん終えましたが、更新する前にKatoさんや皆さんとご相談したいことがあります。actionに関してですが、私自身はactionは一種の処理単位として、通常のfunctionとは分けて理解してきました。というのも、以前かじった、Grails(Java/Groovy Flamework)では用語定義にアクションがあり、Rails(本家Ruby)はあまり詳しくありませんが、やはりactionが用語としてあったと記憶しています。
web2pyはそのようなフレームワークも参考としていると思っていますが、このドキュメントの最初の方ではfunction(action)という記載があり、用語定義の意図も感じられます。もちろん、actionはfunctionであって、訳としてはコードでも関数でも機能でもあるのですが、状況によってはアクションの方が良い場合もあるのではないかな、と考えています。また、用語としてアクションであればなおさらです。ご意見、お聞かせください。


Kato 
Tsudaさん
大変だったでしょう。ご苦労様です。
actionについてですが、私は他の言語のフレームワークに詳しくありませんが、actionという用語があるものもあるのですね。なるほどな勉強になります。
web2pyに関しては私は、用語として定義されている箇所を見たことがありません。というより、web2py book の章によって、actionを多用しているところと全く使っていないところがあります。私が関わったところで具体的に多いのが、10章12章辺りで、ほとんど使っていない所が5章6章辺りです。
これは何を意味するのかと考えたところ、文章を書いた人の性格に依るのではと思いました。actionを多用する人は何でも便利だからactionという単語を使う、だから使わない人は全く使わないという推測です。
問題は日本語にした時にアクションでは意味がわからないということです。用語として確立しているならアクションとして良いのですが、そうでないなら、何でもactionを使っている文章は徹底的にアクションを止めた方が、分かりやすいのでは、と個人的には思っています。


Chiba さん
Actionの翻訳方法についてMassimo本人に直接メールを投げてみました。 : ) その結果で判断しましょう。少々お待ちください。 
 
返答がきました。
結論から言うと、特に決まりはないのでお任せするそうです。
私はというと「アクション派」です。というのも、web2pyはdjangoとRuby on Railsをベースにできていますが、
Ruby on Railsではアクションは特別な意味を持つ言葉で、用途にも関してもweb2pyと同じです。私は以前、
Ruby on Railsも勉強がてら試したことがあるので、「アクション」という言葉がすんなり来ます。
http://enterprisezine.jp/article/detail/858 
みなさんいかがでしょうか?


以上が今までの経緯です。

前にも書きましたが、「アクション」という記述を避けた理由は、

  • actionという用語が明確ではない
  • 類似した機能に対しても、action という記述を多用している箇所がある
  • 章によって action を多用しているところと、ほとんどないところがある 
などです。宜しかったらご意見お願いします。




Omi Chiba

unread,
May 1, 2012, 12:18:53 AM5/1/12
to web2py...@googlegroups.com
コントローラアクション(コントローラにあるdef ~ 部分)についてはやはりアクションとして定義したいです。(Tsudaさん案)

それ以外の部分でもただの英語の動詞としてactionが登場しますが、これについては用語の意味を考えてそれぞれ実行、コード、操作・・・などに訳した方がわかりやすいと思います。(Katoさん案)

Mitsuhiro Tsuda

unread,
May 1, 2012, 3:31:38 AM5/1/12
to web2py...@googlegroups.com
chap10については議論の途中ではありますが、長期に保留するのも望ましくありませんので、(言い出しっぺではありますが、)現状までで更新し、一応のレビュー完了としました。(現状ではchap10では「アクション」は語としては使っていません。)

ふつうにはactionをすべて「アクション」というのも訳としては乱暴と思いますので、方向としてはOmiさんのご意見のように文脈に応じた適切な混在(難しい!)が妥当だと思いますが、結局、どの用語で理解しやすいか否かは個人のバックボーンによっても異なりますので、今は訳者を優先したいと(私は)思います。最終的にweb2pyを使う人が分かるのがいちばんですが、まだ先は長そうな気はします。

用語訳については、新しい概念もあり、また全体に及ぶものなので、4版翻訳はこのまま進めるとして、終了後にでも検討の場を設けてはどうかと思います。(まだ、あまり熱いことにもなってませんし。)現状は明確な索引は無いようなので、それに類するものを作りつつ継続的に定義しても良いかとも思っています。もちろんweb2pyのシステムを使って。

2012年5月1日13:18 Omi Chiba <ochi...@gmail.com>:

中垣健志

unread,
May 1, 2012, 9:14:03 AM5/1/12
to web2py...@googlegroups.com
中垣です。

当初翻訳を始めた時には「無いと有るではかなり違う」という考えの元
とにかく日本語になっていれば何とかなるだろうという気持ちでいましたが、
たくさんの人に参加してもらって、もう一段高い品質で翻訳するべきかも
という状況になってきたのではと思います。

"action"に限らず文書全体を通じてその品質を保つには、ツールの利用が
不可欠かなと思います。OSSでは"OmegaT"というツールがよく使われて
いるみたいですが、触った事もないので実力は未知数です。

参考資料
http://www.slideshare.net/translyucent/ss-11475013

2012年5月1日16:31 Mitsuhiro Tsuda <mi.t...@gmail.com>:

--
NAKAGAKI Kenji
mail:nakak...@gmail.com
twitter:@nakaken0629
facebook:http://www.facebook.com/nakaken0629

kato

unread,
May 1, 2012, 8:00:14 PM5/1/12
to web2py...@googlegroups.com
状況により使い分けるという意見には賛成です。

ところで、以前送って頂いたリンクを詳しく読んでいなかったので読んだところ、Railsはどうしてもアクションという概念が必要みたいですね。


# products_controller.rb
class ProductsController < ApplicationController
	def show
		@product = Product.find(params[:id])
	end
end
とすると、次のURLでアクセスできます。

Railsの規則により、コントローラクラスの名前は必ず「Controller」で終わらなければならず、コントローラの名前(products)と分離してはなりません。
コントローラクラスのインスタンスメソッドは「アクション」と呼ばれます。  
同じproducts_controller.rb 内にコントローラクラスでないクラスを記述し、その中でインスタンスメソッドを記述した場合は「アクション」ではないです。
つまり同じインスタンスメソッドでも、「アクション」になるものと、ならないものがある訳です。

一方、web2pyの場合は、

# default.py
def show():
	return dict(row=db.products(request.args(0)))
とすると、次のURLでアクセスできます。

「アクション」という言葉を使わなくても、関数名がURLに含まれるんだよということで理解できます。
強いて言えば、「アクション」になるものは公開されている関数であり、ならないものは非公開の関数(__show とすると非公開)です。
ChibaさんがMassimoに問い合わせた時の返答で「どちらでもよい」というのは、本当にどちらでもよいのではないでしょうか?。

他にも表記のブレというのはたくさんありますので、Tsudaさんが書いておられますが、必要なら後で直してもよいのではと思います。

2012年5月1日22:14 中垣健志 <nakak...@gmail.com>:

Mitsuhiro Tsuda

unread,
May 1, 2012, 9:12:37 PM5/1/12
to web2py...@googlegroups.com
手元に、Grails(言語Groovyのwebフレームワークのひとつ)の和訳書がありますが、この中でアクションが記載されており、

「アクションとは、ユーザーのリクエスト(あるいはURL)に応じた処理の単位です」とあります。(「Grails徹底入門」, 発行:翔泳社, 2008)

言語が違うので、あくまで参考までの話ですが、次のようにコントローラは記載されます。

class MyController {
def アクション名 ={
// 処理の記述
}
}

(以下は私の現状の理解なので、誤りもあるかもしれませんが、)
web2pyではコントローラのファイルの中身はPythonの関数ですが、表示に直接に結びつく関数は特にdictで値を返すように記載されており、(そればかりでもありませんが、)viewと結びつくようになっています。関数ではありますが、多少特別な意味はあると思います。これらはRails等のフレームワークのアクションに相当すると考えると理解がしやすい人もいると思います。定義にするほどでは無いが、区別できるというふうに考えています。

そういうこともあって現在、chap03をレビューしていますが、最初の方でactionの「ささやかな」説明があります。この章ではアクションと訳されていますが、こちらはそのまま進めることにします。

web2pyフレームワークの概念はとてもおもしろいので、こうしてレビューしているといろいろと新たな発見もあります。用語はどこまでが読者(範囲は狭いでしょうが)によって既知であるかも年々変化してゆきますし、独自の概念をどう訳すかはもっと議論をしてもいいかなと思います。翻訳とは別にでも少しずつ進めてゆきたいものです。

2012年5月2日9:00 kato <hi21a...@yahoo.co.jp>:

kato

unread,
May 5, 2012, 2:34:03 AM5/5/12
to web2py...@googlegroups.com
アクションの話を続けたい訳ではないのですが、逆の例も見つけたのでもう一度メールします。

13章デプロイレシピですが、Railsの定義に従えば両方共 action になるものなのですが、一方はfunctionもう一方はactionと記述しています(添付ファイル)。
一方はセッション管理、もう一方はレプリカデータベースの話です。actionで記述している内容は、Tsudaさん定義によるアクションの話と近いことを解説しています。

私自信はわかり易ければ、特にこだわらないつもりなのですが、全部変えるのは簡単ではない気もしてきました。
13章ではfunctionは「関数」、actionは「アクション」と訳しています。

2012年5月2日10:12 Mitsuhiro Tsuda <mi.t...@gmail.com>:
Efficiency tricks.png
Using replicated databases.png

kato

unread,
May 5, 2012, 2:36:21 AM5/5/12
to web2py...@googlegroups.com
すみません。添付ファイルを間違えました。再送します。

2012年5月5日15:34 kato <hi21a...@yahoo.co.jp>:
Efficiency tricks.png
Using replicated databases.png
Reply all
Reply to author
Forward
0 new messages