Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Javaの冗長な構文を愛でてみる / java-redundant-syntax
irof
October 04, 2020
Technology
1
470
Javaの冗長な構文を愛でてみる / java-redundant-syntax
2020-10-04
J Lang Fest Kansai Online #1
https://kansai-jvm-langs-fest.connpass.com/event/188249/
irof
October 04, 2020
Tweet
Share
More Decks by irof
See All by irof
ふつうのプログラマのふつうの設計
irof
13
16k
自分のための道具作りのすすめ
irof
3
3.3k
IDE起点で2020年代の開発環境を眺めてみる
irof
3
7.3k
型による会話設計 powered by JIG
irof
1
330
Springアプリケーションのテスト道具 使いどころ、使わないどころ / decide-to-use-test-tool-for-spring-application
irof
4
7.6k
コードとモデルを一体に成長させるハンズオン / jig hands-on 201912
irof
1
67
モデリングのきほん #kanjava #mixleap
irof
4
4.1k
JUnit 5の拡張機能を完全にマスターした
irof
1
1.9k
JIGの紹介
irof
11
3k
Other Decks in Technology
See All in Technology
What's Data Lake ? Azure Data Lake best practice
ryomaru0825
2
750
QiitaConference2022
fuwasegu
0
190
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
450
データ分析で切り拓け! エンジニアとしてのデータ分析職キャリア戦略
ksnt
0
160
Power AutomateでのAdaptive Cards
miyakemito
1
570
220628 「Google AppSheet」タスク管理アプリをライブ作成 吉積情報伊藤さん
comucal
PRO
0
230
マネージャーからみたスクラムと自己管理化
shibe23
0
1.1k
紙にまつわる苦しみを機能化してきた カミナシの歴史
kaminashi
0
1.3k
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks
hiroga
0
530
Introduction to MLOps
asei
5
900
Custom AppをIP制限ありのままで審査に通す方法
yusuga
0
680
ラブグラフ紹介資料 〜プロダクト解体新書〜 / Lovegraph Product Deck
lovegraph
0
280
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
19
3k
The Invisible Customer
myddelton
110
11k
GraphQLとの向き合い方2022年版
quramy
16
8.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
23
15k
Building Adaptive Systems
keathley
25
1.1k
The Web Native Designer (August 2011)
paulrobertlloyd
74
1.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
15
36k
WebSockets: Embracing the real-time Web
robhawkes
57
5.2k
Infographics Made Easy
chrislema
233
17k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
Why Our Code Smells
bkeepers
PRO
324
55k
What's new in Ruby 2.0
geeforr
336
30k
Transcript
+BWBͷͳߏจΛ ѪͰͯΈΔ +-BOH'FTU,BOTBJ0OMJOF 5 !JSPG
ओʹ+BWBΛ͍ͬͯΔ;ͭ͏ͷϓϩάϥϚ ;ͭ͏ಛผͳ͜ͱͤͣɺ;ͭ͏ͷ͜ͱΛ;ͭ͏ ʹ͢ΔɻͦΜͳҙਤͰ໊ͬͯ·͢ɻ ؔ+BWBΤϯδχΞͷձʢؔδϟόʣ͔Β͖·ͨ͠ ݸਓࣄۀओੜ ͓ࣄ֬ͷࡶஊ͔ΒͰ͓͍ͯ͠·͢ ࣄ+BWBͰͷ։ൃʹݶΒ͍ͣΖ͍ΖͰ͢
ͳ͢͜ͱ ࢲͱ+"7" +7.ͱ+BWBͷؔ +BWBʁ ࢲ͕ࠓճ͔ͨͬͨ͜͠ͱ
ࢲͱ+"7"
ࢲͱ+"7" ݱࡏ鱳KBWBDPN鱴鲿鲮鲜鳫鱑่鲑鱫鱉鲐ɻ 鱭鱫鲇൵鱜 鱉
ࢲʹͱͬͯͷ+BWB Ҏ্ࠃޠͱͯ͠༻ ຊޠΑΓॻ͚Δͱࢥ͏ ͭ·Γຊޠྗ͕ʢলུ͞Ε·ͨ͠ʣ ࣄͰͷϛχϚϜ+BWB ࠷৽ͱൺΔͱະຬɻ
ࢲʹͱͬͯͷ+BWB ԿΛ͢Δʹͯ͠ʮ࠷Ͱ࣮֬ʹ ࣮Ͱ͖Δͷʯ+BWB ଞͷݴޠͦΕͳΓʹͬͯΔ͚Ͳ ͳͷͰࢥߟ+BWBʹدͬͯΔ ࢥߟݴޠͷ੍Λड͚Δ͔Βํͳ͍
࠷ॳͷݴޠͷհ Ұͭͷݴޠʹʮਫ਼௨ʯ͠· ͠ΐ͏ɻŧŔŕŪũƄŝſɻ ʮ+BWBŧŔŕŪũƄŝſʁʯͱฉ͔ΕΔͱ ࢲएׯ͍᪳͋Δ͚Ͳ ͲͷݴޠͰ͋Δ͔ॏཁͰ ͋Γ·ͤΜ ͕ɺͦͷݴޠͱ͖͘߹͏ͭ ΓͰ͖߹͍·͠ΐ͏
+7.ͱ+BWB
+7. +-BOH'FTU,BOTBJͱ͍͏͜ͱ Ͱɺ+7.ΛΒͳ͍ਓډͳ͍ͱ ࢥ͍·͢ ʮͬͯΔʯͷ߹͍·ͪ·ͪ Ͱ͠ΐ͏͚Ͳ KZVLVUZPͷͷԠͬͯͲ͏ͳΜͩΖ
+7.ͱ+BWB +BWBͷେ͖ͳޭͷҰͭ+7. Λҭ͖ͯͯͨ͜ͱ গ͠લ͔Βଞͷ+7.ݴޠ͕+7.Λҭͯ ͯɺͦΕΛ+BWB͕͏͖ͬͯͰ͖ ͖͚ͯͨͲɻ
+BWBͷཱͪҐஔ +7.͕࣮ߦ͢ΔόΠφϦΛ࠷ૉ ʹදݱͰ͖Δݴޠ Ұ෦ͷߏจҎ֎KBWBQͨ͠ΒͲ͏ͳΔ͔ ૾ͭ͘ɻଞݴޠΑΓڑ͕͍ۙɻ ͳͷͰίʔυͷՄࢹԽ $MBTTΛରʹͯ͠Δˠ ଞݴޠͰ͑Δ͚Ͳɺ༧ଌͰ͖ͳ͍ϊΠζ͕ʜʜ IUUQTHJUIVCDPNEEEKBWBKJH
+BWB͔
͍ΖΜͳจ຺Ͱʮ+BWBʯ ͱݴΘΕ·͢ɻ ͚Ͳ࣮ମ͋·ΓΈ͑·ͤΜɻ จ຺͕·ͪ·ͪա͗ͯΧΦε ʮʯͬͯͳΜͩΖ͏ͬͯɻ
ͩͱ·͍ͣ͜ͱ ॻ͖ͮΒ͍ ಡΈͮΒ͍
ͳͷͰॻ͖ͮΒ͍ ͔ͩΒॻ͘ͷʹ͕͔͔࣌ؒ Δͷେ ͰଟͦΕɺ+BWBͷ͍ͤ͡Ό ͳ͍ͱࢥ͏ΜͰ͢
ͳͷͰॻ͖ͮΒ͍ ΄ͱΜͲ શ෦͡Όͳ͍ *%&͕ղܾࡁΈ ࠓ࣌*%&ΛΘͳ͍ͷߟ͑ͮΒ͍ ·͔͞શจࣈλΠϐϯάͳΜͯ͠ ͯ·ͤΜΑͶʁ ͜Εۃ͚ͩͲʮ·͔͞˓˓·ͤΜ ΑͶʁʯ͍͘ΒͰ͋Δ
·͔͞˓˓·ͤΜΑͶʁ ·͔͞JNQPSUจΛखͰॻ͍ͯ·ͤΜΑͶʁ ·͔͞GPSจΛશ෦ॻ͍ͯ·ͤΜΑͶʁ ·͔͞JGจΛશ෦ॻ͍ͯ·ͤΜΑͶʁ ·͔͞ϑΟʔϧυΛ࡞ͬͯίϯετϥΫλ Ͱೖͱ͔શ෦ॻ͍ͯ·ͤΜΑͶʁ Ұྫʹ͗͢ͳ͍ɻ
ͩͱ·͍ͣ͜ͱ ॻ͖ͮΒ͍ ಡΈͮΒ͍ จ຺Ͱ͜ΕΛڍ͛Δͷ ʮࢲ*%&Λ͍ͬͯ·ͤΜʯʹ͍ۙ
ͳͷͰಡΈͮΒ͍ ͕ͬͪͣ͜ΔՁͷ͋Δ ʮ+BWBʯͱݴ͏ͳΒ͜͜ ͔Β߈ΊΑ͏ ߈ΊͯͲ͏͢Δ
ಡΈʹӨڹ͢Δ ಡΜͰใྔ͕૿͑ͳ͍ ใ͕૿͑ΔͳΒͱݴ͑ͳ͍ ΑΓ؆ܿͳදݱ͕͋Δ ಉ͡ใྔͰͦΕͳΒͱݴ͑Δ ݴޠʗඪ४ϥΠϒϥϦͷදݱྗ͕ऑ͍
େࣄͳͷՄಡੑ ՄಡੑΛଛͶΔ͔Β ʮಡΈʹ͍͘ʯͷҰҼʹͳΓ͑Δ Մಡੑ্͕͕Δͳ͍ ʢ͋ΓಘΔ͔ผͱͯ͠ʣ
ݴޠͷදݱྗʹ͍ͭͯ ࠓճѻ͍·ͤΜ ͰೖΒͳ͍ʜʜ ݴޠඪ४ϥΠϒϥϦͷڧྗ͞ ઃܭͷ͞Λ෴͍Ӆ͢͜ͱ͋Γ· ͢ɻରশੑΛଛͶͯΔͷʹؾ͚ͮ ͳ͍ͱ͔ɻ
ίʔυಡΈͰ͢ 鱺鱩鱋鱳+BWB鲫鱅鲿鲛鳫鲨++6($$$4QSJOH IUUQTTQFBLFSEFDLDPNJSPGIVUVVGBMTFKBWBLPEFJOHVOVNCFSDDDF 鲫鱅鳁鲗鱮鲃鲘鱯鱐鱰%FW-07&ؔDPNNJUNFOU IUUQTTQFBLFSEFDLDPNJSPGLPEPXPEPNBOOBLBOJ
ͳ+BWBίʔυ
ϘΠϥʔϓϨʔτίʔυ ग़య8JLJQFEJBʢ͖Γͬ ʮݴޠ্༷লུෆೳʯ ͑ɺHFUUFSTFUUFSͬͯผʹݴޠ༷Ͱͳͯͩ͘ͳʜʜ ·͊ଟ͘ͷϥΠϒϥϦ͕ཁٻ͢ΔͷͰ͋ΔͷͰ࣮࣭తʹ ͬͯײ͡ͷؚΊΕ͍͍ΜͩΖ͏͚Ͳɻ
ଟ͘ͷʮϘΠϥʔϓϨʔτίʔ υʯͱݴΘΕΔͷʮͦ͏ݴ ͏͍ํͨ͠ΒཁΔΑͳ͊ʯͬ ͯͷ͕ਖ਼ͳͱͩͬͨ͜Γ͢Δ ʢͨͩͷײ
ݴޠ্༷ͷվળྫ USZXJUISFTPVSDFT μΠΞϞϯυΦϖϨʔλʔ WBS 鱘鲑鲎鱴鱳ղফ鱯鱳鱐ʁ
USZXJUISFTPVSDFT ΛѪͰΔ Ѫ鱬鲐ʹஸೡ鱰ݟ鲐鱔鲎鱉鱳ײ鱝鱬鱨鱫鲃鱞
USZXJUISFTPVSDFT ϦιʔεͷࣗಈDMPTFͱͯ͠ೝࣝ͞Ε Δͷ ଞݴޠͬͯͯʮཉ͍͠ͳʔʯͱ ࢥͬͯͨච಄ ͪͳΈʹՃ͞Εͨͷେੲ ʢόʔδϣϯ൪߸͕ҎԼʣ
None
͔ͷఆ ίʔυ্ใྔ͕ݮ͍ͬͯΔ DMPTF͕ݺΕΔ͜ͱͦͷ݅ ಡΈऔΔͷʹ͕ࣝ૿͍͑ͯΔ ͕ࣝ͋ΕಡΈऔΔ্͕Δ Մಡੑࣝͱηοτ
͞վળ͞Ε͔ͨ :&4 ࣗͰ࣮͢Δʹ͔ͬͨΔͯ͘ खΛൈ͍ͯͨͱ͜Ζͱ͔͕͖ͬͪ ΓରԠ͞ΕΔΑ͏ʹͳͬͯΔɻ TVQQSFTT͕ྫ֎Ͱѻ͑ͯɺෳϦιʔε ѻ͏࣌ʹ͍͍ײ͡ʹͯ͘͠ΕͯɺӠʑɻ
ʮ͔ͬͨΔ͍ʯͷ ෳͷϦιʔεͷղ์Λਖ਼࣮͘͠ ͢Δͷࠔͩ͠ɺ௨ৗෆཁͳ࣮ Ͱ͋Δɻ ڵຯ͋Ε ϒϩάݟͯˠ
Ͱͳ͘ͳ͔ͬͨ ΞϓϦέʔγϣϯϨϕϧͩͱʮUSZʯͬͯͳ ΜͩΑײ͋Δ ʮྫ֎ॲཧʯͱݴ͏ใͳΜͩΑͶ͐ʜʜ ͔֬ʹྫ֎ॲཧͱηοτͳ͜ͱଟ͍Μ͚ͩͲɺผ ʹྫ֎ॲཧͨ͘͠ͳͯ͘DMPTF͚͍ͩͨ͠ͷʹ USZͬͯͳΜͶΜͬͯʜʜ
ଞݴޠΛݟͯΈΔ ʢશʹΠίʔϧ͡Όͳ͍͚Ͳʣ +BWB͚ͩྫ֎ॲཧʹࠞͬͯ͟Δɻ ʮྫ֎ॲཧͰDMPTF͞ΕΔͱ͔͔Δ͔ʂʯΜͯ͡ड͚Δɻ Ͱൺֱͯ͠ʮʯͱݴ͍ͮΒ͍ɻ ݴޠ هड़ +BWB USZ 999
4DBMB 6TJOH 999 ,PUMJO 999VTF (SPPWZ 999XJUI$MPTFBCMF $ VTJOH 999
μΠΞϞϯυΦϖϨʔλʔ ΛѪͰΔ
͜Εଠݹͷߋ৽ ໌֬ͳͷղফ ใྔҰݮΒͣಡΈ͘͢ͳͬͨ
WBS ΛѪͰΔ
࠷ۙೖͬͨ ࠷ۙʹόʔδϣϯ͕࠷৽ΑΓେ͖͍ ͱ͍ͬͯ͏ܦͬͯΔ ଞݴޠͩͱͨ͘͝Γલʹ͋ͬͨͭ
͜Εͷղফ͔ʁ ʮ4PNF5ZQF͕ͭ͋Δ͔Β ʯͪΐͬͱҧ͏ɻ
ίʔυࠨ͔ΒಡΉ ࠨίʔυͷҰ ͔ͩΒࠨʹॏཁͳ͜ͱΛॻ͖͍ͨ ࠷ॏཁͳͷܕͷͣʜʜ
Ή͠ΖʮมͰ͋ΔʯͳΜͯ໌ Β͔ͳ͜ͱΛΘ͟Θ͟ॻ͍ͯɺ ͕͞૿͑ͯͨΓɻ
WBS͕ղফͨ͠ͷ ॻ͘ͷָʹͳͬͯΔ ͚Ͳ·͔͞มͷܕͱ͔खͰॻ ͍ͯ·ͤΜΑͶʁ ͋ɺKTIFMMͰศརɻ
ࢲ͕ࠓճ͔ͨͬ͠ ͨ͜ͱ
Մಡੑ͕ॏཁ ʮ͞ʯՄಡੑʹӨڹΛ༩͑ΔҰ Ҽʹա͗ͳ͍ ͰՄಡੑ্͕͕ΔͳΒ܁Γฦ͠ ॻ͍͍͍ͯ هड़ੑͳΜͱ͔ͳΔɻอकੑʢมߋ࿙Ε ͷϦεΫͱ͔ʣͳΜͱ͔ͳΔɻʮͳΜͱ ͔ͳΔʯΛ;ͭ͏ʹ͍ͨ͠ɻ
ܕΛॏࢹ͍ͨ͠ ʮมͰ͋ΔʯʮϝιουͰ͋Δʯʹίʔ υͷҰͨΔࠨΛৡΓͨ͘ͳ͍ ͔ͩΒWBSͱ͔GVOͱ͔EFGͱ͔ʹࠨΛ͋͛ͨ ͘ͳ͍ ͱݴ͍ͭͭम০ࢠʹୣΘΕΔ൵͠Έ म০ࢠͳ͠Ͱશ෦Γ͍ͨ ݅͑ͯ֎ͨ͠Γ͢Δˠ
ݴޠͷΛޠΔͳΒ ͦͷʮʯ͕Կͳͷ͔ɺ͏গ͠ߟ͑ͯ ΈΔͱؾ͖͕ͮ͋Δ͔͠Εͳ͍ɻ ෳͷݴޠʹڵຯΛ࣋ͬͨͷͳΒɺͦΕͧ ΕͷΞϓϩʔνΛݟൺͯɺղܾͷํͷ ͠ʹ͠Α͏ɻ ଟ͘ͷʮʯݴޠ͡Όͳ͘ɺઃܭͷෆ ٢ͳʹ͓͍Ͱ͢ɻ͖߹͍·͠ΐ͏ɻ
͖ͳݴޠμϝͩ͠ ͯ͠ͳΜ΅ͩͱࢥ͏ ݴޠEJTฉ鱉鱫鲇ʮ鱉鱯鱅EJT鲐鱯鲎鱘鱘鱥 鲒鱅ʯ鲄鱤鱉鱰ࢥ鱍鲐鱭৺Ժ鲉鱐鱰鱯鲑鲐