$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JJGU CCC 2019 Springまとめ~Java歴1年なりの意見を添えて~
Search
chan_kaku
June 07, 2019
Programming
1
2.4k
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
700
Vueのライフサイクルを完全に理解
takumiz19
0
2k
Vueでネイティブアプリを作り倒す
takumiz19
1
1.7k
Other Decks in Programming
See All in Programming
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7k
sbt 2
xuwei_k
0
260
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
210
関数実行の裏側では何が起きているのか?
minop1205
1
680
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
1k
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
5
2k
愛される翻訳の秘訣
kishikawakatsumi
1
310
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
JETLS.jl ─ A New Language Server for Julia
abap34
1
330
AIコーディングエージェント(Gemini)
kondai24
0
200
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
790
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Done Done
chrislema
186
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
A designer walks into a library…
pauljervisheath
210
24k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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