Lenovoのオンラインショップにて X61sの最上位モデルが安売りしてた。マルジェラにて修理したものを受け取ってから注文しようかな、と思っていたらショッピングカートに入れられず。??と思ったら「限定50台」だったらしい。ぬはー
逃した獲物は大きかった予感がします。
Lenovoのオンラインショップにて X61sの最上位モデルが安売りしてた。マルジェラにて修理したものを受け取ってから注文しようかな、と思っていたらショッピングカートに入れられず。??と思ったら「限定50台」だったらしい。ぬはー
逃した獲物は大きかった予感がします。
どうも今年に入ってから忙しい。徹夜も既に2回やったし、1月は100時間弱の残業もした。このままだと今年始めにたてた今年の目標を達成するのが厳しいではないか。
特に積読と休出や残業。
時すでに遅し。つんどく減りません。休みの日に仕事は当たり前です。
しかし勉強会で発表は達成するぞ、と。
androidは今月やってきたので、次は WebWork2。WebWork2はシリーズ化して何度かやります。狙いはStruts2への流れを作ること。現在の標準を置き換えるものを知っておくのは悪い事ではないと思う。(それくらい追い込まないと自分も勉強しないだろうし)
人は見たい現実しか見ない(by カエサル)
現実として、Strutsで十分だと思う。 でも、その現実にどこまで夢を見させられるか。挑戦です。
賽は振られた(by カエサル)
ちなみに Strutsを使っていないのは、自分がWebアプリを本格的に作り始めた頃には Struts以外にも選択肢があって、POJOなJavaBeanが使えるWebWorkを選択したからです。いやぁ、ActionFormとか、ActionFormBeanとか面倒敷居が高くて。自分に取っての見たい現実は WebWorkだったのです。
仕事帰りの21時過ぎに、久々に新宿で買物をしてきた。と言っても、カットソーを2枚だけだけどねん。
それにしても眠い。
ダメだ目がしぱしぱする
寝るしか...
ちなみに起きたのは14時頃... 単純に疲れが溜まってるのかな。
Safariが暴走気味で、続けてsyslogdも暴走したようです。
ここを見て解決しました。デーモンの起動が /etc/init.d/syslogd restartみたいなやり方に慣れていると凄く違和感。
なんか 10.5.2はイマイチ安定してないな。
どうやら Spring 2.5の SimpleJdbcTemplateは、少し使いやすくなって NamedParameterJdbcOperationを内包するようになったらしい。
2.0系のJavadocを見ていたので勘違いしていたようです。失礼しました。
なので、Java5以降で使用する場合は SimpleJdbcTemplateだけで良さそう。NamedParameterJdbcTemplateは1.4以前向けと言う事に寄せられているみたい。
学習コストが本当に完全にゼロになるんだったら、アーキテクトだけが知っていて他の人は知らなくても良いとか、と言えるんだけどそうじゃないし、作る人が使う道具をちゃんと知っていることと言うのは、大規模になればなるほど重要だと思います。むしろそこ(技術)で止まってしまっては何にもならないというか、技術をドメインとしているアーキテクトであればそこに注力して追求して行くことも必要でしょう。でも、ソフトウェア開発はアーキテクトだけで成り立っているわけではなくて、業務SEだったり、開発チームのリーダーだったり、プログラマーだったり、QAチームだって居る訳で、様々な役割の人が居る。そしてその人達は、それぞれ同じプロジェクトという枠の中で異なるドメインを相手にしている。
それぞれのドメインでベストを尽くして行くためには、道具(技術)の扱いで悩むのではなくて、本当の目的を解決する手段で悩んで欲しい。そこに時間を割けるように簡単で、正確に、バグが出にくく、柔軟なシステムを作れる環境を作って行くのがアーキテクトの指名なのかなと、いまは勝手に思っています。決して、手段を目的にしてはダメ。それだけは「絶対に」してはいけない。手段を目的にしているうちは、なんちゃってアーキテクト(アマチュアだと思う)。だから、自分は少なくとも目的を見失わないで、スッと使っている手段を用意していくのが当面の使命だと考えるようになった。
その上で教育は必要だと思う。ただそこを減らして行くための努力はしないといけないなと。だから何となくこの手段でやりたかったから、と言うのは無いかな。
去年、本当に自分自身の無力さと言うか、人ひとりの出来る事と量を悟ってから、考え方が変わったな〜、と自分でも思う。
でも前に比べて考え方がクリアになったし不快じゃなくなった。色々な人が世の中には居るし、合う合わない抜きにして、そういう人たちと一緒に力を合わせてやっていかないといけないし、それぞれがベストを尽くせるようにしていきたい。その下地を用意していくのがアーキテクトの使命なんだろうな。
今日よりもより良い明日に向けてちょっとずつでも、いまの環境でも粛々とやっていくしかない。
考え方と目標がはっきりしたので、根幹にある信念はブレないし、悩む時にもポリシーが出来た、そして折れることも無いと思う。(鼻がおられるとかはあるかもしんないけどさー)あとは、今の会社でそういうポジションを確立できるのか、と言うところに尽きる。出来る限りのことはするつもりだけど、こればっかりは自分で何とかという話じゃないんだよね。
なんか先週末はろくなエントリでも無かったので近況報告を。
週の合間に、SSDバージョンはあまり速く無いことが判明したMacBook Airを何度かポチッと Buy Nowしそうになっていたが、割と仕事は忙しく。ていうか、今週末は仕事。きっと来週末は休むかもしれんけど、再来週末も仕事。
とは言え、このプロジェクトに居るうちにとりあえず目一杯やっておかないとなー。
日本語で紹介されているところは無かったので簡単に紹介。
Springの SimpleJdbTemplateはGenericsのテンプレートでキャストを省略できる。NamedParameterJdbcTemplateは名前付きパラメータのSQLを使用できる。自分的にはキャストが必要なく、名前付きパラメータのSQLを使いたかったので、試行錯誤した結果...
SimpleJdbcTemplate sjt = new SimpleJdbcTemplate(namedParameterJdbcTemplate);
List<Employee> result =
sjt.query(
"select employeeid, name, telnumber from employee where age = :age",
new ParameterizedRowMapper<Employee>() {
Employee rowMap(ResultSet rs, int count) {
// ResultSetから値を拾ってがんばってEmployeeクラスに詰める
}
},
new BeanPropertySqlParameterSource(employee));
見たいなコードで書けることが分かった。
名前付きパラメータを S2Daoのみならず Springでもサポートしてくれたのは非常に価値がある成果だと思います。でもこのコードはねぇ...
もちろん実際には上のコードを Wrap したし、自分でResultSetからがんばって取得するなんて事は面倒過ぎてしていません。そこはcommons DBUtilsの出番だと思います。
久々に開発をやっていた(やっている)ということもあって、ほぼWebWorkのみで、SpringのJDBC系のライブラリのみ使用するという構成にしてみた。SpringのJDBCインテグレーションは、Templateメソッドで行けてない部分もあるので、そこは一つクラスを作って、Wrapして煩雑というかソースコードが汚くなる部分を吸収させた。WebWorkは元々Strutsとは違ってベースとなる設定さえ書いてしまえば、その後の設定はあまり必要なく割と lightに使えるので、それを最大限に出してみた。ちなみにアノテーションで画面遷移を定義しなかったのは、案件の事情で同一のアクションを複数定義して画面遷移先を変更する要求が出そうだった事。(予想通り出て来たんだけど)
結果として、DIコンテナと組み合わせたレイヤーアーキテクチャのアプリケーションの場合と比較して出て来たメリットは、
もちろんそれほど難しいロジックを書いていないから出て来たメリットとも言える。逆にデメリットは
0か1で rollbackかcommitするようなアプリケーションでは向いている実装方法だけど、条件により更新したりしなかったり、セーブポイントを使いたかったりすると、たぶん宣言的トランザクションが使いたくて仕方が無くなると思う。実際に今回は使いたいと思った箇所が2カ所ほど出て来ていた。
2年くらい前にやっていたWebWork2とSpringをがっちりインテグレーションした構成よりも、マスタメンテ画面ではこれくらいの構成のほうが作りやすい。今回はテスト用の入力画面をDTOから生成するコードジェネレータを作ったので更にスムーズに作れた。でも、少し外れるロジックが出てくると苦しい。そこが今のところの課題かなぁ。一部、テストコードのスタブ的な物は生成できると良いのかもしれない。少し考えてみよう。
あとSpring 2.0から追加された SimpleJdbcTemplateとNamedParameterJdbcTemplateは意外に悪くない。ただ上にも書いた通りTemplateメソッドなのでコードが汚くなる。そこを解決してしまえば割とシンプルに作れる。
書類を作る必要があり、Pagesで作ろうかと思っていたけど、Lotus Sympohonyが日本語にも対応したと言うのを思い出してThinkPadにインストールしてみた。(Mac版は無かった。残念。。。)
OOoをベースにEclipseのガワを被せたような感じです。が、メニュー構成が多少変わっていて OOoよりもかなり良い印象を持ちました。ちなみに作成した書類は、PDF化したあと、元となるファイルがフォーマット不正でお壊れになりましたとさ... 嗚呼(涙
ダメだ iWork' 08を買ってこよう...
最近のコメント