LoginSignup
3
0

More than 5 years have passed since last update.

Java女子部に行ってきた#1

Last updated at Posted at 2017-06-11

2017年6月11日 Java女子部

【東京】【女性/女性同伴男性限定】Java本格入門!!!著者をお招きしちゃうよ(´∀`) #javajo

1. 13:30~13:45 会場説明 & Java女子部について

2. 13:45~14:40 自己紹介

  • Java女子部って何? くわしくはこちら
  • 次回は7/9 ★Java女子部から世界へ★(JCP事務局から話が聞けるらしい)
  • Java本格入門の著者から面白い話が聞ける! この本

  • 参加者はまちまち

    • Java7くらいまでは、という人が多いのかな?
    • フロントエンドエンジニアもいる
    • 男性が2名。(意外と来るもんだな。)

3.[番外編]ログと例外(Java本格入門)

  • AcroquestTechnorogy 村田さん

    • Javaは知っていても、開発現場に来ると以外とできない・・・ことから本を執筆したとのこと。
  • ログに出力すべきものは?

    • さまざまな関係者がいると,人にとっては分かりにくいこともある
  • ログ出力において決めるべきことは?

    • ログレベルの定義
    • ログの運用レベル
    • ログフォーマット
    • ログ出力形式(ローテーション)
  • ログ実装

    • isDebugEnabled警察(笑)
    • 今はわざわざ文字列連結しなくとも、プレースホルダで置換してくれるらしい。
  • ログの運用

    • パッケージごとにログレベルが設定できる
    • 動的な設定が可能(一時的に変えることができるとのこと)
  • 例外の種類

    • Exception
    • RuntimeException
    • Error
  • 例外処理の基本

    • try ~ catch ~ finally
    • try ~ with ~ resources(便利だよね)
    • multi catch
    • 例外をもみ消さない(ログに例外を含めるようにしましょう)
  • アプリケーション方式設計と例外処理

    • アプリケーション方式設計で例外処理方式を決定する。
      • どんな例外を
      • どこでどう処理するのか
      • 例外を共通的に処理する仕組みを検討する

4. 14:00~15:30 Java本格入門 -from old Java to modern Java

  • AcroquestTechnorogy 谷本さん
    • ハンズオン形式で古いバージョンで書かれたものを新しいものに書き換える
      • for-each/列挙
      • 文字列連結
      • LocalDate

5. 15:40~16:25 StreamAPI入門 いまさら聞けないStreamのキホン

  • なぜ使うのか?

    • 今後、物事の考え方で使うことになるから?
  • Stream

    • 簡潔に記載できる
    • コレクションの集計等ができる
    • 必ずしも使わないといけないというものではない(無理して複雑なものを書いても意味ない/新しいものが常に偉いというわけではない!)
  • Lambda式

    • 実装すべきメソッドが1つしかないインターフェースを簡潔に表すためのもの。
      • 無名クラスの中身を置き換える
    • 関数型フェース
    • 実装すべきメソッドが1つしかないインターフェース(Runnnableとか)
    • lambdaのキホン文法
      java (引数) -> {処理}
      • 引数の型は省略できる
      • 処理が1行ならreturn と {} は省略できる
      • メソッド参照(引数が1つで明確であれば、省略できる) System::out::println
    • Stream API
      • 作る、操作する、まとめる
        • 作る(Collection#stream / Arrays#stream / entrySet#stream/ Files#lines / BufferedReader#lines)
        • 操作する(中間操作:変換や絞り込み) map / filter
          • limit/distinct/sortedなんかもある。
          • 要素をいくつかまとめて処理するみたいなことは難しい(複数行のログファイル処理等)
          • filterで分岐することはできない(あくまえでもStreamは1本) flatMapを使えばできる?
        • まとめる(終端操作:LstにしたりMapにしたり集約する。結果として取り出すための操作) (collect / Collectors)
          • forEach /max. min / findFirst 等もある
          • もちろん一回しかできません。
  • なぜStreamAPIを学ぶべきか

    • 学ぶのはめんどくさいとは思うが…(学ぶだけの価値を感じない…)
    • Streamを扱うことが重要。(ゆく河のながれは…)
    • Webのリクエストやキューイング処理等の上限が分からないもの(HotStream)を扱う
    • Java8のStream APIはColdStreamを扱うもの。(上限が見えているもの)
  • ノンブロッキングな非同期API(RxJava/Reactor)

    • こういうものはすべてStreamAPIのような形で記載されるようになる。
  • これからの時代は大量データ・リクエストをさばくような時代になるから、そのために準備をしておいたほうがよいとのこと。

6. 16:35~17:05 執筆秘話 - Java本書く入門

  • もともとは
    • 日経ソフトウェアで連載していた(Javaのイケてるコード、イケてないコード)
    • 執筆にあたって、Javaのすごい人にRVしてもらったものの、ボコボコにされた…
    • 夜、ファミレスに行って書いていた(valueSetの下りはマックで書いていたときのこと。)
    • GitHubにサポートサイトがある(正誤表はここにある)

7. 17:05~17:20 AMA

  • 特になし

8.所感

結構なBBAなので、行くのにも躊躇しましたが、楽しめました。
あと、上記に出てくる本も買いましたが、良書だと思います。

★こんな人に読んでほしい★
1. Javaの歴史が1.4, 5くらいで止まってるオジサン、オバサン(私はここに分類される)
2. 基本的なAPIの使い方は分かるけど、そこから一歩踏み出したいビギナーさん

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0