Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

3,404 views

Published on

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

Published in: Engineering
  • Login to see the comments

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

  1. 1. レガシー脳なJavaシステム担当者が 改めてStream APIに挑戦してみた。 Copyright (C) 2014 くわっちょAll Rights Reserved. 2014.8.22 JJUG ナイトセミナー くわっちょ@社畜犬(@kuwaccho0711)
  2. 2. あんた誰?  くわっちょ  青森出身の犬。新卒でSIの世界に入って現在SE7年目。Java歴は通算4年くらい。  渋谷の某グループにあるSIerでWebシステム開発や運用保守やってます。  と書けば聞こえはいいけど最近はレガシーコード(後述)相手が多い気がする  Twitter :@kuwaccho0711  アイコンは右下の犬。Twiiter上でほねっこあげると喜びます。わん。  社畜ネタ多いけど実際はそんなに激務じゃないし真面目でもない。 Copyright (C) 2014 くわっちょAll Rights Reserved.
  3. 3. 仕事で使っているJAVAは? 7(もともとは1.5) 6 6(マイナーバージョン違い) 1.4 <= New!! Copyright (C) 2014 くわっちょAll Rights Reserved.
  4. 4. 仕事で使っているJAVAは? Copyright (C) 2014 くわっちょAll Rights Reserved. 8の案件は?
  5. 5. 仕事で使っているJAVAは? Copyright (C) 2014 くわっちょAll Rights Reserved.
  6. 6. とびこんできたニュース そんな中こんなニュースが Copyright (C) 2014 くわっちょAll Rights Reserved.
  7. 7. とびこんできたニュース Java 9が1.5以前のソースコードのコンパイルを非サポートに (http://www.infoq.com/jp/news/2013/07/java-jep182) Copyright (C) 2014 くわっちょAll Rights Reserved.
  8. 8. とびこんできたニュース (抜粋) > 変化はすでに始まっている。 > Java 8では、jsr14 と1.4のターゲットはもはやで受け入れられ ていない。 > 1.5を使用すると警告を出す。 > Java 9がリリースされるときに、1.5のサポートは削除され、1.6に 対しては警告を上げる。 Copyright (C) 2014 くわっちょAll Rights Reserved.
  9. 9. Copyright (C) 2014 くわっちょAll Rights Reserved. これはいけない。 とびこんできたニュース
  10. 10. レガシーシステムのリプレイスの嵐が Copyright (C) 2014 くわっちょAll Rights Reserved. 待っている とびこんできたニュース
  11. 11. とびこんできたニュース Copyright (C) 2014 くわっちょAll Rights Reserved.
  12. 12. Copyright (C) 2014 くわっちょAll Rights Reserved. しかし しかし…
  13. 13. JAVA7での新機能 ・switchで文字列 ・安全な再スロー ・二進リテラル(0b) ・数値リテラルに「_」 ・ダイアモンド演算子(<>) ・リソース付きtry文 ・例外のマルチキャッチ (参照: http://www.ne.jp/asahi/hishidama/home/tech/java/u ptodate.html#JDK1.7) Copyright (C) 2014 くわっちょAll Rights Reserved.
  14. 14. これらすらまだ使いこなせてないよ! (try-with-resources 文見たことすらない Copyright (C) 2014 くわっちょAll Rights Reserved. よ!) しかし…
  15. 15. しかし… そんな状態で既存ソースをJava8や9 に移行しようとする。 Copyright (C) 2014 くわっちょAll Rights Reserved.
  16. 16. ドはまり確定です。 しかし… Copyright (C) 2014 くわっちょAll Rights Reserved.
  17. 17. 「for文禁止を禁止します」 しかし… がコーディングルールにしないためにも。 レガシー脳の改革が必要だ。 Copyright (C) 2014 くわっちょAll Rights Reserved.
  18. 18. レガシー脳の「とりあえず」という恐怖  「とりあえず」for文でまわせばいいんじゃね?  「とりあえず」if文書いとけばいいんじゃね?  拡張for文?何それ? Map?何それ? ArrayList?何それ? よくわかんないから「とりあえず」使わない。  配列の中身よくわかんないからエラーになったら「とりあえず」キャストしてる  「とりあえず」ステップ数稼ぐために冗長な書き方にしてる  「とりあえず」レベル低い人でもわかるように簡単な書き方にしろと言われたからしてる  「とりあえず」コンパイルエラーになるからコンパイルのバージョン下げたよ(!?)  とりあえずビール Copyright (C) 2014 くわっちょAll Rights Reserved.
  19. 19. 結果(※フィクションです) Copyright (C) 2014 くわっちょAll Rights Reserved.
  20. 20. (※あくまでもフィクションです) Copyright (C) 2014 くわっちょAll Rights Reserved. これはひどい。
  21. 21. とりあえずが大好きなレガシー脳の「とりあえず」革命  StreamAPI使うために「とりあえず」以下を意識しよう 「とりあえず」for文使うな 「とりあえず」if文追加すればいいはよくない。Ifを少なくする設計に。 「とりあえず」リストとか適切に使うようにしよう 「とりあえず」キャストはバグだから型を意識して無駄なキャスは減らそう(当たり前だ!) 「とりあえず」ステップ数でお金は増えないからスッキリかっこよく書こう。 「とりあえず」レベルが低い人が見るかもしれないからこそスッキリした書き方にしよう。 「とりあえず」非推奨な書き方はしない。非推奨になったライブラリは置き換えだ!! とりあえずハイボール Copyright (C) 2014 くわっちょAll Rights Reserved.
  22. 22. 置き換えた結果(※フィクションです) Copyright (C) 2014 くわっちょAll Rights Reserved.
  23. 23. もうちょい置き換えた結果(※フィクションです) Copyright (C) 2014 くわっちょAll Rights Reserved.
  24. 24. Copyright (C) 2014 くわっちょAll Rights Reserved. 少しはスッキリ。 (※正直微妙だけど)
  25. 25. そもそも論だけど if文多いつくりはどうにかできないの? Copyright (C) 2014 くわっちょAll Rights Reserved.
  26. 26. 駄犬には無理です。 そもそも論だけど (設計思想そのものを見直しましょう) Copyright (C) 2014 くわっちょAll Rights Reserved.
  27. 27. レガシー脳が使ってみて思った事  for文の中でifを使わないようにする方がスッキリする でないと例示したような微妙なコードができあがる とりあえずリストをとってきて加工するのではなく、リストを取る段階でどのように 後処理で使うか意識が必要  だらだらとしたfor文を書く必要がなくなったのでストレスは減る  ifで処理分けたいときは関数でできるものとできないものを意識しないといけない  if文多いレガジーなコードを全部置き換えられるか正直微妙 この辺りは正直怖い人たちの意見も伺いたいところ Copyright (C) 2014 くわっちょAll Rights Reserved.
  28. 28. 昔のJavaで書かれたシステムを 今のモダンなJava関連で動かすには 今後に向けて レガシー脳の改造だけでなく具体的な移行策も必要 Copyright (C) 2014 くわっちょAll Rights Reserved.
  29. 29. 今後に向けて なので古いコードを具体的にどうすればモダ ンなJava環境で動かせるかを検証していく ※誰得ですか?俺得です。 ※渋谷Javaでやれればいーな Copyright (C) 2014 くわっちょAll Rights Reserved.
  30. 30. 今後に向けて そもそもJava8で1から開発しなおせば いいんじゃないの? Copyright (C) 2014 くわっちょAll Rights Reserved.
  31. 31. 1から作る費用や時間は? Copyright (C) 2014 くわっちょAll Rights Reserved.
  32. 32. ご清聴、ありがとうございました Copyright (C) 2014 くわっちょAll Rights Reserved.

×