torutkのブログ

ソフトウェア・エンジニアのブログ

昨日(6/9)はJava読書会の日でした

Java言語仕様はさすがに難物でした。

メモ

  • 名前:プログラム中で宣言された実体を参照するために使われるもの
    • 単純名
    • 限定名
  • 名前と識別子は別物、宣言中で記述するのは識別子
  • シャドーイングと隠蔽とオブスキュアは使い分けよう
  • コンストラクタと型変数はメンバではない
  • ラベルは変数名などにシャドーイングされない

2次会にて

Ruby on Railsを使った開発とJavaによる開発との比較で熱い議論が繰り広げられました。なんとなく意見をまとめると

  • Perlで開発していたのに比べるとRubyの方がプログラムの保守性よい
  • Perlでプログラムが肥えていくと(サイズが大きくなると)破綻しがちだが、Rubyなら(オブジェクト指向の恩恵で)破綻しにくい
  • Javaで開発しているようなシステムをRuby(on Rails)で作るのは無理(クラスタリング、各種システムとの連携)。
  • 「大規模」を定量的にいおうよ。Ruby数千行〜1万行あたりが開発の限界では?
  • Ruby on Rails騒がれているけど実績少ないよね。そんなに凄いならなぜみんな使わないの
  • JRubyなんでわざわざJavaの上でRuby使うの?
  • Ruby(on Rails)安定して提供されるか不安だよね。(3年後に今のバージョンが保守されている?)
  • Rubyの数十行ですごい機能が書ける。1000行なら相当な機能だ。

端っこに座って向かいのE氏とSwing、MVP(Mode-View-Presenter)モデルの話しで盛り上がっていたので、Ruby議論にあまり加われなかったので、メモまで。

MVPモデルの話のメモ

MVPの凄いところは画面だけ先に作って動かす(表示させる)ことができるので、プログラム作っていてとてもモチベーションが高い。一方、Viewをインタフェース化しようとするとメソッドが大量になり、またちょっとViewをいじるとすぐインタフェースが変更になってしまう問題もある。JGoodiesの資料のように、インタフェースにせず、PresenterがViewのフィールドを直接(Getter/Setterなしに)いじってしまうのも有りだよね、どうせViewとPresenterは結合が強いんだから。ただ、PresenterをViewのインナークラスにしてしまうのは、サイズが肥大化してしまうから分けるべし。