Slide 1

Slide 1 text

)PX(P$BDIF5FTUT (P3FMFBTF1BSUZJO5PLZP (VOPTZ*OD #VTJOFTT%FWFMPQNFOU5FBN 4PGUXBSF&OHJOFFS 4FJKJ5BLBIBTIJ !@@UJNBLJO@@

Slide 2

Slide 2 text

Seiji Takahashi @__timakin__ • Career • DeNA • Platform Development • Serverside Engineering (Perl)
 • Translimit • Game Development: Craft Warrirors • Game Client Side (Cocos-2dx, C++)
 • Gunosy • Application Dev: LUCRA • Serverside Engineering (Go) • iOS Client Side (Swift) • Engieering • Language: Go (Contributed), Swift • Platform: GAE, AWS

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

"HFOEB w 8IBUJTUFTUDBDIJOH w .ZpSTUDPOUBDUXJUIUIJTGFBUVSF w *NQMFNFOUBUJPO

Slide 5

Slide 5 text

"HFOEB w 8IBUJTUFTUDBDIJOH w .ZpSTUDPOUBDUXJUIUIJTGFBUVSF w *NQMFNFOUBUJPO

Slide 6

Slide 6 text

8IBUJTUFTUDBDIJOH if the test executable and 
 command line match a previous run and 
 the files and environment variables consulted by that run have not changed either, go test will print the previous test output, replacing the elapsed time with the string “(cached).”

Slide 7

Slide 7 text

8IBUJTUFTUDBDIJOH 5IFqBHTFYFDVUBCMFXJUIBDBDIFPQUJPO • -cpu • -list • -parallel • -run • -short • -v

Slide 8

Slide 8 text

8IBUJTUFTUDBDIJOH 5IFqBHUPJHOPSFDBDIJOH • -count=1 %FMFUFDBDIFEIJTUPSZXJUIAHPDMFBOA • go clean -testcache

Slide 9

Slide 9 text

8IBUJTUFTUDBDIJOH Benchmarking, and cpu/mem profiling might slightly change from run to run. So they aren’t cached. /PODBDIFBCMF TUBUFGVM PQUJPOT

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

"HFOEB w 8IBUJTUFTUDBDIJOH w .ZpSTUDPOUBDUXJUIUIJTGFBUVSF w *NQMFNFOUBUJPO

Slide 15

Slide 15 text

.ZpSTUDPOUBDUXJUIUIJTGFBUVSF DNEHPDPWFSBHFQSPpMFTIPVMECFDBDIFE XJUIUFTUT

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

In the process of code-reading and implementing, code is often written near an original caching execution. By chance I’ve read that code before I actually use the caching strategy. DBDIFBCMFDPWFSQSPpMF .ZpSTUDPOUBDUXJUIUIJTGFBUVSF

Slide 21

Slide 21 text

"HFOEB w 8IBUJTUFTUDBDIJOH w .ZpSTUDPOUBDUXJUIUIJTGFBUVSF w *NQMFNFOUBUJPO

Slide 22

Slide 22 text

*NQMFNFOUBUJPO 3FHJTUFSUFTUDPNNBOE

Slide 23

Slide 23 text

*NQMFNFOUBUJPO $PNNBOE*OJUJBMJ[BUJPO

Slide 24

Slide 24 text

*NQMFNFOUBUJPO 4FUVQDBDIFPQUJPOGPSCVJMEJOHBQBDLBHF

Slide 25

Slide 25 text

*NQMFNFOUBUJPO $IFDLBOFYJTUFODFPGDBDIFBSUJGBDUT

Slide 26

Slide 26 text

*NQMFNFOUBUJPO 1BSTFDBDIFFYQJSBUJPOUJNF SVO5FTU

Slide 27

Slide 27 text

*NQMFNFOUBUJPO (FUUIFEFGBVMUEJSQBUIPGDBDIFBSUJGBDUT

Slide 28

Slide 28 text

*NQMFNFOUBUJPO

Slide 29

Slide 29 text

*NQMFNFOUBUJPO 5SZJOHUPVTFDBDIF

Slide 30

Slide 30 text

*NQMFNFOUBUJPO $IFDLXIFUIFSUIFPQUJPOTBSFDBDIFBCMF

Slide 31

Slide 31 text

*NQMFNFOUBUJPO -PBECZUFBSSBZTPGCVJMUUFTUBSUJGBDUT BOEWBMJEBUFUIFFYQJSBUJPOUJNF

Slide 32

Slide 32 text

*NQMFNFOUBUJPO 8SJUFUIFl DBDIFE zTUEPVUJOUPUIFCVGGFS

Slide 33

Slide 33 text

*NQMFNFOUBUJPO AHPDMFBOUFTUDBDIFA

Slide 34

Slide 34 text

-FU`TDBDIF w "MMPGTUBUFMFTTUFTUTXPVMECFDBDIFEBOE IJHIQFSGPSNBODF w (PDBDIFEFQFOETPOCJOBSZDBDIFBOE
 SFDPSEPGUIFFYQJSBUJPOUJNF w *UJTKVTUBOFXGFBUVSFTPMFU`TDPOUSJCVUFUP (P