PyCon2014China-Zhuhai-meta programming

6002ee051e03f0b762642ee7fafd111f?s=47 Zoom.Quiet
November 17, 2014

PyCon2014China-Zhuhai-meta programming

6002ee051e03f0b762642ee7fafd111f?s=128

Zoom.Quiet

November 17, 2014
Tweet

Transcript

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

  2. None
  3. Ⱒ✵䧮 ˖ 线⠚⾲䌢끸倝⸈㗗梡㾀帿㖕 ˖ ♶倗䫔艗䎃涸Ⰼ畮玐䎸プ • .net -> python ->

    go ˖ ⱄ妃㔐㕂⴯⚌錟⠑⠶ • wengwei@xipintech.com
  4. ⯋綘玐 ˖ 䭷厤碫雦皾劼玐䎸涸綘ⱗ鵯碫雦皾劼玐䎸綘ⱗ䧴罏 乼紷Ⱖ㸐玐䎸䧴罏荈魧⡲⚹㸐⟌涸侨䰘 ˖ ♸䩛䊨綘ⱗⰌ鿈➿瀦湱嫱玐䎸プ〳⟄蜦䖤刿넞涸䊨 ⡲佪桧

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

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

    != (head); pos = pos->next)
  7. ˊ雽䒭⠚ Go✽翫緸傞➿涸C♴♧⚡C

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

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

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

  12. None
  13. None
  14. 皍⽀ծ磦凐ծ剣佪

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

  16. ⱄ勻溏溏ORM

  17. 䧮⟌欽thrift⡲㼆韌 㹁⛐涸DSL

  18. None
  19. None
  20. None
  21. ず♧㼆韌⯋⥌䜂 ˖ 㟞ⴵ佖叅 ˖ Ⰼ俒䵂程 ˖ た〵勉ꣳ • RPC

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

  23. None
  24. None
  25. None
  26. None
  27. ˖ ♳鶣➿瀦鿪呏䰘㼆韌⯋⥌䜂欰䧭ⴀ勻 ˖ 欰䧭涸➿瀦♶⠔ꝡ

  28. 㥵⡦㹊梡

  29. 鍒區㼆韌 • 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
  30. ➿瀦欰䧭垷匣 • www.cheetahtemplate.org

  31. None
  32. None
  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. YAML⛲僽㥩⚎銯_

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

  45. 㢪鿈䱹〡 ˖ ꨽銳㢴畮㹊梡 • web • mobile web • mobile

    client ˖ ぐ畮⚌⸉♧荝⡎靈欽⚌⸉〳腊꨽銳♶ず㼓鄳
  46. None
  47. None
  48. None
  49. None
  50. 㼓鄳➿瀦 鿪♶䎾霪➃聘ⱗ

  51. None
  52. 䨾⟄䧮⟌고湡剣♰♰遤➿瀦

  53. ˖ ♳鶣➑➑僽怵爙➿瀦 ˖ 㹊꣢➿瀦銳㢕勇䖤㢴㢴 ˖ ORM剣䒓彂github.com/sipin/xuanwu ˖ ➑⣘⿬罌ծⴗ⺡⢪欽 ˖ 偽俒咓

    ˖ ♶絶䫡 ˖ ⰻ鿈䊺䲀⦝ꅾ勻
  54. 㥵⡦㹁ⵖ ˖ 欰䧭♧妃た꬗ꥥ⤑佖 ˖ ꥥ垷匣⥝佖⿿㢕欰䧭 ˖ 䲿⣘㹁ⵖ䱹〡倰岁㔐靈 ˖ 銻渷暵㹁倰岁

  55. None
  56. None
  57. ˖ 岌㘗ծORMծ崨玐ծ䱹〡㼓鄳瘝瘝㖞兞㖲〳罌贊⯋綘玐 ˖ 儑搬⛲♶〫♳鶣㖞兞 ˖ 䪾⯋綘玐錠⚹♧猫ꅾ匬䩛媯 ˖ ⯓䩛⸓ⱗ♧麑➿瀦 ˖ 䪾⿿㢕ⴀ梡ծ碫⡃涸➿瀦䬄韌⚹垷匣

    ˖ 鷥䭊DSL ˖ Python皍⽀ծ䎽餴彂⚪㺢〳⟄䖎㺂僒涸낉霆⯋綘玐涸䟝岁
  58. ⯋綘玐涸ꦼ挿 ˖ 鷥䭊ざ鷓涸%4- ˖ 䲿⣘넞㽻妃䬄韌腊⸂ ˖ 絶䭯絈蒜㹁ⵖ腊⸂ • www.joelonsoftware.com/articles/ LeakyAbstractions.html

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

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

    儑搬넞㣐♳
  61. –Ken Thompson “When in doubt, use brute force.”

  62. Q & A

  63. Ⱖ㹊 ˖ Python♶䘯 ˖ 嫱倰霹⡤낉鵂git涸匧鸟㽠䖎ꦼ䗽hg涸♶䘯 ˖ ⯋綘玐剒㥩鵮僽鍒區露鎊劥魧 • golang.org/pkg/go/parser/ ˖

    HPHFOFSBUF ˖ EPDTHPPHMFDPNEPDVNFOUE7-6GK4"%%PP%.IF @,&HQ5&N7VW23V/."&OKH