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
Steps to master the Play source code
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Toshiyuki Takahashi
February 12, 2016
Programming
540
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Steps to master the Play source code
ScalaMatsuri 2016
Toshiyuki Takahashi
February 12, 2016
More Decks by Toshiyuki Takahashi
See All by Toshiyuki Takahashi
Purely Functional Programming with Cats Effect 3 and Scala 3 [ScalaMatsuri2022]
tototoshi
0
7.5k
scala-ojisan
tototoshi
0
160
5年ぶりにPHPを書いた話
tototoshi
0
350
flyway-play
tototoshi
2
2.2k
Template Engines in Scala
tototoshi
1
4k
Play と Scala のこれまでとこれから
tototoshi
1
2.1k
Other Decks in Programming
See All in Programming
yield再入門 #phpcon
o0h
PRO
0
480
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.5k
どこまでゆるくて許されるのか
tk3fftk
0
500
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
140
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
580
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
950
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
180
フィードバックで育てるAI開発
kotaminato
1
120
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
210
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.8k
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.7k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Marketing to machines
jonoalderson
1
5.6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
370
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
600
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Abbi's Birthday
coloredviolet
3
8.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.8k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
250
Transcript
4UFQTUPNBTUFS UIF1MBZTPVSDFDPEF 5PTIJZVLJ5BLBIBTIJ!TDBMBNBUTVSJ
XIPBNJ w IUUQTHJUIVCDPNUPUPUPTIJ w TDBMBDTW qZXBZQMBZ TMJDLKPEB NBQQFS FUD w
'SFFMBODFFOHJOFFS w )PTUJOH1MBZNFFUVQ 1MBZTPVSDFDPEF SFBEJOH
3FBEJOHTPVSDFDPEF w 5PJOWFTUJHBUFBCVH w 5PDVTUPNJ[FUIFGSBNFXPSL w 5PMFBSO w 5PLJMMUJNF w
FUD
(PBM w -FBSOJOHTPNFCBDLHSPVOE JOGPSNBUJPOUPVOEFTUBOETPVSDFDPEF PG1MBZ w &YQMPSJOHUIFIJTUPSZPG1MBZ w 6OEFSTUBOEJOHUIFSPMFPGFBDINPEVMF
3PBENBQ &YQMPSJOHCVJMETCU 6OEFSTUBOEJOHQBUUFSOTJO1MBZ -FBSOJOHFBDINPEVMF 1FSGFDUMZNBTUFS
3PBENBQ &YQMPSJOHCVJMETCU 6OEFSTUBOEJOHQBUUFSOTJO1MBZ -FBSOJOHFBDINPEVMF 1FSGFDUMZNBTUFS
3FBEJOHCVJMETCU w CVJMETCUBOEGSBNFXPSLQSPKFDU w MJCSBSZ%FQFOEFODJFT w EFQFOET0O
IUUQTHJUIVCDPNUPUPUPTIJQMBZEFQFOEFODZHSBQI
ˠ w )JTUPSZPGSFGBDUPSJOH w NPSFUFTUBCMF w NPSFqFYJCMF
ˠ w %FDPVQMFENPEVMFTBOEEFQFOEFODJFT w &BDIKBSIBTCFFOTNBMMFSUIBOCFGPSF w QMBZKBWBJTEJWJEFEGSPNQMBZTDBMB w BOPSNXFOUUPQMBZGSBNFXPSLBOPSN w
4DBMB5FNQMBUFXBTSFQMBDFEXJUIUXJSM
3PBENBQ &YQMPSJOHCVJMETCU 6OEFSTUBOEJOHQBUUFSOTJO1MBZ -FBSOJOHFBDINPEVMF 1FSGFDUMZNBTUFS
1BUUFSOT w %FQFOEFODZ*OKFDUJPO w *NQMJDJUQBSBNFUFSBLB5ZQFDMBTTFT
1BUUFSOT w %FQFOEFODZ*OKFDUJPO w *NQMJDJUQBSBNFUFSBLB5ZQFDMBTTFT
%FQFOEFODZ*OKFDUJPO w 1MBZCSPVHIU$POTUSVDUPSCBTFE %FQFOEFODZ*OKFDUJPO w /PNPSF1MBZBQJ1MBZDVSSFOU w 3VOUJNF%* w $PNQJMFUJNF%*
w 1MVHJOJTEFQSFDBUFEBOEXJMMCFSFNPWFE
%* w 4QSJOH (VJDF w $BLF1BUUFSO w *NQMJDJU1BSBNFUFS
w 3FBEFS.POBE
$POTUSVDUPS*OKFDUJPO DMBTT6TFS3FQPTJUPSZ\ EFGpOE"MM ^ DMBTT6TFS4FSWJDF\ WBMVTFS3FQPTJUPSZOFX6TFS3FQPTJUPSZ EFGHFU"MM6TFSVTFS3FQPTJUPSZpOE"MM ^
$POTUSVDUPS*OKFDUJPO DMBTT.Z6TFS3FQPTJUPSZFYUFOET6TFS3FQPTJUPSZ\ EFGpOE"MM ^ DMBTT6TFS4FSWJDF VTFS3FQPTJUPSZ6TFS3FQPTJUPSZ \ EFGHFU"MM6TFSVTFS3FQPTJUPSZpOE"MM ^
3VOUJNF%* DMBTT.Z6TFS3FQPTJUPSZFYUFOET6TFS3FQPTJUPSZ\ EFGpOE"MM ^ DMBTT6TFS4FSWJDF!*OKFDU VTFS3FQPTJUPSZ6TFS3FQPTJUPSZ \
EFGHFU"MM6TFSVTFS3FQPTJUPSZpOE"MM ^
3VOUJNF%* w #PVOECZ%*DPOUBJOFS DMBTT6TFS3FQPTJUPSZ.PEVMFFYUFOET6TFS3FQPTJUPSZ\ EFGCJOEJOHT FOWJSPONFOU&OWJSPONFOU DPOpHVSBUJPO$POpHVSBUJPO 4FR
CJOE<6TFS3FQPTJUPSZ>UP<.Z6TFS3FQPTJUPSZ> ^
$PNQJMFUJNF%* w #JOENBOVBMMZ DMBTT.Z$PNQPOFOUT DPOUFYU$POUFYU FYUFOET #VJMU*O$PNQPOFOUT'SPN$POUFYU DPOUFYU \ MB[ZWBMSPVUFS3PVUFSFNQUZ
MB[ZWBMNZ6TFS3FQPTJUPSZ OFX.Z6TFS3FQPTJUPSZ ^
1MBZ.PEVMF w &BDINPEVMFJTJNQMFNFOUFEBT1MBZ.PEVMF w FWPMVUJPOT DBDIF XT FUD w $BOXSJUFDVTUPN1MBZ.PEVMFJOUIFTBNF
XBZ w *OJUJBMJ[BUJPOPSEFSPGNPEVMFTBSF BVUPNBUJDBMMZEFUFSNJOFEGSPNUIF EFQFOEFODZHSBQI
&YBNQMF w IUUQTHJUIVCDPNqZXBZqZXBZQMBZ
1BUUFSOT w %FQFOEFODZ*OKFDUJPO w *NQMJDJUQBSBNFUFSBLB5ZQFDMBTTFT
*NQMJDJUQBSBNFUFS DMBTT6TFS WBMOBNF4USJOH \ XBOUUPFYUFOEUIJT EFGUPT 4USJOHOBNF ͞Μ ^
*NQMJDJUQBSBNFUFS DMBTT6TFS WBMOBNF4USJOH USBJU1SJOUBCMF<5>\ EFGUPT U5 4USJOH ^
*NQMJDJUQBSBNFUFS PCKFDU1SJOUBCMF4BOFYUFOET1SJOUBCMF<6TFS>\ EFGUPT VTFS6TFS 4USJOHVTFSOBNF ͞Μ ^ PCKFDU1SJOUBCMF4BNBFYUFOET1SJOUBCMF<6TFS>\ EFGUPT VTFS6TFS
4USJOHVTFSOBNF ͞· ^
*NQMJDJUQBSBNFUFS PCKFDU6TFS1SJOUFS\ EFGQSJOUMO VTFS6TFS Q1SJOUBCMF<6TFS> 6OJU\ $POTPMFQSJOUMO QUPT VTFS
^ ^
*NQMJDJUQBSBNFUFS TDBMB6TFS1SJOUFSQSJOUMO OFX6TFS IPHF 1SJOUBCMF4BNB IPHF͞· TDBMB6TFS1SJOUFSQSJOUMO OFX6TFS IPHF
1SJOUBCMF4BO IPHF͞Μ
*NQMJDJUQBSBNFUFS JNQMJDJUPCKFDU1SJOUBCMF4BOFYUFOET1SJOUBCMF<6TFS>\ EFGUPT VTFS6TFS 4USJOH VTFSOBNF ͞Μ ^ PCKFDU6TFS1SJOUFS\ EFGQSJOUMO
VTFS6TFS JNQMJDJUQ1SJOUBCMF<6TFS> \ $POTPMFQSJOUMO QUPT VTFS ^ ^
*NQMJDJUQBSBNFUFS TDBMB6TFS1SJOUFSQSJOUMO OFX6TFS IPHF IPHF͞Μ w #FIBWJPSJTDIBOHFECZAJNQPSUA
5ZQFDMBTTFTJO1MBZ w 8SJUFBCMF w $POUFOU5ZQF0G w 2VFSZ4USJOH#JOEBCMF w 1BUI#JOEBCMF w
FUD
FYBNQMFT w IUUQTHJUIVCDPNUPUPUPTIJQMBZ KTPOT w IUUQTHJUIVCDPNUPUPUPTIJQMBZ KPEBSPVUFTCJOEFS
3PBENBQ &YQMPSJOHCVJMETCU 6OEFSTUBOEJOHQBUUFSOTJO1MBZ -FBSOJOHFBDINPEVMF 1FSGFDUMZNBTUFS
࠶ IUUQTHJUIVCDPNUPUPUPTIJQMBZEFQFOEFODZHSBQI
QMBZ w QMBZ w DPSFNPEVMFPG1MBZ4DBMB w "DUJPO 3PVUJOH $POpHVSBUJPO FUD
w QMBZKBWB w DPSFNPEVMFPG1MBZ+BWB w EFQFOETPOQMBZ
QMBZ w "DUJPO 3FRVFTUBOE3FTQPOTF FUD w IUUQTHJUIVCDPNQMBZGSBNFXPSL QMBZGSBNFXPSLUSFFNBTUFS GSBNFXPSLTSDQMBZTSDNBJOTDBMB QMBZBQJ
KECD w QMBZKECD w )JLBSJ$1 #POF$1 w QMBZKECDBQJ w *OUFSGBDFUPXSJUFDVTUPNJ[FE
EBUBCBTFNPEVMF
KECD w BOPSN QMBZTMJDL QMBZFCFBOBSFOPU JOUIJTSFQPTJUPSZ
XT w "TZOD)UUQ$MJFOUXSBQQFS
DBDIF w &I$BDIFCZEFGBVMU w DBOTQMJUJOUPQMBZDBDIFBOEQMBZ DBDIFBQJ
QMBZKTPO w %PFTO`UEFQFOEPOQMBZ w VTFGVMJOPUIFSQSPKFDUT w 3FQMBDFEXJUI+TPOTJO1MBZ
JUFSBUFFT QMBZGVODUJPOBM w 6UJMJUJFTGPSGVODUJPOBMQSPHSBNNJOH
QMBZTFSWFS w *NQMFNFOUJPOPGUIF1MBZTFSWFS w QMBZOFUUZTFSWFS OFUUZCBTFE w QMBZBLLBIUUQTFSWFS BLLBIUUQ
CBTFE
QMBZTUSFBNT w FYQFSJNFOUBMNPEVMFGPSSFBDUJWF TUSFBNT w 1MBZBOE3FBDUJWF4USFBNT w 3FBDUJWF4USFBNTೖʢ+BQBOFTFʣ
TCUQMVHJO w %FWFMPQNFOUFOWJSPONFOUBOE XPSLqPXBSFQSPWJEFECZTCUQMVHJO
3PBENBQ &YQMPSJOHCVJMETCU 6OEFSTUBOEJOHQBUUFSOTJO1MBZ -FBSOJOHFBDINPEVMF 1FSGFDUMZNBTUFS
50%0
4VNNBSZ w 1MBZIBTCFFOMBSHFMZSFGBDUPSFEBOE EFDPVQMFETJODF w DPSF w NPEVMFTMJLFXT DBDIF FUD
w TCUQMVHJO w 1MBZJTOPXEFTJHOFEBSPVOE%* w 5ZQFDMBTTFTBSFBMTPDPNNPOMZGPVOE