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
JJUG_CCC_2017_Spring2.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kengo TODA
May 23, 2017
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JJUG_CCC_2017_Spring2.pdf
test
Kengo TODA
May 23, 2017
More Decks by Kengo TODA
See All by Kengo TODA
生成AI 業務応用向けガイドライン 斜め読み / Overview of Generative AI Business Application Guidelines
eller86
0
190
KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotlin Devs
eller86
0
2k
JavaとGroovyで書かれたGradleプラグインをKotlinで書き直した話 / Converted a Gradle plugin from Groovy&Java to Kotlin
eller86
0
1.9k
ヒューマンスキル / The Humanskills
eller86
0
760
医療機関向けシステムの信頼性 / Reliability of systems for medical institutions
eller86
0
530
Server-side Kotlinを使うスタートアップでどんなDetektルールが育ったか / Detekt rules made in start-up working with Server-side Kotlin
eller86
0
1.6k
Java開発者向けのKotlin Gradleビルドスクリプト入門 / Gradle Build Script in Kotlin 101
eller86
1
2.2k
Goodbye JSR305, Hello JSpecify!
eller86
2
5.5k
Java8〜16におけるバイトコード生成の変化 / Changes of Bytecode Generation from Java 8 to 16
eller86
4
4.7k
Other Decks in Technology
See All in Technology
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
150
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
170
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
650
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
120
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
2
560
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
160
Claude Codeをどのように キャッチアップしているか
oikon48
12
7.6k
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
6.8k
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
570
200個のGitHubリポジトリを横断調査したかった
icck
0
120
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
950
RAG を使わないという選択肢
tatsutaka
1
220
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
Leo the Paperboy
mayatellez
7
1.8k
Why Our Code Smells
bkeepers
PRO
340
58k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Context Engineering - Making Every Token Count
addyosmani
9
960
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Are puppies a ranking factor?
jonoalderson
1
3.5k
How to Think Like a Performance Engineer
csswizardry
28
2.6k
How to Ace a Technical Interview
jacobian
281
24k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Transcript
© Works Applications Co.,Ltd. #ccc_f3 2017 May/20th, JJUG CCC 2017
Spring SpotBugs(FindBugs)ʹΑΔ େنERPͷίʔυ࣭վળ 1
© Works Applications Co.,Ltd. #ccc_f3 Agenda ‣ ࣗݾհ ‣ 20175݄ݱࡏͷJava੩తղੳπʔϧػೳɾಈൺֱ
‣ େنERPͷίʔυ๊࣭͕͑Δͱͦͷղܾ ‣ ։ൃ͍ͯ͠Δ৫ͱͦͷ ‣ ߦ͍ͬͯΔͱࠓޙͷల 2
© Works Applications Co.,Ltd. #ccc_f3 ͜ͷηογϣϯͰಘΒΕΔͷ ‣ େن։ൃʹͯӡ༻Մೳͳίʔυ࣭վળख๏ ‣ άϩʔόϧͰେنͳJava։ൃʹ͓͍ͯඞਢͱͳΔ
ʮίʔυ࣭ͷఈ্͛ʯͷ࣮ફతͳख๏ ‣ ࣾFWϥΠϒϥϦͷ͍ํΛΊΔख๏ͱͯ͠ ׆༻Ͱ͖Δ੩తղੳπʔϧϓϥάΠϯͷ։ൃख๏ 3
© Works Applications Co.,Ltd. #ccc_f3 ࣗݾհ ✤ https://github.com/ KengoTODA/ ✤
᷂ϫʔΫεΞϓϦέʔγϣϯζ ݚڀ։ൃΤϯδχΞ ✤ ߴߍੜͷͱ͖ʹήʔϜ࡞Γͨͯ͘ HSP2ʹखΛग़͠ɺϑϦʔιϑτ ΣΞ࡞Ոɺͦͯ͠R&Dʹ ✤ SpotBugsͷதͷਓ JVM Simulator Maven3 ebook 4
© Works Applications Co.,Ltd. #ccc_f3 1. 20175݄ݱࡏͷ Java੩తղੳπʔϧػೳɾಈൺֱ 5
© Works Applications Co.,Ltd. #ccc_f3 ੩తղੳπʔϧͷྑ͍ͱ͜Ζ ✤ ͍खʹܦݧਂ͍͕ࣝͳͯ͘ɺ ✤ ϨϏϡʔલσϓϩΠલͳͲૣ͍ஈ֊Ͱɺ
✤ ΛൃݟͰ͖Δ 6
© Works Applications Co.,Ltd. #ccc_f3 ൺֱରJava੩తղੳπʔϧ ‣ Checkstyle ‣ PMD
‣ FindBugs / SpotBugs ‣ Checker Framework ‣ Google error-prone 7
© Works Applications Co.,Ltd. #ccc_f3 Checkstyle ‣ ιʔείʔυղੳͳͷͰίϯύΠϧͳ͠Ͱ࣮ߦͰ͖Δ ‣ ଟ࠼ͳIDEɾϏϧυπʔϧʹରԠ
‣ ίʔσΟϯάنͷ֬ೝ͕ओత ‣ ϓϥάΠϯ࣮ʹඞཁͳ͕ࣝগͳ͍ ‣ http://checkstyle.sourceforge.net/ 8
© Works Applications Co.,Ltd. #ccc_f3 PMD ‣ ιʔείʔυղੳͳͷͰίϯύΠϧͳ͠Ͱ࣮ߦͰ͖Δ ‣ ଟ࠼ͳIDEɾϏϧυπʔϧͦͯ͠ݴޠʹରԠ
‣ CPDʢίϐϖݕग़ʣػೳࡌ ‣ ϓϥάΠϯ࣮ΘΓͱෳࡶ ‣ https://pmd.github.io/ 9
© Works Applications Co.,Ltd. #ccc_f3 FindBugs / SpotBugs ‣ όΠτίʔυղੳͳͷͰίʔυʹͳ͍ใʢΫϥεɺ
ґଘઌɺΞϊςʔγϣϯʣCLASSPATH͔ΒิͰ͖Δ ‣ ଟ࠼ͳIDEɾϏϧυπʔϧʹରԠ ‣ ͠Β͘։ൃ͕ࢭ·͍ͬͯͨʢ3.0.12ऑલͷϦϦʔεʣ ‣ ϓϥάΠϯ࣮ʹJVMόΠτίʔυͷ͕ࣝ͋Δͱྑ͍ ‣ https://spotbugs.github.io/ 10
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟɿJSR305Ξϊςʔγϣϯͷࠓ ‣ javax.annotation ύοέʔδʹؚ·ΕΔ ˏNonnull
ˏUntaintedͳͲͷΞϊςʔγϣϯ ‣ JSR305͕DormantͱͳͬͨޙFindBugs͕͍ͯͨ͠ ‣ SpotBugsʹΑΔϝϯςφϯε༧ఆແ͠ ‣ ܕύϥϝʔλʹ͏͜ͱͰ͖ͳ͍ͷͰ ࠓޙԺ͔ʹஔ͖͑ΒΕ͍ͯ͘ͷͰ 11
© Works Applications Co.,Ltd. #ccc_f3 Checker Framework ‣ Java8ͷJSR 308
(Annotations on Java Types) Λར༻͢Δ ‣ ଟ࠼ͳIDEɾϏϧυπʔϧʹରԠ ‣ JDKʹؚ·ΕΔΫϥεͷৼΔ͍Λσʔλϕʔεʹ࣋ͭ ‣ https://checkerframework.org/ 12
© Works Applications Co.,Ltd. #ccc_f3 Google error-prone ‣ ίϯύΠϧ࣌ʹղੳ͢ΔͷͰίʔυʹͳ͍ใर͍͍͢ ‣
ιʔείʔυͷࣗಈमਖ਼Λॳ͔Βҙ͍ࣝͯ͠Δʁ ‣ EclipseඇରԠʢcom.sun.* ύοέʔδʹґଘͷͨΊʣ ‣ ৭ʑϞμϯͰϓϥάΠϯ࣮͍͢͠ ‣ GoogleࣾһҎ֎͔ΒͷPRʢ࣮ͱͯ͠ʣड͚͚ͯͳ͍ ‣ http://errorprone.info/ 13 Refs: http://dl.acm.org/citation.cfm?id=2486877
© Works Applications Co.,Ltd. #ccc_f3 ࠓ͏ͳΒͲͷπʔϧʁ 14 ʘ Target Standard
Rules Note Checkstyle 7.7 AST 152 checks ŠŖũƄŎƃŞƄن PMD 5.6.1 AST 287 rules (PMD Java) ଟݴޠରԠ SpotBugs 3.1.0−RC1 Bytecode 453 patterns (+9 experimentals) plugin๛ Checker Fw 2.1.11 AST (Compiler֦ு) 19 checkers JSR308ରԠ error-prone v2.0.19 AST (Compiler֦ு) 145 patterns (+61 experimentals) কདྷʹظ
© Works Applications Co.,Ltd. #ccc_f3 ࠓ͏ͳΒͲͷπʔϧʁ ‣ ͱʹ͔͘Λग़͍ͨ͠ ‣ SpotBugs
+ Checker Framework ‣ Type AnnotationΛ͑SpotBugsʹݟ͚ͭΒΕͳ͍ ᖰΓग़ͤΔՄೳੑ͕͋Δ ‣ ղੳʹ࣌ؒΛ͔͚ͨ͘ͳ͍ ‣ error-proneͰίϯύΠϧ࣌νΣοΫ ‣ PMDΛίϯύΠϥͱฒྻ࣮ߦ 15
© Works Applications Co.,Ltd. #ccc_f3 ࠓ͏ͳΒͲͷπʔϧʁ ‣ JavaεΩϧͷߴ͍։ൃऀ͕ἧ͍ͬͯΔ ‣ Ξϊςʔγϣϯͷར༻Λଅਐ͠Checker
FrameworkΛ׆༻͢Δ ‣ ఆظతͳSpotBugsͰࡉ͔͍ᖰΓग़͢ ‣ ։ൃऀͷJavaεΩϧʹΒ͖͕ͭ͋Δ ‣ CheckstyleͰ࠷ݶͷಡΈ͢͞Λ୲อ͢Δ ‣ CPDͰίϐϖʹܯࠂΛ͢Δʢઅͷ͋ΔίϐϖΛଅ͢ʣ ‣ ಈ࡞Λܰͨ͘͠PMDSpotBugsΛ͜·Ίʹճ͠࠷ݶͷϛεΛ͙ 16
© Works Applications Co.,Ltd. #ccc_f3 Agenda ‣ ࣗݾհ ‣ 20175݄ݱࡏͷJava੩తղੳπʔϧػೳɾಈൺֱ
‣ େنERPͷίʔυ๊࣭͕͑Δͱͦͷղܾ ‣ ։ൃ͍ͯ͠Δ৫ͱͦͷ ‣ ߦ͍ͬͯΔͱࠓޙͷల 17
© Works Applications Co.,Ltd. #ccc_f3 2. େنERPͷίʔυ࣭͕ ๊͑Δ 18
© Works Applications Co.,Ltd. #ccc_f3 גࣜձࣾ ϫʔΫεΞϓϦέʔγϣϯζͱ ✤ ERPύοέʔδͷ։ൃΛߦ͍ͬͯΔاۀ ✤
γϯΨϙʔϧɺதࠃɺΠϯυɺΞϝϦΧʹڌ ✤ ίϯγϡʔϚΞϓϦͷΑ͏ͳϢʔβϏϦςΟͱ εϐʔυΛ࣋ͭERPʮHUEʢAI WorksʣʯΛ ։ൃɾఏڙ 19
© Works Applications Co.,Ltd. #ccc_f3 HUEͷ࣮ ✤ RDB͢ΔͳͲʹͩ͜Θ͍ͬͯͯɺ ✤ MSA͠ͳ͍ͱࢮ͵ఔʹࢁ΄ͲαʔϏε͕͋Γɺ
✤ ಙౡʹݚڀॴ࡞ΔϨϕϧͰࣗવݴޠॲཧʹຊؾͰɺ ✤ 100msୡͷͨΊʹAWS LambdaΛಋೖ͢ΔͳͲ ৽͍͜͠ͱ৭ʑ͍ͬͯΔɻ 20
© Works Applications Co.,Ltd. #ccc_f3 HUEͷ࣮Λࢧ͑Δਓ ✤ ඇৗʹଟ࠼Ͱॴଟ͍ ✤ ౦ژɾେࡕɾνΣϯφΠɾ্ւɾγϯΨϙʔϧͳͲʹ
։ൃڌ͕ࢄ͍ͯ͠Δ ✤ ڭҭϨϕϧৗ͔ࣝΒͯ͠ҧ͏ ✤ ϑϩϯτΤϯυɺϑϨʔϜϫʔΫɺϞόΠϧɺػցֶशɺ όονɺࢄॲཧͱ͍༷ͬͨʑͳઐՈ͕ڞଘ ✤ εΩϧͷͳ͍৽ਓ͕૿͑ଓ͚͍ͯΔঢ়ଶ 21
© Works Applications Co.,Ltd. #ccc_f3 HUEͷ࣮Λࢧ͑Δਓ ✤ ඇৗʹଟ࠼Ͱॴଟ͍ ✤ ౦ژɾେࡕɾνΣϯφΠɾ্ւɾγϯΨϙʔϧͳͲʹ
։ൃڌ͕ࢄ͍ͯ͠Δ ✤ ڭҭϨϕϧৗ͔ࣝΒͯ͠ҧ͏ ✤ ϑϩϯτΤϯυɺϑϨʔϜϫʔΫɺϞόΠϧɺػցֶशɺ όονɺࢄॲཧͱ͍༷ͬͨʑͳઐՈ͕ڞଘ ✤ εΩϧͷͳ͍৽ਓ͕૿͑ଓ͚͍ͯΔঢ়ଶ 22 ɿ ߴʹ૿͍͑ͯ͘ ։ൃऀͷΩϟονΞοϓΛ গͳ͍ίϛϡχέʔγϣϯͰ ͲͷΑ͏ʹॿ͚Δ͔ʁ
© Works Applications Co.,Ltd. #ccc_f3 ͳͥSpotBugs͔ ✤ ࣾͷਓࡐͱࢿ࢈ ✤ ෦࣮ʹ໌Δ͍ෳͷ։ൃऀ
✤ ϓϥάΠϯ࣮ܦݧͷੵ ✤ Eclipse࿈ܞ ✤ HUEEclipseΛඪ४IDEͱ͍ͯ͠Δ ✤ Java8αϙʔτ ✤ FindBugs 3.0.1Lambdaͷѻ͍ʹ ͕͋Δ 23
© Works Applications Co.,Ltd. #ccc_f3 Agenda ‣ ࣗݾհ ‣ 20175݄ݱࡏͷJava੩తղੳπʔϧػೳɾಈൺֱ
‣ େنERPͷίʔυ๊࣭͕͑Δͱͦͷղܾ ‣ ։ൃ͍ͯ͠Δ৫ͱͦͷ ‣ ߦ͍ͬͯΔͱࠓޙͷల 24
© Works Applications Co.,Ltd. #ccc_f3 3. HUE͕ߦ͍ͬͯΔͱ ࠓޙͷల 25
© Works Applications Co.,Ltd. #ccc_f3 աڈͷࣦഊ ✤ σϑΥϧτઃఆͷ··FindBugsCheckstyleΛ ϩʔΧϧϏϧυϓϨϚʔδϏϧυʹಋೖ͠ɺ ੜ࢈ੑΛେ͖͘Լ͛ͨ
✤ ϓϨϚʔδϏϧυ͕1͔͔࣌ؒۙͬͯ͘͠·ͬͨ ✤ mvn -Dfindbugs.skip <findbugs.skip>true </findbugs.skip> ͕ͨΓલʹͳͬͯ͠·ͬͨ 26
© Works Applications Co.,Ltd. #ccc_f3 աڈͷࣦഊ ✤ σϑΥϧτઃఆͷ··FindBugsΛEclipseʹಋೖ͠ɺ ੜ࢈ੑΛେ͖͘Լ͛ͨ ✤
ϫʔΫεϖʔεʹ10Λ͑ΔϓϩδΣΫτΛৗ࣌༻ ҙͯ͠։ൃ͢Δਓ͕ଟ͔ͬͨ ✤ Eclipse PluginʹύϑΥʔϚϯε্ͷ͕ܽؕ͋ͬͨ 27
© Works Applications Co.,Ltd. #ccc_f3 ͦͦɺ ✤ MSAΛࢦ͍ͯ͠Δͷʹ৫ԣஅͳղੳඞཁ͔ʁ ✤ ֤αʔϏε։ൃऀ͕͖ʹΕ͍͍ͷͰʁ
✤ ࣏ࣗͰ͖Δ׆ಈΛ։ൃޮΛԼͤͯ͞·Ͱ ԣஅతʹΔʁ 28
© Works Applications Co.,Ltd. #ccc_f3 MSAͰ৫ԣஅͳղੳඞཁ͔ʁ ✤ ඞཁ ✤ ੩తղੳnice
to haveͰͳ͘must to have ✤ ͦΕͧΕҟͳΔਓࡐɾΛ͍࣋ͬͯΔͷͰ શʹ࣏ࣗʹͤΔͱ͍࣮ͭࢪ͞ΕΔͷ͔ෆ໌ྎ ✤ ։ൃޮΛԼ͛ͳ͍ํ๏Λ୳͢ඞཁ͕͋Δ 29
© Works Applications Co.,Ltd. #ccc_f3 ༏ઌ ཏੑ ʢϝϦοτʣ ࣦഊΛ౿·͑ͯ ✤
։ൃޮʹଥڠ͠ͳ͍ ✤ ۃྗ։ൃऀͷৗۀΛ ϒϩοΫ͠ͳ͍ख๏Λ୳͢ ✤ ޮԼΛೲಘͤ͞ΒΕΔ ՁΛग़͢ ✤ ͪΌΜͱதΛཧղͯ͠͏ ✤ ݁ہόονϓϩάϥϜͳͷͰ ׳Εͨख๏ͰϓϩϑΝΠϧՄೳ ։ൃޮ ʢೲಘʣ 30
© Works Applications Co.,Ltd. #ccc_f3 ௐࠪɿͳͥFindBugs͍ͷ͔ʁ ✤ 10લͷৗࣝʹͱ͍࣮ͮͨ ʢSpotBugs 3.1.0-RC1Ͱղফʣ
✤ MapΛͬͨ String#intern() ૬ͷࣗલॲཧ ✤ ListΠϯελϯεΛ͍·Θͨ͢Ίͷܭࢉॲཧ ✤ Eclipse GUIΛසൟʹߋ৽͗͢͠Δ ʢSpotBugs 3.1.0-RC2Ͱղফʣ ✤ ղੳର͕มΘΔͨͼʹUIΛߋ৽ ✤ γϯάϧεϨουʢίΞΛ͍Εͳ͍ʣ 31
© Works Applications Co.,Ltd. #ccc_f3 ௐࠪɿڥมߋͰߴԽͰ͖Δʁ ✤ ΄΅Ͱ͖ͳ͍ ✤ FindBugsCPU
bound͕ͩγϯάϧεϨουͳόον ✤ ෳίΞΛ৯͍͍ͬͯΔͷJITίϯύΠϥͷεϨου ʢ-XX:CICompilerCountͰ૿ݮՄ͕ͩʹ΄΅د༩ͳ͠ʣ ✤ OOMEGC stormΛى͜͞ͳ͍ఔͷϝϞϦΛ༩͑Ε ͋ͱCPUίΞ૿ͯ͠ϝϞϦ૿ͯ͠มԽͳ͠ 32
© Works Applications Co.,Ltd. #ccc_f3 ௐࠪɿGuava v19.0ղੳͷϚΠΫϩϕϯν ʢ4 CPU coresʣ
33 128m 256m 512m 1g 2 (Default) OOME 18.2s 18.0s 18.2s 3 OOME 19.2s 18.2s 18.0s 4 OOME 24.8s 24.7s 23.6s -XX:CICompilerCount -Xmx & -Xms refs: https://github.com/spotbugs/spotbugs/pull/128
© Works Applications Co.,Ltd. #ccc_f3 ௐࠪɿGuava v19.0ղੳͷϚΠΫϩϕϯν ʢ2 CPU coresʣ
34 2g Default 26.0s G1GC 28.7s G1GC + UseStringDeduplication 29.1s GCઃఆʢJava8ʣ -Xmx & -Xms refs: https://github.com/spotbugs/spotbugs/pull/128
© Works Applications Co.,Ltd. #ccc_f3 ௐࠪɿઃఆͰfindbugs-maven-pluginΛ ߴԽ͢Δʹ ✤ onlyAnalyzeͰରΫϥεΛΓɺ visitorsͰར༻DetectorΛΔ͜ͱͰߴʹͳΔ
✤ ൃݟ͍ͨ͠όάʹ༏ઌΛ͚ͭΔ͜ͱ͕؊ཁ ✤ ExcludeFilterͰରϑΝΠϧΛͬͯ͘ͳΒͳ͍ ✤ Filterॲཧͷ݁Ռʹରͯ͠Өڹ͢ΔͨΊ 35
© Works Applications Co.,Ltd. #ccc_f3 Ҏ্Λ౿·͑ͯ 36
© Works Applications Co.,Ltd. #ccc_f3 ํ ✤ ॏࢹͷૈ͍ղੳͱɺཏੑॏࢹͷղੳΛΈ߹Θ ͤΔ ✤
ϓϨϚʔδϏϧυͰมߋ͞ΕͨΫϥε͚ͩΛղੳ ✤ र͍࿙ΕΔ࣍ͷղੳͰൃݟɾใࠂ 37
© Works Applications Co.,Ltd. #ccc_f3 ॏ͘ཏੑͷߴ͍ղੳʢ֓ཁʣ ✤ Jenkins + SonarQubeͰ։ൃ͕׆ൃͰͳ͍࣌ؒଳʹ࣮ࢪ
✤ ॏେͰͳ͍ϨϕϧͷϧʔϧؚΊ࣮ͯࢪ ✤ ։ൃऀ͕͍ͭͰΞΫηεͰ͖ΔSonarQubeΛఏڙ ✤ ReadmeϓϩδΣΫτҰཡϖʔδʹBadgeΛදࣔ͠ ҰཡੑͱSonarQubeͷಋઢΛ֬อ 38
© Works Applications Co.,Ltd. #ccc_f3 ॏ͘ཏੑͷߴ͍ղੳʢ݁Ռʣ ✤ 50ͷϓϩδΣΫτ͔Β3,000ͷΛݟ͚ͭɺ 1ϲ݄Ͱ͏ͪ900Λղফͨ͠ ✤
String.format() logger.info() ͷϑΥʔϚοτҟৗ ✤ ϚϧνεϨουϓϩάϥϛϯάΞϯνύλʔϯ 39
© Works Applications Co.,Ltd. #ccc_f3 ૉૣ͘ૈ͍ղੳʢ֓ཁʣ ✤ ॏେͳΛத৺ʹௐࠪ ✤ ಠࣗMavenϓϥάΠϯͰfindbugs-maven-pluginΛ
ϥοϓ ✤ มߋ͞Εͨ.javaϑΝΠϧҰཡ͔Βߋ৽͞ΕͨՄೳੑ ͷ͋ΔclassϑΝΠϧͷҰཡΛSpotBugsʹ͢ 40
© Works Applications Co.,Ltd. #ccc_f3 ૉૣ͘ૈ͍ղੳʢ݁Ռʣ ✤ SpotBugsʹ͔͔Δ࣌ؒΛฏۉ93ˋݮ ✤ େ͖ͳϦϙδτϦͰ1ҎʹղੳΛऴ͑ΒΕΔ
✤ र͍͖Εͳ͍ඞͣग़Δ ✤ ྫɿˏNonNullΛΠϯλϑΣʔεʹՃͨ͠߹ 41
© Works Applications Co.,Ltd. #ccc_f3 ࠓޙͷల ✤ ͞Βʹଟ͘ͷϦϙδτϦͷಋೖ ✤ Type
AnnotationΛஈ֊తʹಋೖ͢Δ ✤ ٕज़ʹͩ͜ΘΓͷڧ͍ɺڞ௨Ϟδϡʔϧ։ൃऀʹ ڠྗΛґཔ͢Δ 42
© Works Applications Co.,Ltd. #ccc_f3 4. ࣾFWࢧԉͷͨΊͷ SpotBugsϓϥάΠϯ࣮ํ๏ 43
© Works Applications Co.,Ltd. #ccc_f3 5. ·ͱΊ 44
© Works Applications Co.,Ltd. #ccc_f3 େن։ൃʹ͓͚Δίʔυ࣭վળ ✤ ϓϩδΣΫτͷͱن͕େ͖͍MSAͰӡ༻ͷ ্͕͕Δ ✤
֤αʔϏε։ൃऀ͕੩తղੳπʔϧͷϝϦοτΛ ڗडͰ͖Δڥͷߏங͕ඞཁ 45
© Works Applications Co.,Ltd. #ccc_f3 େن։ൃʹ͓͚Δίʔυ࣭վળ ✤ FindBugs/SpotBugsͷΫηΛཧղ͢Ε େن։ൃͰαΫαΫར༻Ͱ͖Δ ✤
ύϥϝʔλͷมߋͰ࣮ߦϧʔϧͱରίʔυΛ ߜΓࠐΉɺࠩղੳͱόον࣮ߦΛ͚Δ 46
© Works Applications Co.,Ltd. #ccc_f3 େن։ൃʹ͓͚Δίʔυ࣭վળ ✤ SpotBugsϓϥάΠϯΛ։ൃ͢ΕࣾϑϨʔϜϫʔΫ ݻ༗ͷ੩తղੳπʔϧͰൃݟͰ͖Δ ✤
࣮ʹඞͣ͠JVMόΠτίʔυͷࣝඞཁ ͱ͠ͳ͍ 47
© Works Applications Co.,Ltd. #ccc_f3 6. ࠾༻ใ 48
© Works Applications Co.,Ltd. #ccc_f3 ੈքΛࢦ͢ΤϯδχΞΛ ืू͍ͯ͠·͢ 49
© Works Applications Co.,Ltd. #ccc_f3 ۩ମతͳΛฉ͖͍ͨํ ✤ ൃදޙʹࢲʹฉ͖ʹདྷ͍ͯͩ͘͞ʂ ✤ CIɺMSAɺϚΠάϨʔγϣϯɺ։ൃϓϩηεɺ
ଟڌ։ൃઐͳͷͰ৭ʑ͓Ͱ͖·͢. ✤ ຊۈͰͳ͍ͷͰɺຊڌݻ༗ͷ ͋·Γ͑ΒΕͳ͍͔͠Ε·ͤΜɻ 50
© Works Applications Co.,Ltd. #ccc_f3 Thank you! ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ 51
© Works Applications Co.,Ltd. #ccc_f3 7. ࢀߟࢿྉ 52
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟใ ‣ ιʔείʔυͷ্࣭ͷͨΊͷޮՌతͰޮతͳ ίʔυϨϏϡʔ ‣
https://www.slideshare.net/MoriharuOhzu/ ss-9224836 53
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟใ ‣ ϥϜμࣜετϦʔϜ API ৽͍࣌͠
API ͚ͩ ͡Όͳ͍ʂ Java8 ͷλΠϓɾΞϊςʔγϣϯ͋ͷख͜ͷख ‣ http://waman.hatenablog.com/entry/ 2014/05/08/063959 54
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟใ ‣ Type Annotation for
Static Program Analysis ‣ https://www.slideshare.net/skrb/type-annotation- for-static-program-analysis 55
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟใ ✤ G1: from garbage
collector to waste management consultant ✤ https://blogs.oracle.com/java-platform-group/ g1%3a-from-garbage-collector-to-waste- management-consultant 56
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟใ ✤ G1 GC ͓͞Β͍ͱ
#jjug_ccc Ͱൃදͨ͠ ✤ http://cco.hatenablog.jp/entry/ 2015/12/01/011223 57
© Works Applications Co.,Ltd. #ccc_f3 ࢀߟใ ✤ The Google FindBugs
fixit ✤ http://dl.acm.org/citation.cfm?id=1831738 58