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
700
Vueのライフサイクルを完全に理解
takumiz19
0
2k
Vueでネイティブアプリを作り倒す
takumiz19
1
1.7k
Other Decks in Programming
See All in Programming
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
330
Graviton と Nitro と私
maroon1st
0
160
ThorVG Viewer In VS Code
nors
0
530
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
150
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
280
AIエージェントの設計で注意するべきポイント6選
har1101
6
2.9k
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
500
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
160
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
160
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
570
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
1
650
AtCoder Conference 2025
shindannin
0
890
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
48k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
54
48k
Building an army of robots
kneath
306
46k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
200
RailsConf 2023
tenderlove
30
1.3k
Docker and Python
trallard
47
3.7k
Statistics for Hackers
jakevdp
799
230k
The agentic SEO stack - context over prompts
schlessera
0
580
The Pragmatic Product Professional
lauravandoore
37
7.1k
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