最近のこと(仕事、読書、勉強会)

■仕事のこと
最近は5人前後のマネージメントしながら、核となる機能は自分で開発もするという、少しハードな生活でした。
詳しくは書きにくいですが、非同期でメッセージングしたり、処理をマルチスレッドにしたりも意識する機能でしたが、既存のシステムの拡張なのでその辺りの折り合いをつけるのに苦労しました。
あまりオブジェクト指向ではないデータモデルなので、苦労します。
(継承がなくて属性はカラムで全部持ってたりとか…)

■最近読んだ本
アジャイルソフトウェア開発の奥義、リーダブルコード、Java逆引きレシピ。
UMLモデリングの本質を、現在通勤の友にしてます。
オライリーのプログラミングScalaに挫折。
オブジェクト指向入門 第2版 原則・コンセプトも定期的に格闘してますが、遅々として進んでないですね

■行ったカンファレンス
JJUG CCC 2014 Spring
Java Day Tokyoと4月末のObject Designのやつは、仕事と折り合いつかず行けませんでした。
JJUGの感想書かなきゃ。

3/21 JJUGイベント 「祝☆Java 8 Launch」に行ってきました

3/18(日本では3/19でしたが)にとうとうリリースされたJava8。

自分は残念ながらJava5コンパイルしないといけないプロダクトに5年も関わってるのですが、Javaの進化を体感したくて参加してきました。

http://www.java-users.jp/?p=917

 

    • Java SE 8 正式リリース(寺田佳夫さん)

 

素晴らしいスライドで、全体像がわかりやすくてありがたいです。

Java8の言語的な機能面だけでなく、プラットフォームとしてのJavaの進化についても触れられていたのが印象的でした。

どうしてもパフォーマンス向上は気になる面ですので。

公式ドキュメント、すぐ心が折れてしまうのですが、ちゃんと読もうと思いましたw

唯一難点を上げるとすれば、Java5使ってるとこで手を挙げて辱めを受けたのが心の傷です。

 

    • 徹底解説!Project Lambdaのすべて リターンズ(吉田真也さん)

 

吉田さんのラムダについてのセッション。

この資料もとてもわかりやすくて、職場では開きっぱなしにして何度も見返してます。

 

匿名クラスのシンタックスシュガーではないという部分が勘違いしていた部分でした。

Parallel時の終端操作は、各スレッドで終端操作したものを集めるので、スレッドセーフではない操作をcollectでやってもいいというとこも、気になってた部分なので聞けてよかったです。

関西弁とか◯回生って言い方も懐かしくて良かったですw

 

  • Brand new Date and Time API(蓮沼賢志さん)

 

実はDate/Calendarの評判が悪いのは知ってても、たまにしか使わないしまぁ関係ないかなくらいに考えてましたが、時間の定義についての話がとっても面白いセッションでした。

手元のメモが1番多いのも蓮沼さんのセッションでした。

新書になったら買いますw

あと、試しにJapaneseChronology使ってみたら、ホントにH26-03-21と表示されて驚きました。

 

 

  • null書いたら負け!Java8コーディング作法(きしだなおきさん)

きしだのはてなでお馴染みのきしださん。

Optionalの話と、Java8を開発の中でのTipsを教えてもらえました。

 

Optionalは実はセッション中はぴんと来なかったのですが、実際にOptionalを返して、ifPresent使ったソース書いてみると処理のしやすさを感じました。

(Optionalのmapやらflatmapやらがまだ理解できてないので、そこは勉強しないと)

 

あと、Map#computeIfAbscentはすっごい便利です!

まぁGuava使えよって言われる話かもしれませんが、

List<V> valueList = map.get(key);

if (valueList == null) {

    valueList = new ArrayList<>();

    map.put(key, valueList);

}

valueList.add(value);

みたいなコードは死ぬほど書いてきました。

これが

map.computeIfAbscent(key, k -> new ArrayList<>()).add(value);

で済むってこと!

何回MapにputしないでListにaddして、テスト書いて死にたくなったか・・・。

 

  • JavaFXGUI by Illusion(櫻庭祐一さん)

 

私は仕事で関わっているアプリはSwingアプリなので、JavaFXは気になっているトピックでした。

ITProでものすごく詳細な記事を書いてくれる櫻庭さんのセッションでしたが、JavaGUIアプリとは思えない(!)機能の数々がデモされて、 唖然としそうなくらいでした。

これがJavaなのか・・・。

 

Swingからの移行の部分では、FXMLはJFormDesigner使ってるならあんま違和感ないかなーって思うんで、TableModelとTableColumnの考え方の違いが1番影響大きそうです。

SceneBuilderは1年半くらい前にちょろっとだけ触っただけなので、これを期にITProの記事を見ながらチャレンジしてみようと思います。

 

  • from old Java to modern Java – reloaded (谷本心さん)

老害にならないためのJava8書き方講座。

とにかくfor/whileループを見たらラムダにできる、と。

書き換え前後が提示されて分かりやすい資料だったので、アップ待ち望んでます。

 

実際職場で今の仕事のソースコードをJava8環境で書き換えてみると、確かに面白いほどにループ処理がなくなりますね。

そうすると、Collectionの使用箇所もすごく減っていって面白いですね。

 

SQLひたすら書いているうちに、Groupingの仕方とかがわかってきたのと同じ要領って言葉がすごくしっくりきました。

実際書いてみると、SQLよりは文章的に書ける印象なので意外とラムダ受け入れられるんじゃないかなーってのが印象です。

(◯◯でフィルターして、XXした値をListにまとめるってイメージをそのまま書く感じになるので)

 

 

総括すると、お昼すぎなのに眠くなる瞬間が全くないくらい楽しかったですw

実は三十路になるまでこういった社外イベントに一切出てなかったのですが、今後はもっと外に出ていきたいと思いました。

5月のJava Day TokyoとJJUG CCC Springは行きたいなー。

 

ドメイン駆動設計勉強中

 

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

 

 一回読み終わった後では消化しきれなかった感じでしたが、その後もこの本に書いてあることが妙に頭に残りました。

で、最近2011年にDevLOVEというイベントでやっていた動画を見て、本に書いてあったことが腹落ちし始めてきましたね。

http://www.youtube.com/watch?v=FNEfk-dlIKU

http://www.youtube.com/watch?v=77BTZWq3GiQ 

 

このときの動画はまだまだあるので、見ながら本を再読して勉強中です。

 

実は本を読むまでは、ドメイン駆動設計って、オブジェクトに振る舞いをもたせた開発の話かなーくらいに考えてました。

ドメインって言葉がまずもって馴染みがないので。

なので、最初読んだときは、で?どうすればいいの??って感じで。

 

①一番大事な考え方は「ユビキタス言語」の部分

ドメインを業務と理解する

って感じ方をしてきたら、ばっと視界が広がりましたね。

もちろんまだまだ勉強中ですが

Bob DylanコンプリートボックスUSB版が素晴らしい

The Complete Album Collection Vol. One (USB)

The Complete Album Collection Vol. One (USB)

11月に発売されたBob Dylanの50年分のアルバムが詰まったボックスセット。
CDとUSBでの発売となったが、このUSB版が良い出来なのにもっと注目されるべき!


収録内容は42枚のオリジナルアルバムと公式ライブアルバムに加えて、アルバム未収録曲が2枚組分。
ハーモニカレプリカに入っていて、とてもコンパクト。
所有欲をくすぐられるオシャレなデザイン。

f:id:comradekino:20131112084243j:plain

f:id:comradekino:20131116092602j:plain

MacBookAirに差し込んでも邪魔にならない大きさだ。

音源としてmp3とflacが収録されていて、30GBのメモリの20G分を使ってる。
ということは、残り10GBはUSBメモリとして純粋に使えるということだ。笑


アプリケーションを起動してアルバムを選んで再生したりブックレットを読むこともできる。
f:id:comradekino:20131116092645j:plain
f:id:comradekino:20131116092733j:plain

個人的には持ってないアルバムは2枚、LPしか持ってなくてデータが欲しかったアルバムが1枚だったので、省スペースの意味で買ったのだけれど、思わぬ満足感。
確かに値段は高いけど、この商品は本当におすすめしたい。
何より素晴らしさには折り紙つきのボブ・ディランの音源なのだから。
こういう形式で発売されると、50年間どこを切り取っても違和感なく楽しめることがよくわかる。


現役ミュージシャンですから、このコンプリートボックスをアンコンプリートにする新作に期待してるけどね。

【読書】世界一わかりやすいプロジェクト・マネジメント

 

世界一わかりやすいプロジェクト・マネジメント【第3版】

世界一わかりやすいプロジェクト・マネジメント【第3版】

  • 作者: G.マイケルキャンベル,サニーベーカー,G.Michael Campbell,Sunny Baker,中嶋秀隆
  • 出版社/メーカー: 総合法令出版
  • 発売日: 2011/07/21
  • メディア: 単行本(ソフトカバー)
  • 購入: 10人 クリック: 65回
  • この商品を含むブログ (4件) を見る
 

 COMPLETE IDIOT'S GUIDEというなかなか挑戦的なタイトルの本。

文章はくだけていて読みやすいけど、書いてあることは真っ当という印象かな。

IPAのプロジェクトマネージャ試験の範囲も網羅されているので、これ読んでから問題集見るとすっと頭に入りますね。

※実はこの本読むのは2回目です。そして、4月のプロジェクトマネージャ試験は寝坊で受験できませんでした。

 

自分がマネージャ指向かというとそうでもないけれど、プロジェクトに入って仕事をする以上、マネージャ視点を知っておくと仕事はしやすくなりますね。

あとSIerだと避けては通れない障害報告書とか進捗報告とか、何かプロジェクトに問題があったときの解決策や再発防止策を文書化するときには、教科書的にはこうってのが頭に入っているとやりやすい。

自分はプログラマでありたいと思ってますが、ま、そういうのも仕事上避けられないんですよ・・・。

翔ぶが如く

翔ぶが如く〈1〉 (文春文庫)

翔ぶが如く〈1〉 (文春文庫)


忙しいはずの社会人なのに、よりのよって10冊もある長編に手を出してしまった…。
明治初期、征韓論から西南戦争にいたる時代を描いた小説。


西南戦争に突入する8巻くらいまでの長さや、各人物の感情移入のしづらさもあって、掴みどころのなさも感じるけれど、もちろん面白くないわけではない。
思えば、この掴みどころのなさって、学校で日本史学んだ時も明治に突入したところってそうだった。
尊皇攘夷を謳った革命が起こって、新しい時代に入って急激に欧化政策?
攘夷って??


そんな学校で感じたクエスチョンマークを、結局当時も感じてたのか、という印象。
その混乱の象徴として描かれる西郷隆盛という人物像は、とても魅力的でありとても愚かに見える。
司馬遼太郎の主張だと、この明治初頭の10年でその後の日本の形が出来上がっていたということだったけど、偶然なのか必然なのか・・・面白い。


印象的だったのが、出身による気質の違い。
当時の薩摩人、長州人、肥後人…といった括りで、こうも性格に大きな影響があるのかと。
子を持つ親としては、人格形成における教育/環境の力に少し恐ろしさまで感じました。

結局放置してた

久しぶりに開きました。

リハビリに軽めの本から。

タモリ論 (新潮新書)

タモリ論 (新潮新書)

生後11ヶ月の息子がビリビリに破いたりするためのおもちゃになりました。

有用!

 

中身もそんな程度です。