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
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
620
Vueのライフサイクルを完全に理解
takumiz19
0
1.9k
Vueでネイティブアプリを作り倒す
takumiz19
1
1.6k
Other Decks in Programming
See All in Programming
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
9
3.4k
Rails アプリ地図考 Flush Cut
makicamel
1
110
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
360
SpringBoot3.4の構造化ログ #kanjava
irof
2
980
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
11
1.9k
動作確認やテストで漏れがちな観点3選
starfish719
6
1k
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
720
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
870
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
380
Spring gRPC について / About Spring gRPC
mackey0225
0
220
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
250
Featured
See All Featured
A better future with KSS
kneath
238
17k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Docker and Python
trallard
44
3.3k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Statistics for Hackers
jakevdp
797
220k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Designing for humans not robots
tammielis
250
25k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
How to Ace a Technical Interview
jacobian
276
23k
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