Slide 1

Slide 1 text

欽1:㹊梡(P⯋綘玐 线⠚!䋞ㅷ猰䪮

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Ⱒ✵䧮 ˖ 线⠚⾲䌢끸倝⸈㗗梡㾀帿㖕 ˖ ♶倗䫔艗䎃涸Ⰼ畮玐䎸プ • .net -> python -> go ˖ ⱄ妃㔐㕂⴯⚌錟⠑⠶ • [email protected]

Slide 4

Slide 4 text

⯋綘玐 ˖ 䭷厤碫雦皾劼玐䎸涸綘ⱗ鵯碫雦皾劼玐䎸綘ⱗ䧴罏 乼紷Ⱖ㸐玐䎸䧴罏荈魧⡲⚹㸐⟌涸侨䰘 ˖ ♸䩛䊨綘ⱗⰌ鿈➿瀦湱嫱玐䎸プ〳⟄蜦䖤刿넞涸䊨 ⡲佪桧

Slide 5

Slide 5 text

⯋綘玐Ⱖ㹊偽㢅♶㖈 ˖ 剒䌢錛涸⯋綘玐䊨Ⱘ僽綘霖㐼㸐〳⟄㼜玐䎸プ⢪欽 넞紩露鎊綘ⱗ涸湱㼆瀊㼭涸玐䎸鲮䰃⚹瘝⟟涸宨綘露 鎊䧴罏劼㐼露鎊玐䎸 ˖ Ⱖ㸐⯋綘玐禹絡ⴭ⯈雽⟄綘玐倰䒭乼紷♧猫露鎊կ㸪 禹絡⽰僽鵯呋♧猫皍⽀涸禹絡

Slide 6

Slide 6 text

$㸪 #define list_for_each(pos, head) \ for (pos = (head)->next; pos != (head); pos = pos->next)

Slide 7

Slide 7 text

ˊ雽䒭⠚ Go✽翫緸傞➿涸C♴♧⚡C

Slide 8

Slide 8 text

Go⯋綘玐 ˖ 加剣㸪 ˖ 加剣岌㘗 ˖ ⿿㼘䖎ꦼ欽 ˖ gopher鵯Ⳝ䎃䖎⸖⸂鍒Ɀ✫雽㢴ⵆ涸露鎊⚥♶ 㶸㖈涸꡼곿˘˘!饆⹄嵞

Slide 9

Slide 9 text

溏溏䖎⸖⸂涸gopher
 㥵⡦欽py勻㹊梡go涸岌㘗

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

˖ StringSet♸IntSet➿瀦䖎碫⡃➑碫㘗♶ず ˖ 岌㘗涸Ⱙ㘗⢪欽㖞兞

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

皍⽀ծ磦凐ծ剣佪

Slide 15

Slide 15 text

荈⸓欰䧭 ˖ MakeFile ˖ 港䱽俒⟝⥝佖HJUIVCDPNHPSBLIBSHPTI XBUDIEPH

Slide 16

Slide 16 text

ⱄ勻溏溏ORM

Slide 17

Slide 17 text

䧮⟌欽thrift⡲㼆韌 㹁⛐涸DSL

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

ず♧㼆韌⯋⥌䜂 ˖ 㟞ⴵ佖叅 ˖ Ⰼ俒䵂程 ˖ た〵勉ꣳ • RPC

Slide 22

Slide 22 text

㼆韌⠛鷻ծ餻⧩ծ儑爙 剣㣐ꆀ湱⡃涸➿瀦

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

˖ ♳鶣➿瀦鿪呏䰘㼆韌⯋⥌䜂欰䧭ⴀ勻 ˖ 欰䧭涸➿瀦♶⠔ꝡ

Slide 28

Slide 28 text

㥵⡦㹊梡

Slide 29

Slide 29 text

鍒區㼆韌 • ptsd: github.com/wickman/ptsd • thrift lexer/parser using ply • ply: www.dabeaz.com/ply/ • An implementation of lex and yacc parsing tools for Python

Slide 30

Slide 30 text

➿瀦欰䧭垷匣 • www.cheetahtemplate.org

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

YAML⛲僽㥩⚎銯_

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

˖ 㹊梡♸ORM碫⡃〫僽䪾DSL➢thrift䰃䧭YAML ˖ YAML ˖ 邍鴪腊⸂刿䔂 ˖ ꨽宠➃プ⿼㥩

Slide 45

Slide 45 text

㢪鿈䱹〡 ˖ ꨽銳㢴畮㹊梡 • web • mobile web • mobile client ˖ ぐ畮⚌⸉♧荝⡎靈欽⚌⸉〳腊꨽銳♶ず㼓鄳

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

㼓鄳➿瀦 鿪♶䎾霪➃聘ⱗ

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

䨾⟄䧮⟌고湡剣♰♰遤➿瀦

Slide 53

Slide 53 text

˖ ♳鶣➑➑僽怵爙➿瀦 ˖ 㹊꣢➿瀦銳㢕勇䖤㢴㢴 ˖ ORM剣䒓彂github.com/sipin/xuanwu ˖ ➑⣘⿬罌ծⴗ⺡⢪欽 ˖ 偽俒咓 ˖ ♶絶䫡 ˖ ⰻ鿈䊺䲀⦝ꅾ勻

Slide 54

Slide 54 text

㥵⡦㹁ⵖ ˖ 欰䧭♧妃た꬗ꥥ⤑佖 ˖ ꥥ垷匣⥝佖⿿㢕欰䧭 ˖ 䲿⣘㹁ⵖ䱹〡倰岁㔐靈 ˖ 銻渷暵㹁倰岁

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

˖ 岌㘗ծORMծ崨玐ծ䱹〡㼓鄳瘝瘝㖞兞㖲〳罌贊⯋綘玐 ˖ 儑搬⛲♶〫♳鶣㖞兞 ˖ 䪾⯋綘玐錠⚹♧猫ꅾ匬䩛媯 ˖ ⯓䩛⸓ⱗ♧麑➿瀦 ˖ 䪾⿿㢕ⴀ梡ծ碫⡃涸➿瀦䬄韌⚹垷匣 ˖ 鷥䭊DSL ˖ Python皍⽀ծ䎽餴彂⚪㺢〳⟄䖎㺂僒涸낉霆⯋綘玐涸䟝岁

Slide 58

Slide 58 text

⯋綘玐涸ꦼ挿 ˖ 鷥䭊ざ鷓涸%4- ˖ 䲿⣘넞㽻妃䬄韌腊⸂ ˖ 絶䭯絈蒜㹁ⵖ腊⸂ • www.joelonsoftware.com/articles/ LeakyAbstractions.html

Slide 59

Slide 59 text

➿瀦欰䧭 ˖ 鍒區DSL靈欽垷匣欰䧭➿瀦涸垷䒭䖎㺂僒㹊梡 ˖ 欰䧭涸鿪僽皍⽀➿瀦㺂僒debug ˖ 綘霖㐼唬叅➿瀦

Slide 60

Slide 60 text

⿿㼘欨荛LISP侅 ˖ 偽곢ꅾ㢕綘霖 ˖ 鵘遤傞唬叅ꝡ霴 ˖ 㹊梡刿剣ꦼ䏞 ˖ ➿瀦刿⸈礵䊫ծ⠏꧈ ˖ 儑搬넞㣐♳

Slide 61

Slide 61 text

–Ken Thompson “When in doubt, use brute force.”

Slide 62

Slide 62 text

Q & A

Slide 63

Slide 63 text

Ⱖ㹊 ˖ Python♶䘯 ˖ 嫱倰霹⡤낉鵂git涸匧鸟㽠䖎ꦼ䗽hg涸♶䘯 ˖ ⯋綘玐剒㥩鵮僽鍒區露鎊劥魧 • golang.org/pkg/go/parser/ ˖ HPHFOFSBUF ˖ EPDTHPPHMFDPNEPDVNFOUE7-6GK4"%%PP%.IF @,&HQ5&N7VW23V/."&OKH