jjug ナイト・セミナー くわっちょ 20140822

Post on 24-May-2015

2.425 Views

Category:

Engineering

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

20140822 JJUGナイト・セミナー資料

TRANSCRIPT

Copyright (C) 2014 くわっちょ All Rights Reserved.

レガシー脳な Java システム担当者が改めて Stream API に挑戦してみた。

くわっちょ @ 社畜犬 (@kuwaccho0711)

2014.8.22 JJUG ナイトセミナー

Copyright (C) 2014 くわっちょ All Rights Reserved.

くわっちょ

青森出身の犬。新卒で SI の世界に入って現在 SE7 年目。 Java 歴は通算 4 年くらい。

渋谷の某グループにある SIer で Web システム開発や運用保守やってます。

と書けば聞こえはいいけど最近はレガシーコード ( 後述 ) 相手が多い気がする

Twitter : @kuwaccho0711

アイコンは右下の犬。 Twiiter 上でほねっこあげると喜びます。わん。

社畜ネタ多いけど実際はそんなに激務じゃないし真面目でもない。

  

あんた誰?

Copyright (C) 2014 くわっちょ All Rights Reserved.

7( もともとは 1.5)66( マイナーバージョン違い )1. 4 <= New !!

仕事で使っている JAVA は?

Copyright (C) 2014 くわっちょ All Rights Reserved.

8の案件は?

仕事で使っている JAVA は?

Copyright (C) 2014 くわっちょ All Rights Reserved.

仕事で使っている JAVA は?

Copyright (C) 2014 くわっちょ All Rights Reserved.

そんな中こんなニュースが

とびこんできたニュース

Copyright (C) 2014 くわっちょ All Rights Reserved.

Java 9 が 1.5 以前のソースコードのコンパイルを非サポートに

(http://www.infoq.com/jp/news/2013/07/java-jep182)

とびこんできたニュース

Copyright (C) 2014 くわっちょ All Rights Reserved.

( 抜粋 )> 変化はすでに始まっている。> Java 8 では、 jsr14 と 1.4 のターゲットはもはやで受け入れられていない。> 1.5 を使用すると警告を出す。> Java 9 がリリースされるときに、 1.5 のサポートは削除され、 1.6 に対しては警告を上げる。

とびこんできたニュース

Copyright (C) 2014 くわっちょ All Rights Reserved.

これはいけない。

とびこんできたニュース

Copyright (C) 2014 くわっちょ All Rights Reserved.

レガシーシステムのリプレイスの嵐が待っている

とびこんできたニュース

Copyright (C) 2014 くわっちょ All Rights Reserved.

とびこんできたニュース

Copyright (C) 2014 くわっちょ All Rights Reserved.

しかし

しかし…

Copyright (C) 2014 くわっちょ All Rights Reserved.

・ switch で文字列・安全な再スロー・二進リテラル( 0b ) ・数値リテラルに「 _ 」 ・ダイアモンド演算子( <> )・リソース付き try 文・例外のマルチキャッチ( 参照: http://www.ne.jp/asahi/hishidama/home/tech/java/uptodate.html#JDK1.7)

JAVA7 での新機能

Copyright (C) 2014 くわっちょ All Rights Reserved.

これらすらまだ使いこなせてないよ!( try-with-resources 文見たことすらない

よ!)

しかし…

Copyright (C) 2014 くわっちょ All Rights Reserved.

そんな状態で既存ソースを Java8や 9 に移行しようとする。

しかし…

Copyright (C) 2014 くわっちょ All Rights Reserved.

ドはまり確定です。

しかし…

Copyright (C) 2014 くわっちょ All Rights Reserved.

「 for 文禁止を禁止します」がコーディングルールにしないためにも。

レガシー脳の改革が必要だ。

しかし…

Copyright (C) 2014 くわっちょ All Rights Reserved.

「とりあえず」 for 文でまわせばいいんじゃね?

「とりあえず」 if 文書いとけばいいんじゃね?

拡張 for 文?何それ? Map ?何それ? ArrayList ?何それ? よくわかんないから「とりあえず」使わない。

配列の中身よくわかんないからエラーになったら「とりあえず」キャストしてる

「とりあえず」ステップ数稼ぐために冗長な書き方にしてる

「とりあえず」レベル低い人でもわかるように簡単な書き方にしろと言われたからしてる

「とりあえず」コンパイルエラーになるからコンパイルのバージョン下げたよ ( !?)

とりあえずビール

レガシー脳の「とりあえず」という恐怖

Copyright (C) 2014 くわっちょ All Rights Reserved.

結果 (※ フィクションです )

Copyright (C) 2014 くわっちょ All Rights Reserved.

これはひどい。

(※ あくまでもフィクションです )

Copyright (C) 2014 くわっちょ All Rights Reserved.

StreamAPI 使うために「とりあえず」以下を意識しよう

「とりあえず」 for 文使うな

「とりあえず」 if 文追加すればいいはよくない。 If を少なくする設計に。

「とりあえず」リストとか適切に使うようにしよう

「とりあえず」キャストはバグだから型を意識して無駄なキャスは減らそう ( 当たり前だ! )

「とりあえず」ステップ数でお金は増えないからスッキリかっこよく書こう。

「とりあえず」レベルが低い人が見るかもしれないからこそスッキリした書き方にしよう。

「とりあえず」非推奨な書き方はしない。非推奨になったライブラリは置き換えだ!!

とりあえずハイボール

とりあえずが大好きなレガシー脳の「とりあえず」革命

Copyright (C) 2014 くわっちょ All Rights Reserved.

置き換えた結果 (※ フィクションです )

Copyright (C) 2014 くわっちょ All Rights Reserved.

もうちょい置き換えた結果 (※ フィクションです )

Copyright (C) 2014 くわっちょ All Rights Reserved.

少しはスッキリ。

(※正直微妙だけど )

Copyright (C) 2014 くわっちょ All Rights Reserved.

if 文多いつくりはどうにかできないの?

そもそも論だけど

Copyright (C) 2014 くわっちょ All Rights Reserved.

駄犬には無理です。( 設計思想そのものを見直しましょう )

そもそも論だけど

Copyright (C) 2014 くわっちょ All Rights Reserved.

for 文の中で if を使わないようにする方がスッキリする でないと例示したような微妙なコードができあがる とりあえずリストをとってきて加工するのではなく、リストを取る段階でどのように後処理で使うか意識が必要

だらだらとした for 文を書く必要がなくなったのでストレスは減る

if で処理分けたいときは関数でできるものとできないものを意識しないといけない

if 文多いレガジーなコードを全部置き換えられるか正直微妙 この辺りは正直怖い人たちの意見も伺いたいところ

レガシー脳が使ってみて思った事

Copyright (C) 2014 くわっちょ All Rights Reserved.

昔の Java で書かれたシステムを今のモダンな Java関連で動かすには

レガシー脳の改造だけでなく具体的な移行策も必要

今後に向けて

Copyright (C) 2014 くわっちょ All Rights Reserved.

なので古いコードを具体的にどうすればモダンな Java環境で動かせるかを検証していく

※誰得ですか?俺得です。※渋谷 Java でやれればいーな

今後に向けて

Copyright (C) 2014 くわっちょ All Rights Reserved.

そもそも Java8 で 1 から開発しなおせばいいんじゃないの?

今後に向けて

Copyright (C) 2014 くわっちょ All Rights Reserved.

1 から作る費用や時間は?

Copyright (C) 2014 くわっちょ All Rights Reserved.

ご清聴、ありがとうございました

top related