141115 in Zhuhai
http://zoomq.qiniudn.com/CPyUG/PyCon2014China/141115zh-am1-Wuvist.MP3
欽1:㹊梡(P⯋綘玐线⠚!䋞ㅷ猰䪮
View Slide
Ⱒ✵䧮˖ 线⠚⾲䌢끸倝⸈㗗梡㾀帿㖕˖ ♶倗䫔艗䎃涸Ⰼ畮玐䎸プ• .net -> python -> go˖ ⱄ妃㔐㕂⚌錟⠑⠶• [email protected]
⯋綘玐˖ 䭷厤碫雦皾劼玐䎸涸綘ⱗ鵯碫雦皾劼玐䎸綘ⱗ䧴罏乼紷Ⱖ㸐玐䎸䧴罏荈魧⡲⚹㸐⟌涸侨䰘˖ ♸䩛䊨綘ⱗⰌ鿈➿瀦湱嫱玐䎸プ〳⟄蜦䖤刿넞涸䊨⡲佪桧
⯋綘玐Ⱖ㹊偽㢅♶㖈˖ 剒䌢錛涸⯋綘玐䊨Ⱘ僽綘霖㐼㸐〳⟄㼜玐䎸プ⢪欽넞紩露鎊綘ⱗ涸湱㼆瀊㼭涸玐䎸鲮䰃⚹瘝⟟涸宨綘露鎊䧴罏劼㐼露鎊玐䎸˖ Ⱖ㸐⯋綘玐禹絡ⴭ⯈雽⟄綘玐倰䒭乼紷♧猫露鎊կ㸪禹絡⽰僽鵯呋♧猫皍⽀涸禹絡
$㸪#define list_for_each(pos, head) \for (pos = (head)->next; pos != (head);pos = pos->next)
ˊ雽䒭⠚Go✽翫緸傞➿涸C♴♧⚡C
Go⯋綘玐˖ 加剣㸪˖ 加剣岌㘗˖ 㼘䖎ꦼ欽˖ gopher鵯Ⳝ䎃䖎⸖⸂鍒Ɀ✫雽㢴ⵆ涸露鎊⚥♶㶸㖈涸곿˘˘!饆⹄嵞
溏溏䖎⸖⸂涸gopher 㥵⡦欽py勻㹊梡go涸岌㘗
˖ StringSet♸IntSet➿瀦䖎碫⡃➑碫㘗♶ず˖ 岌㘗涸Ⱙ㘗⢪欽㖞兞
皍⽀ծ磦凐ծ剣佪
荈⸓欰䧭˖ MakeFile˖ 港䱽俒⟝⥝佖HJUIVCDPNHPSBLIBSHPTIXBUDIEPH
ⱄ勻溏溏ORM
䧮⟌欽thrift⡲㼆韌㹁⛐涸DSL
ず♧㼆韌⯋⥌䜂˖ 㟞ⴵ佖叅˖ Ⰼ俒䵂程˖ た〵勉ꣳ• RPC
㼆韌⠛鷻ծ餻⧩ծ儑爙剣㣐ꆀ湱⡃涸➿瀦
˖ ♳鶣➿瀦鿪呏䰘㼆韌⯋⥌䜂欰䧭ⴀ勻˖ 欰䧭涸➿瀦♶⠔ꝡ
㥵⡦㹊梡
鍒區㼆韌• ptsd: github.com/wickman/ptsd• thrift lexer/parser using ply• ply: www.dabeaz.com/ply/• An implementation of lex and yaccparsing tools for Python
➿瀦欰䧭垷匣• www.cheetahtemplate.org
YAML⛲僽㥩⚎銯_
˖ 㹊梡♸ORM碫⡃〫僽䪾DSL➢thrift䰃䧭YAML˖ YAML˖ 邍鴪腊⸂刿䔂˖ 宠➃プ㥩
㢪鿈䱹〡˖ 銳㢴畮㹊梡• web• mobile web• mobile client˖ ぐ畮⚌⸉♧荝⡎靈欽⚌⸉〳腊銳♶ず㼓鄳
㼓鄳➿瀦鿪♶䎾霪➃聘ⱗ
䨾⟄䧮⟌고湡剣♰♰遤➿瀦
˖ ♳鶣➑➑僽怵爙➿瀦˖ 㹊꣢➿瀦銳㢕勇䖤㢴㢴˖ ORM剣䒓彂github.com/sipin/xuanwu˖ ➑⣘罌ծⴗ⺡⢪欽˖ 偽俒咓˖ ♶絶䫡˖ ⰻ鿈䊺䲀⦝ꅾ勻
㥵⡦㹁ⵖ˖ 欰䧭♧妃たꥥ⤑佖˖ ꥥ垷匣⥝佖㢕欰䧭˖ 䲿⣘㹁ⵖ䱹〡倰岁㔐靈˖ 銻渷暵㹁倰岁
˖ 岌㘗ծORMծ崨玐ծ䱹〡㼓鄳瘝瘝㖞兞㖲〳罌贊⯋綘玐˖ 儑搬⛲♶〫♳鶣㖞兞˖ 䪾⯋綘玐錠⚹♧猫ꅾ匬䩛媯˖ ⯓䩛⸓ⱗ♧麑➿瀦˖ 䪾㢕ⴀ梡ծ碫⡃涸➿瀦䬄韌⚹垷匣˖ 鷥䭊DSL˖ Python皍⽀ծ䎽餴彂⚪㺢〳⟄䖎㺂僒涸낉霆⯋綘玐涸䟝岁
⯋綘玐涸ꦼ挿˖ 鷥䭊ざ鷓涸%4-˖ 䲿⣘넞㽻妃䬄韌腊⸂˖ 絶䭯絈蒜㹁ⵖ腊⸂• www.joelonsoftware.com/articles/LeakyAbstractions.html
➿瀦欰䧭˖ 鍒區DSL靈欽垷匣欰䧭➿瀦涸垷䒭䖎㺂僒㹊梡˖ 欰䧭涸鿪僽皍⽀➿瀦㺂僒debug˖ 綘霖㐼唬叅➿瀦
㼘欨荛LISP侅˖ 偽곢ꅾ㢕綘霖˖ 鵘遤傞唬叅ꝡ霴˖ 㹊梡刿剣ꦼ䏞˖ ➿瀦刿⸈礵䊫ծ⠏꧈˖ 儑搬넞㣐♳
–Ken Thompson“When in doubt, use brute force.”
Q & A
Ⱖ㹊˖ Python♶䘯˖ 嫱倰霹⡤낉鵂git涸匧鸟㽠䖎ꦼ䗽hg涸♶䘯˖ ⯋綘玐剒㥩鵮僽鍒區露鎊劥魧• golang.org/pkg/go/parser/˖ HPHFOFSBUF˖ EPDTHPPHMFDPNEPDVNFOUE7-6GK4"%%PP%.IF@,&HQ5&N7VW23V/."&OKH