クラウドコンピューティング ~ EC2、Mosso、GoGrid
クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。
作者 Moxie Zhang, 翻訳者 金森 諭 投稿日 2008年5月22日 午前6時24分
2008年4月18日、AdobeはFlex SDKのコーディング規約とベストプラクティスを公開した(source)。AdobeのFlexチームの説明によると、この新しい規約は「・・・オープンソースでActionScript3(AS3)で書かれたFlexフレームワークのコンポーネントを書く上でのコーディング標準を定めています。この規約に従うことでソースコードは一貫性と秩序を保ち、プロの仕事らしく見えるようになります。」
その説明にもかかわらず、この公開によりFlex RIAコミュニティの開発者の間で論争が引き起こされた。たとえば、Keith Petters氏(source)はコード規約文書の「Flex執着」と呼んでいる部分が気に入らないという。「私をイライラさせるのは、この規約がFlexドキュメントと名づけられていることです。Flex仕様というようなものは実際ありません。これは完全にAS3のコーディング規約なのです。AdobeにはFlexへの固執を捨てて独立した言語としてのAS3の存在を認めてもらいたいものです。」と彼はコメントしている。これに対しIgor Costa氏(source)は「AdobeのFlexへの固執とAS3を一つの言語として使うこと、それは確かに正しい、Keith。しかしこのドキュメントはFlex 4 SDKのコーディングガイドについてでありSDKに含まれるActionScriptクラスについてだけだ。言語全体に対してではない。」とブログに書いている。
一番活発に行われている議論はおそらく、コードはどのような書式であるべきかということを詳しく論じていることだろう。TL on PLのTom Lee氏(source)は「何か根拠のようなものがあった方が彼らにとってよかったからで、こうしなさい、という命令ではないのだと思います。」と述べている。たとえば、「new Array()ではなくArrayリテラルを使いましょう」のような規約上での例外があることを指摘している。そしてLee氏はこう述べている。
new Array()”はオブジェクトの初期化において他の方法よりも一貫性があるのではないでしょうか?"[]"([1,2,3]のようにAS3で配列の宣言に使われる)は略した記法です。私の見たかぎり略記は通常使わないようにされています。言語により慣れ親しむ必要があるからです。同じように私はこの提議に対して、ObjectのリテラルやRegExp(正規表現を扱うクラス)のリテラルなどを使うことにも異議を唱えたいと思います。一貫性が大切なのです。
Igor Costa氏もコーディング規約とベストプラクティスに不必要な指定が含まれていることに疑問を持っている。たとえば、「左括弧の前後や右括弧の前にはスペースを入れない、とあります。a[ 0 ]ではなくa[0]とするようにということです。空白スペースについて本当に心配する必要があるのでしょうか?」と疑問を投げかけている。
一方、Tony Fendall氏(source)も一貫性と良い慣習の数の少なさにはメリットがあると考えている。彼はこう述べている。
個人的に、推奨されている規約には賛同します。確かにコードの役割的には空白は直接重要でないとも言えるでしょう。しかし全てのクラスや関数で一貫性が保たれていることは、各人がそれぞれのスタイルでコードを書いているより効果があります。限りなく少ない慣習だけでタスクをこなすメリットは一貫性を保つだけの価値があるのです。
整数と符号なし整数の使用についての議論もある。今回のコーディング規約文書では整数値に対しては、たとえマイナスにならなくてもint型を使うように推奨している。そしてuint型はRGB値やビットマスクやその他の非数値に対してだけ使うようにとある。「符号なしの整数値以外のものに対してだけuint を使うことに意味はあるのだろうか?」とKeith Petters氏は疑問視している。
Pixel Burner氏はこう意見している。「多くのプログラマが律儀にuintを使っていることに気がつきました。しかし私はいくつかの記事で、uintは int型に比べて200から400パーセント遅くなる可能性があると読みました。なので私はuintは使わないのです。」Burner氏が触れている gskinner.com(source)の最近の記事では特にuintの使用について書かれている。この記事ではコードをテストしてから次のように書いている。
uint を使う使うちゃんとした理由がないかぎりuintは使わないようにしましょう。intを使った方がいいのであればintを使って構いませんが、int型と Number型のパフォーマンス優劣は気にするほどではありません。理由がなければNumberをデフォルトで使いましょう。一番大切なのは、思い込まないことです。可能であればテストとベンチマークをしてみましょう。その結果は驚くものになる可能性があります。
このような議論があるが、AdobeのSho Kuwamoto氏(source)は結局ActionScriptでは次の場合以外はintを使わないことを強く推奨している。
全ての議論から確かに分かるのは、コーディング規約には書式や保全性だけでなく一切合財が含まれるということだ。
原文はこちらです:http://www.infoq.com/news/2008/05/flex-coding-convention
クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。
パート2では、ベンチマークの結果を検証するために用いられるテクニックについてさらに深く見ていきたいと思います。最後に、「なぜプロセッサが異なるとロックのコストも大きく異なるのか」と言う真の疑問に答えます。
本稿では、Stefan Tilkov氏が「RESTful」な設計であると主張するアプリケーションに見受けられる最も一般的なアンチパターンのいくつかについて説明し、それらを避けるための方法を提案しています。
Sven Efftinge氏、Peter Friese氏とJan Köhnlein氏が、MDDを取り入れて成功した経験から、ベストプラクティスの解説を行います。
Our panel of leading experts explores some of the challenges and thought processes that go into making their apps as scalable and performant as possible.
この記事は、Spring 2.5で導入されたアノテーションを探究する3部作の第2弾です。Web層におけるアノテーションのサポートを扱います。最後の論文では、統合と検査で利用できる追加機能を説明する予定です。
私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。
No comments
返信