2008-07-01から1ヶ月間の記事一覧

Javadocを書かない

前回はJavadocを書く - しげるメモというタイトルで話を進めましたが、今回は逆にJavadocを減らすプラクティスについてメモがてら。私は別にJavadocを書くのが好きなわけではなく、単純に書いたほうがめんどくさくないと思うのでそうしてます。ただ、Javadoc…

改行重要

eclipse.ini -vm C:\Software\Java\jdk1.6.0_06\bin\javaw.exe -startup plugins\org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar --launcher.library plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.100.v20080509-1800 -showsplash …

Javadocを書く

最近は時間を作ってEffective Javaの2版をよんでます。Effective Java (Java Series)作者: Joshua Bloch出版社/メーカー: Prentice Hall発売日: 2008/05/08メディア: ペーパーバック購入: 6人 クリック: 65回この商品を含むブログ (42件) を見るほとんど1版…

プログラミングファーストの疑問

どうやって異常系の検出してるんだろ? 天才系: 正常系書いてるうちに勝手に網羅できるくらい思いつきますよ 後回し系: フレームワークを使うと後付で異常系を簡単に書けますよ。顧客に言われたらすぐに対応します クラッシュ系: 500 Internal Server Error…

Java/EclipseでDSLサポート (4) - スキャナエラーの表示

立て込んでてイマイチな進捗。とりあえず今回は簡単なフィルタ - しげるメモで作ったDSLに対して、字句レベルのエラーを表示してみようと思います。完成品がコレ。

Java/EclipseでDSLサポート (6) - 意味エラーの表示

前回の「Java/EclipseでDSLサポート (5) - パースエラーの表示 - しげるメモ」までで構文エラーを検出できてますが、今回は構文が持つ意味にまで言及してみようと思います。ListFilterに対して、次のようなHogeクラスのリストを食わせる前提で。 public clas…

Java/EclipseでDSLサポート (5) - パースエラーの表示

サクサク進む。直前の「Java/EclipseでDSLサポート (4) - スキャナエラーの表示 - しげるメモ」から今度は構文レベルのエラーを表示してみます。完成品。

そろそろ

そろそろ本気出す。今週はオートコンプリートまで行きたいところ。

簡単なフィルタ

こんな言語(?)でやってみようかなと。 class Hoge { public int a; public int b; } List<Hoge> list = new ArrayList<Hoge>(); ... List<Hoge> filtered = ListFilter .source(list) .includes("a != 0") .includes("b > 0") .excludes("a > b") .toList(); includes("conditi</hoge></hoge></hoge>…

Javaが不得意なこと

サンプルに使うDSL考えてて、あまりに思いつかないので一人ブレスト。JavaやっててついDSLにしちゃう部分。 複雑なデータ構造の構築 duck typingのほうが楽そう データ構造の検索 論理型言語が得意で、手続き型言語は向いてない シンボル参照 シンボル定義が…

Java/EclipseでDSLサポート (3) - DSLとして使われる文字列リテラルの判定

前回は見つけた文字列リテラルを片っ端からDSLとみなして警告をつけていましたが、今回からちゃんとDSLっぽくなる予定。まず、すごく簡単なDSLの仕組みを作ります。

Java/EclipseでDSLサポート (2) - コンパイルプロセスへの介入

次に、Eclipse JDTの拡張ポイントを利用してコンパイルプロセスに介入していきます。 調べながら同時に書いていくのでゆっくりと。

Java/EclipseでDSLサポート (1) - DSLの形式

やっとこさ時間ができたので、JavaでDSLを(やむを得ず)使う場合にどうやってEclipseからサポートするか考えて見ます。こんな感じがいいんじゃないのかなというところ。 Hoge dsl = HogeParser.parse("<Hoge-DSL>", arg1, arg2,...); つまり、 メソッド呼び出し + 文字</hoge-dsl>…

水泳

運動不足なので泳いできました。アップのつもりで泳いでたのに200Mで息が上がってびっくり