第1段階のEoDのコツとは

誰しも設計者は,業務がどのようにソフトウェアに落ちるのかについて,イメージを持っていると思う。そのイメージは,必ず何らかの「軸」と「箱」で整理されたものであるはずだ。しかし,「軸」と「箱」が何なのか?というと,それはドメイン依存なものなので,形式的に語れないところが,もどかしい。しかし,パターンは何らかあるはず。例えば,今後の拡張性を第一に考え,しかも何らかのルールの組み合わせで全体の流れが構成できるのであれば,(Eclipse Platformのような)コア+プラグインというソフトウェア...

優秀なデベロッパに光を!

僕ももう30歳になり,自らアプリケーションのコーディングを仕事で行うことは,めっきり少なくなった。設計やベース部分,開発ツールなどを手がけることが多くなり,もしかしたらMicrosoft Office製品を触っている時間の方が多いかもしれない(いや,確実に多い)。プロジェクトに参加する数多くのプログラマを面倒見つつ,いろんな雑務をこなしながら,システムの実装作業を指揮する。はっきり言って,自分が何人いても足りない。 実装作業に秀でたデベロッパを数人知っている。彼らが描くプログラムは,合理...

システム開発の責任感

顧客のシステム開発を行うこととは,どういうことなのだろうか? ADSLも飽和状態となりかけている今日では,昔とは比べ物にならないほど,インターネットの世界は一般に浸透している。インターネットの世界「だけ」でも,立派に市場が成り立つようになった。店舗や何らかの媒体,そして人間を使わなくても,インターネットというバーチャルな世界を使えば,そこで商売ができる。 当然,インターネットユーザ「のみ」をターゲットとした商売を始める企業も増えてきた。インターネット上に何らかのシステムを配置し,そのシ...

EoDフレームワーク?

お風呂で考えたことを書いてみる。 最近,EoDについて考える機会があった。「Ease Of Development」,つまり「開発を簡単に」という言葉だ。とかく世の中では,EJB3.0や,J2SE5.0に搭載されたAuto-Boxingやannotation,JSFなどがEoDとして取り上げられているが,システム開発の工程で考えると,それらのEoDは「微々たるもの」と思えてならない。EoDは局所的なものではなく,工程全体で考える必要がある。 EoDは,整理すると,3段階のEoDがあると...

イメージすること

チーム開発では,チームの船頭的なポジションにつく人間によって,プロジェクトの成否が決定するといっても言い過ぎではない。かく言う自分も,年々まとめていくチームの人数が増えてきている。その分だけ,仕事の難易度は上がっていくし,責任も大きなものになる。チーム開発を成功に導くためには何が必要か,それは「イメージすること」を忘れないことだ。 僕はスキーヤーだ。冬は(昨シーズンは不本意だったが)ほぼ毎週スキーに行く。1級を取得したあとは,なかなか目に見えるだけのはっきりした技術の向上は難しくなる。外...

Roller Weblogger始動!

先週から挑戦していた Roller Webloggerだが,やっと動き出した。「 インストールガイド」を読みながら,手順に従って作業を進めたつもりだったが,以下のようにNullPointerExceptionが発生してしまい,絶妙なところで足止めを食らってしまった。 気づいてしまえば何てことはない,「jdbc;postgresql://~」というように,DB接続で本来「:」なところを「;」にしてしまっていただけだった。fedora core 3にはVNCで繋いで,しかも縦横比を3:4...

ロバストネス図113枚!!

あるシステムについて,その構造を「バウンダリ」「コントローラ」「エンティティ」の関係で示す表記法が,ロバストネス図だ。オブジェクト指向分析,特にユースケース駆動なプロセスにおいて,分析工程の初期から中期にかけて使われるものだ。ユースケースから導き出された各ユースケースフローからクラスを発見することが,ロバストネス分析の目的であり,その過程はロバストネス図として視覚化される。 今日のWebアプリケーションで採用されるアーキテクチャは,そのほとんどが3層構造(View,BusinessLog...

カスタムタグハンドラ内でのELの解釈

自作カスタムタグ内の属性の値に,ELを記述したいときがある。普通にカスタムタグのハンドラを作った場合,ELの式の文字列が単にsetterに渡されるだけである。 渡されたELの式を評価し,ELが示しているオブジェクトを得るためには,以下のコードを実行すればよい。 import org.apache.taglibs.standard.lang.support.*; Hoge targetObj; String target = “${hoge}”; targetObj = (...

最近の勤務実態

5月16日 AM7:50家発-AM0:40家着 5月17日 AM9:30家発-AM0:40家着(ヘルニアの治療) 5月18日 AM7:50家発-AM0:40家着 5月19日 AM7:50家発-AM0:40家着 5月20日 AM7:50家発-AM0:40家着 結局毎日終電。そして今日も終電。 いくら仕事だとしても,こんな状態でどうやってモチベーションをあげればいいんだろうか。。。人間らしい生活がしたい。

後輩との飲みであがった話題

昨日「後輩の超実装クン」と久々に会って飲んだ。そこで出た話題はこんな感じ。 「単体テストの標準化」という仕事は,ドキュメントの整備ばかりで大変だ。 入力値のバリデーションをどのようにとらえるのかは難しい? 複数画面の遷移の制御をしてくれるフレームワークが増えている。今後はやはりそれが主流になる? 何だかんだ言って,JSFはこれから必須だ。 「月の雫」のテーブルに端末があり,タッチパネルで注文が...