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
660
Vueのライフサイクルを完全に理解
takumiz19
0
2k
Vueでネイティブアプリを作り倒す
takumiz19
1
1.6k
Other Decks in Programming
See All in Programming
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4k
AIともっと楽するE2Eテスト
myohei
6
2.6k
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
87
29k
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
170
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
rkaga
12
4.5k
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1k
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
効率的な開発手段として VRTを活用する
ishkawa
0
140
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
170
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
1
10k
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
900
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
820
Agile that works and the tools we love
rasmusluckow
329
21k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Fireside Chat
paigeccino
37
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
A Modern Web Designer's Workflow
chriscoyier
695
190k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
We Have a Design System, Now What?
morganepeng
53
7.7k
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