今日のつぶやき


#scala のlazy valは便利。2パス以上の処理をするプログラムだと大変重宝する。 @myen #

#scala のfluent interfaceをよりDSLっぽく見せるためのメソッド命名テクニックを探している。 @myen #

オレ流命名では普通のpublicはcamel、protected/privateとDSL向(public)けはunderscoreとしているけど、protected/privateとDSL向け(public)が重なるのが不満。 #scala @myen #

usecase→service→event→entityの4層で考える。eventがserviceとentityの状態遷移を結びつける。usecaseはUIシナリオとして具体化する。サーバ側はserve/event/entityを具体化する。 @myen #

自動生成のターゲット言語はJava VMの環境ならJavaが妥当。 @myen #

powertypeの実現はJavaならenumが妥当だけど、要素追加可能なpowertypeはそうはいかない。これをどう実現するか。enum版との親和性をどう折り合いをつけるか。 @myen #

scalaを生成してよいならどんだけ楽やねん、と思ったりもするけど、Javaの煩雑さを軽減できるのも自動生成の目的の一つなので致し方ない。もっとも、Java以外だと配備の問題がネックになるので、こっちの方がJava以外を選べない主要な理由。 @myen #

追加可能なenumのようなことをしようとするとメタ機能が必要になるので、メタをサポートしやすい動的言語が時代のニーズに合っているのは分かる。 @myen #

Scalaの場合、事前に分かっている言語拡張はメタがなくても問題なく捌けるが、DB上のメタ情報をダイレクトに言語に反映させるような用途には不向き。これを乗り越えるためにどのような業が出てくるのか、がウォッチするポイントの一つ。 @myen #

ScalaDSL技法上Symbolを使ってメタ系の技をかけれないかな、と考えてみたり。 @myen #

イトーヨーカドーのネットスーパーの配達対象地域に入っていることが判明した。 #

クラウド・アプリで案外難しいのが時間の扱い。情報の持ち方、サーバ上での扱い、クライアント上での扱いに整合性をもたさないといけない。基本はUTCにするのが筋で、表示時に利用者のロケールにする。言語ロケールと場所ロケールが一緒とは限らないのも難点。 @myen #

クラウド・アプリは基本的にI18N(懐かしい!)でありたい。表示ラベルのマルチロケール化もメタ情報をDB上で管理する場合、割とややこしい問題となる。簡単だけどめんどくさいは自動生成の対象。 @myen #

#scala で初回だけ別扱いしたいループはどうかくんや。 @myen #

ループで最後だけ特別扱いはもっと難しい。 #scala @myen #

Intに対するinfixのeqの動きがおかしい。 #

おぉ。「The Scala library as OSGi bundle」。ダウンロードページにて。 #scala #

infixのeq、scala-2.7.6でもあかんかった。 #

eq(5,5)はOKだけど5 eq 5はダメ。むむむ。 #

最初と最後の要素を特別扱いするループはSeq.firstとSeq.lastを使うのがよさそうだ。 #scala @myen #

#scala は現在2.7.7 rc2配布中。2.8からContinuationsとNamed and default argumentsが入る。Continuationは非同期処理の記述に効果がありそうだけど、best practiceが確立するにはには時間がかかりそう。 #

Named and default argumentsの方が日々のプログラミングに影響ありそう。 DSLとかフレームワークで技が増えそう。 #scala #

powertypeを固定値⇒enum、追加可能⇒entityで出し分けるようにしてみた。 #

新規開発のJavaソース生成フレームワークもそれなりに動いてきていて一安心。 #simplemodeler #

atom:entry, atom:feedをentityとして、atom:linkによる網構造を半構造としてパターン・マッチングを掛けていく応用で、何かよいことがあるか。 @myen #

Automatically shipped by LoudTwitter