ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Asakusa on Spark(開発者プレビュー版)出た

2015-07-09 02:38:54 | PG(分散処理)

2015/7/8に、Asakusa on Sparkの開発者プレビュー版が公開された。

Asakusa Frameworkで作ったバッチアプリケーションは、従来はHadoop(およびスモールジョブ実行エンジン)で動いていた。
Asakusa on Sparkは、AsakusaバッチをApache Sparkで動かすもの。

Spark版バッチはHadoop版バッチより3~5倍程度速いらしい。
ちなみにAsakusa on Sparkの存在は2015/5/27のde:codeや2015/6/10のdb tech showcaseでひっそり発表されていたらしく、Spark版バッチがHadoop版バッチよりどれくらい速くなるかの情報も出ていたようだけど、資料は公開されていないっぽい。

Asakusa on Sparkがすごいのは、従来のAsakusaDSLで書かれたものをリコンパイルするだけでSparkで動かせるようになること!
それだけで3~5倍も速くなるというんだから、興奮する(笑)
(Sparkのチューニングは必要みたいだけど。そもそも通常のSparkアプリでも、パーティション数をいくつに設定するか等については試行錯誤するしか無いっぽい)


AsakusaFWが公開された当初(2011年)から、AsakusaFWは「分散バッチアプリケーションを開発する為のフレームワーク」であり、「実行基盤としてHadoopを使っている」と謳っていた。そして、「Hadoop以外の有望な実行基盤が出れば、それに対応するかもしれない」ということも当初から言っていたと思う。
(つまり、AsakusaFWにとっては、Hadoopは従。Hive・PigやAZAREA-ClusterはHadoopを楽に扱う目的のものなので、Hadoopが主) 

とはいえ、その当時は「別の基盤に対応なんて、夢物語じゃないのかなー」と思っていた。
それが、今回Sparkで動くようになったことで、実際に実現した!
しかもリコンパイルだけで動くようになるという。アプリケーションの開発者にとってはまさに夢のような話。

そして、今後も新しい実行基盤が出てくれば、それに対応するかもしれない。夢が膨らむなぁ(笑)


ところで、Asakusa on Sparkとは関係ないんだけど、AsakusaFWのドキュメントのURLが変わったらしい。
従来「http://asakusafw.s3.amazonaws.com/documents」だった部分が「http://docs.asakusafw.com」になった模様。
当面は古い方も使えるようだけど、自分のウェブページからのリンクは、新しい方に切り替えた。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

直訳コメントは不要だと思う

2015-07-01 23:31:57 | プログラミング

不定期に何度も盛り上がる話題、今日は直訳コメントの必要性について(笑)
→『コードを直訳したコメントは必要なのか?「要る派」と「要らない派のまとめ」【 #社畜ちゃん台詞メーカー 】』 

コメントをどこまで付ければいいかということについてはなかなか結論が出ないけれども、「コードを直訳したコメント」はさすがに要らないと思う。


例えばこんなコードは直訳コメントなので、要らないんじゃないか。

// iに1加算する
i += 1;

これが以下のようなコメントなら、直訳ではない。

// ループカウンターをインクリメント
i += 1;

とは言え、このコードの前後を見てiがループカウンターであることがすぐ分かるのであれば、こういったコメントは不要だろう。
しかし、以下のようなコメントだったら?

// 年齢を増やす
i += 1;

これならコメントに意味が出てくる気がする。
しかし この場合は、変数名を何とかしろよって話だよな^^;

// 年齢を増やす
age += 1;

こうなると直訳コメントなので、このコメントは要らない気がする。


もうちょっと別の例。

// 猫の身長に入力データを設定する
dog.setHeight(inputData);

変数名がcatだったら、直訳コメントになって、不要なコメントだった^^;
あるいは、こんなの。

// 猫の身長に入力データを設定する
cat.setWeight(inputData);

これらの場合、コメントが間違っているのか、コードが間違っているのか?

自分の場合、コーディングする前に、どんな処理を行うか考える一環としてコメントに書くことがある。
それに沿ってコーディングしていくので、いわばコメントが実装仕様になっているわけだ。
その観点で言えば、たぶんコードが間違っているんだけど、コードを変えてコメントを変え忘れることもあるわけで、一概には言えないorz
(コメントとコードをまるまるコピペして、片方だけ修正が漏れるってことがよくある…。特にコメントの修正を忘れても、コンパイルエラーにもテスト失敗にもならないから…)

こういうミスを発見するためには直訳コメントであっても意味があるのかもしれない?
あるいは余計なことを考える羽目になるので、やはり直訳コメントは無い方が良い?(コードがミスってれば、テストで発覚するし) 


以下のようなコードだったら、コメントにも意味があると思う。

// 値が一番小さいデータを取得(リストは値の昇順でソート済み)
Hoge min = list.get(0);

これが、「リストの先頭データを取得」なんていう直訳コメントだったら、意味がないと思うけどねw

結局、「事実(どういう処理か)」はコードを見れば分かるので、それを日本語化した直訳コメントは要らない。
どういう「意図」でそういうコードになっているのか、というのはコードを見ても分からないので、コメントが欲しい。

少なくとも、コメントを書くにも結構な労力がかかるので、コードの1行1行に対して必ずコメントを入れろ、なんてのは全くナンセンスだと思う。
(そういう要求をされると、直訳コメントが増える気がするし)

コメント (3)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする