2008-01-01から1年間の記事一覧

ドキュメントがなくても大抵のソフトウェアは動く

でも、大抵のシステムは動かない

美しい世界

ビューティフルコードを読み始めました。ビューティフルコード (THEORY/IN/PRACTICE)作者: Brian Kernighan,Jon Bentley,まつもとゆきひろ,Andy Oram,Greg Wilson,久野禎子,久野靖出版社/メーカー: オライリージャパン発売日: 2008/04/23メディア: 大型本購…

立ち戻る

最近よく目的と手段が入れ替わってることがあるなーと自分の行動を反省することが多々あるので、自分の行動プロセスを明文化して自らに定着させようという試み。以下メモ。

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で息が上がってびっくり

Ganymede

やたら落ちる やたら起動までの時間が短い 差し引き0

生産性について - DSL

先週できなかったので、今週と来週にかけて。 利点 そのドメインに適した記法で書ける 読みやすい 書いててげんなりしない 欠点 俺言語になりがち syntax/semanticsが明確でない テストされてない 保守されない サポートがない コンパイラが感知しないので、…

3

shigeruサーベル (攻撃力:3) 武器の強さが1〜100で表示されますが、25が平均的な強さです。 http://genzu.net/buki/ http://d.hatena.ne.jp/masataka_k/20080627/1214574967 と20倍くらい違うんですが…

Ganymede

Ganymede中

生産性について - フレームワーク

その「めんどくさくなさ」というのに生産性という言葉をあてはめること自体が無理がある気がする。 2008-06-23 というご意見がありながらも、とりあえずここでは生産性という言葉を使って喋ることにします*1。「フレームワーク(以下F/W)がもたらす生産性」と…

生産性について - 余談

「楽天市場の実際のサービスを開発してみた結果,Rubyの生産性は他言語の1.6〜3倍だった」---楽天技術研究所 代表の森正弥氏は6月10日,日本Ruby会議2007でこう語った。 【日本Ruby会議2007】「Rubyの生産性は他言語の1.6~3倍」---楽天技術研究所 森正弥氏 …

生産性について - プログラミング言語のドメイン

一人ブレスト。ややカオス。前回のはどうやら釣られただけのようですが、それでも「JavaはRubyより生産性が云々」という議論はよく聞きますよね*1。私はRubyを文法と設計思想でしか知らないので多くを語ることはできないのですが、そもそも一般論で比較する…

declarative work

土日でやること。 Java文字列リテラルでDSL作るとき、Eclipseプラグインでなんかできないかね Subversiveの動きを追っかけてみるテスト

メモ

とりあえずグラフ理論忘れすぎ もう一度勉強しなおす 数学系のライブラリをちゃんと調べておく コンパイラに使う程度の数学だとかなり浅い 車輪の再発明は趣味の範囲に http://jung.sourceforge.net/ http://acs.lbl.gov/~hoschek/colt/

びっくり

コーディングしてたら37.2度まで解熱してた。なんだこの身体…

循環依存関係とか

何でこんなことやってるかというと、会社の同僚から「でかいプロジェクトをいくつかのプロジェクトに分割するときどうするよ」って言うネタをいただいたからでした。今考えてみると、単に弱連結成分を検出して、その中のどこか適当なところでカットしてあげ…

循環依存関係の検出を高速化

寝付けなかったので書いてみた。rt.jarも1分以内に終わる。以下、プログラム。

閉路列挙

ちょっと落ち着いて考えてみたら、普通に強連結成分探すだけで閉路見つかるじゃん…。 なんでAll to Allの到達性判定なんか使ってたんだろ…とりあえず、方針のメモ。 間接依存の表はいらない 強連結成分分解でやる たぶん、そうすれば処理は秒単位で終わる予…