Friday, June 17, 2016

MyBatisでLocalDate, LocalDateTime使う

4月に MyBatis-TypeHandlers-JSR310 1.0.0 がリリースされてました。知らんかった。
myBatisのエンティティにjava8のDate and Time APIを使うためのタイプハンドラです。
せっかく書いたけど、オレオレハンドラとはお別れです。


  • pom.xml
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-typehandlers-jsr310</artifactId>
  <version>1.0.0</version>
</dependency>


  • mybatis-config.xml
<typeHandlers>
  <typeHandler handler="org.apache.ibatis.type.InstantTypeHandler" />
  <typeHandler handler="org.apache.ibatis.type.LocalDateTimeTypeHandler" />
  <typeHandler handler="org.apache.ibatis.type.LocalDateTypeHandler" />
  <typeHandler handler="org.apache.ibatis.type.LocalTimeTypeHandler" />
  <typeHandler handler="org.apache.ibatis.type.OffsetDateTimeTypeHandler" />
  <typeHandler handler="org.apache.ibatis.type.OffsetTimeTypeHandler" />
  <typeHandler handler="org.apache.ibatis.type.ZonedDateTimeTypeHandler" />
</typeHandlers>


これでエンティティクラスにLocalDate, LocalDateTime等が使えると。

Thursday, December 5, 2013

Genba is not dead または Genba will never die

この記事はDevLOVE Advent Calendar 2013「現場」 の27日目です。
kimura_m_29さんからバトンを受け取りました。

自己紹介

はじめまして。羽飼康(はがいやすし)と申します。
ソフトウェアの開発を生業としております。主に受託開発のお仕事をさせていただいています。
名古屋アジャイル勉強会、DevLove名古屋のスタッフをさせていただいております。

現場

現場ってなんでしょうねって思って、私が最初にイメージした『現場』はこんな感じです。

  • 工作機械の製造現場
  • 工作機械を使ってアルミなどを削り出している製造現場
  • 物流の現場
  • 土木工事の施工現場
これらは私がお仕事で関わることのあった『現場』です。
特に『土木工事現場』は私にとってとても大切な思いのある『現場』だったりします。
こうやって見てみると建設業だったら工事現場、製造業であれば製造の現場というように、それぞれの組織・業界において、「取引の対象となるモノ(コト)」が産み出されている場所を『現場』と呼んでいる事が多いように思います。我々の業界でも『現場』というと、やはりソフトウェア開発を行っている場をそう呼びますね。
とはいうものの、我々がシステム化対象業務の実態を知るために「現場を見る」とか「現場の声を聞く」とか言って、実際の業務が行われている有様を見させてもらったり、話を聞かせてもらったりします。この場合必ずしも「生産」の場では無い。
営業活動だったり、いわゆる事務であったり、システム運用業務の場合もありました。
実はすべてのコトが行われている場は『現場』なんですね。それぞれの現場があって、ある現場で閉じているモノなど一つも無くて、すべて現場と現場の関わりで成り立っている。システム開発に関わっている我々はそれを知っているはずなのです。
例えば『モノを買う』という行為は、

  • 生産するための材料を入手するというコト
  • 取引先に発注するというコト
  • 仕分けを起票するというコト
  • ウォッチすべき原価に変化が起きるというイベント
という具合に、それぞれの現場・役割においてする事も意味も異なったりします。それでも目指すべき大きなゴールは同じであるはずです。

『現場意識を強く持っているのはおそらく『生産の現場』です。これはその現場の中の人も外の人もそう思っていることが多いと思います。
こういう現場を指す『現場』という言葉は、水戸黄門の印籠のように使われることがあります。
『現場』または『現実』はこうだっ!と言い放つことによって思考停止に陥るアレです。悲しいことに我々の業界でこの印籠が頻繁に使われちゃってないかなぁって思います。
いろんな現場が相互作用して成り立ってるって事を外から見てよく知ってるはずの我々がそれやっちゃってるんですね。それで軋轢が生まれたり壁が出来たりする。
『現場』 of 『現場』でそれやっちゃったらね。
あまりにもったいないので、そういうのはやめたらいいかな。

そんな愚痴は置いておいて、自分関わる現場は前向きに前進させたい。
今年は特にそんな気持ちで仕事に取り組んだつもりです。
勉強会などででもいい刺激をたくさん受けることが出来ました。現場の外での学びを現場に持ち込んだり。私に関わっていただいた皆さんに心より感謝申し上げます。
わりと勢いよくチャレンジしたように思います。うまくいったり苦労したりでした。幸いすばらしいメンバーの力でどうにかなってます。
いい歳して落ち着き無くて楽しかったな。わがままにつきあってくれたメンバーありがとう。
そしていつもの事ながら力不足を痛感したりしました。歩みの遅いおっさんはいつまでも学びがあって退屈しません。
私の現場を外から見てた人は、良いとこだけ持って行ってください。

なんか年末なのでこういう感じになっちゃいました。
来年はもうちょっといろいろうまくやれるかな。

バトン

明日は@shin_semiyaさんです。ガンギマリだそうです。
きっとアッパー系でしょう。


Saturday, May 25, 2013

Agile Japan 2013 サテライト<名古屋>

昨日Agile Japan 2013が開催されました。 
名古屋のサテライト会場は『モデリングxアジャイル』テーマで、名古屋アジャイル勉強会が主催で開催。
午後のワークショップは私が担当しました。
YOU&Iさんをはじめとする名古屋アジャイル勉強会のスタッフのみなさん、ドメイン駆動設計読書会@名古屋DDDNagoya) 主催のRKTMさんと参加者のみなさんのサポートによりなんとかできました。
心より感謝申し上げます。


今回は「アジャイルにモデリング」ということで、モデルの書き方ではなく、どういう『姿勢』でモデリングするかという事が主題。
特に、

  • モデルを使ってコミュニケーション
  • インクリメンタルにモデリングする

という2点を意識した内容でいきました。

今回のワークショップの準備で、スコット・W・アンブラーの『アジャイルモデリング』をそれなりにちゃんと読んでたりして、モデリングという行為について良く考えるいい機会になったと思う。
普段の仕事でも、もう少し無駄を省けるかなという気がする。

”モデリング”と言うと、表記法などモデルそのもの書き方が話題の中心となることが多い。
まあそれはとても普通の事なんだけど。
『アジャイルモデリング』は、アジャイルにモデリングに取り組む『姿勢』が語られている本。タイトルに「モデリング」という言葉がはいっていて、これだけ記法などが書かれていない本は他にないんじゃないかな。
今回のワークショップで、参加者の皆さんにその”姿勢”が伝わっていたらとても嬉しいです。


  • 複数人でモデリングするという事
  • やりすぎてわけわかんなくなる前に実装してみるという事

が、結構イイ感じである事は皆さん感じていただけたのかなと思う。

普段の仕事でも、ホワイトボードに簡単にモデルを書いて「こうじゃね?」という感じでディスカッションする事は時折あって、生産性の高いコミュニケーションになっていると思う。
ドメイン駆動設計読書会@名古屋(DDDNagoya) でも、参加者みんなでわいわいと意見を出し合いながらモデリングしたりして、これがまた楽しかったり(私はなかなか参加できていないが…)。
また、Qcon Tokyo 2013でも、原田騎郎さんの『DDD を Scrum で廻す。あるいは Scrum を DDD で廻す。』というセッションがあって、その中で複数人でホワイトボードでやるのが良いと言われていた。
そうする事によって、メンバーのモデリングスキルも上がってゆく。
もっと積極的にこのやり方を使っていきたいと思う。