Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JJGU CCC 2019 Springまとめ~Java歴1年なりの意見を添えて~
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
chan_kaku
June 07, 2019
Programming
1
2.5k
JJGU CCC 2019 Springまとめ~Java歴1年なりの意見を添えて~
This slide is summary of JJUG CCC 2019 Spring .
chan_kaku
June 07, 2019
Tweet
Share
More Decks by chan_kaku
See All by chan_kaku
ionic/vueもβ版になったのでちゃんと触ってみた
takumiz19
0
710
Vueのライフサイクルを完全に理解
takumiz19
0
2.1k
Vueでネイティブアプリを作り倒す
takumiz19
1
1.7k
Other Decks in Programming
See All in Programming
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
560
Ruby and LLM Ecosystem 2nd
koic
1
540
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
420
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
370
How to stabilize UI tests using XCTest
akkeylab
0
110
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
380
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
1.2k
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.2k
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1k
Featured
See All Featured
Believing is Seeing
oripsolob
1
79
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Site-Speed That Sticks
csswizardry
13
1.1k
Chasing Engaging Ingredients in Design
codingconduct
0
140
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
230
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
ラッコキーワード サービス紹介資料
rakko
1
2.6M
Practical Orchestrator
shlominoach
191
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
New Earth Scene 8
popppiees
1
1.7k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
160
Transcript
JJUG CCC 2019 Springのまとめ ~Java歴1年なりの意見を添えて~ 京都Devかふぇ#6 〜JJUG CCC 2019 Spring
参加報告会(非公式)〜 フリュー株式会社 角田 拓己 a.k.a. chan_kaku
Who Twitter @chan_kakuz フリュー株式会社 サーバサイドエンジニア 時々フロント 普段はJava,Kotlin,Vueとか 好き chan_kaku
今回の京都Devかふぇ のテーマは
None
None
1人くらい振り返りやら ないと、、、
今回話す内容 • 今回のCCCで話されていた内容の振り返り • Java歴1年のペーペーエンジニアが感じたこと
Valhalla, update and future(David Buck)
Valhalla, update and future • Project Valhallaについての紹介 • 今後どうしていくか
The Goals of this Project is to provide a venue
to explore and incubate advanced Java VM and Language feature candidates such as: • Value Types • Generic Specialization • VarHandles • Nestmates About Project Valhalla https://wiki.openjdk.java.net/display/valhalla/Main
Value Types オブジェクト プリミティブ String Integer float int
Value Types オブジェクト プリミティブ String Integer float int Value Types
Value Types 個人的に面白そうなところ • ジェネリクスの型への型パラメータについて
Nestmates Nastedとは Class A Class B
Nestmates class A { class B{} }
Nestmates コンパイルすると、、、 A.class A$B.classと言う2つのクラスファイルにコンパイルされる
Nestmates A.class A$B.class JVMの解釈
Nestmates public class Outer { private int i = 0;
public class Inner { public int i() { return i; } } }
Nestmates クラスファイル(Outer.class)のバイトコードをみてみる(Java Version <= 10)
Nestmates 誰や???
Nestmates access$000()の正体 インナークラスがクラスがprivateへのアクセスはコンパイラによって Outerクラスのパッケージprivateなアクセッサメソッド access$000()に変換される jasmとか使えばどこからでもprivateにアクセスでき てしまう
Nestmates Java Version >= 11
Nestmates Java 11以降ではaccess$000()を外部から呼べなくなった(多分)
感じたこと NestMatesについてはJava11らへんで調べていた Javaの実装がどうなっているかはあまり気にしたことがなかったが、ちょっと興味が出て きた
テストエンジニアが教える JUnitを書き始める前に考えるべきテスト (風間 裕也)
内容 • テストの目的 • テストファーストで行うことの良さ • 何をテストすれば良いのか
テストの目的 • 欠陥の検出 • 対象ソフトウェアの品質が十分であることの確認 • 意思決定のための情報の提示 • 欠陥の作り込みの防止 テストの7原則的にはテストは「欠陥があること」しか示せ
ない
テストの目的 • 欠陥の検出 • 対象ソフトウェアの品質が十分であることの確認 • 意思決定のための情報の提示 • 欠陥の作り込みの防止 テストの7原則的にはテストは「欠陥があること」しか示せ
ない 実装前に行うことも!
何をテストすべきか? 例題 http://www.slideshare.net/takashiyamasaki378/ss-55384920
何をテストすべきか? パスワードは4文字以上12文字以下の 英数字のみを許容する パスワードを3分以内に4回以上間違って入力すると アカウントを5分間 ロックする 文字列長 文字種 期間管理 回数管理 誤入力
誤入力 ロック保持期間 状態遷移 許容しないとどうなる? (ボタン制御orエラー画面) 5回目の入力はどうなる?
何をテストすべきか? 実はこの例では何もプログラムを書いていない - 実装前にテストをすることができる! - 実装前のレビューで指摘できれば、Fコストも大幅に削減することができる!
どうやってテストケースを作るのか? 何個の選択肢をテストするのか?
答え1 プルダウンの一番上と下をテストする - 最後の項目まで動くかどうかチェックする - 特に1番最後は大事! - 配列の最後の選択を i[46]ではなくi[47]にしていたり、、、
答え2 都、道、府、県の4パターン 選択したら以下の図のように出力されるような場合
テストケースを作るときに大事なこと なぜそのテストをするのか理由を考える - この理由がそのままテストの名前にすることができる
テストケースはいくつ? テストケースは時間さえあれば無限に作れる テスト設計技法 - 同値分割法 - 境界分析 - などなど、、、
境界値分析 4 12 有効 無効 無効 パスワードは4文字以上12文字以下 3 13 テスト原則:欠陥の偏在
感じたこと CCCでワークをしたのは初めてだったので、結構楽しかった 人によってどれくらいテストした方が良いのかと言う幅が違くて、結構難しいと思っていた ので、観点がわかったのはよかった テストのモチベーションが上がった
CCCの全体の感想
今回のCCCの感想 前回までは、KotlinやScalaなどJava以外の話が多かったイメージ 今回はJavaの話が多く、特に設計の話が多く、個人的には最近設計にはまっているの で、とても有意義であった だんだんと英語のセッションも増えてきている印象 英語頑張る
fin
参考 • https://www.slideshare.net/DavidBuck7/valhalla-update-jjug-ccc-spring-2019 • https://speakerdeck.com/nihonbuson/jjug-ccc-2019-spring