Tubi 故事|听说你也是小众技术语言使用者
涓婂洖锛屾垜浠皥鍒颁簡 Tubi 鎷涜仒楂樻按骞冲皬浼楁妧鏈瑷寮鍙戣呯殑鏈夋晥鏂规硶锛涗箣鍚庯紝鎴戜滑閲囪浜 Tubi 灏忎紬鎶鏈瑷宸ョ▼甯堜滑锛屼簡瑙d粬浠浣曞仛鍑轰簡鎶鏈瑷鐨勯夋嫨锛屽湪瀛︿範銆佹眰鑱屽拰涓汉鎶鏈奖鍝嶅姏鎵撻犳柟闈㈢殑缁忛獙銆
鏈枃灏嗕粠姹傝亴鑰 / 寮鍙戣呯殑瑙掑害鍑哄彂锛屼笌浣犲垎浜細 閫夋嫨灏忎紬鎶鏈瑷鎵甯︽潵鐨勬満閬囦笌鎸戞垬Tubi 涓轰粈涔堥夋嫨 Elixir 鍜 Scala 鎼缓鍚庣鏈嶅姟锛烼ubi 涓浗鍥㈤槦鍒涘浜洪檲澶╁湪鍒嗕韩涓彁鍒帮紝闄や簡鑰冭檻鍏跺崜瓒婄殑寮傛涓庨珮骞跺彂鑳藉姏锛岃繕鏈変竴涓緢閲嶈鐨勮冭檻锛岄偅灏辨槸鍩轰簬 Tubi 褰撴椂鐨勪骇鍝佷笌鍝佺墝锛岃兘鍚﹀惛寮曡冻澶熶紭绉鐨勫伐绋嬪笀鍔犲叆銆
2018 骞村墠鍚庯紝Tubi 姝h閲嶆瀯 Ad Server 鍜屽悗绔湇鍔★紝闄堝ぉ鍥炲繂褰撴椂鐨勫満鏅槸杩欐牱鐨勶細鈥滃綋鏃 Tubi 鐨勪富瑕佹妧鏈爤鏄 PHP 鍜 Node.js锛屽湪璇勪及鐨勮繃绋嬩腑锛屾垜浠鍏堝垝鎺変簡 Java 鍜 Node.js锛岃櫧鐒惰繖涓ょ鎶鏈瑷鐨勪汉鎵嶄緵缁欓噺寰堝ぇ锛屼絾楸奸緳娣锋潅锛屼笌澶у叕鍙哥浉姣旓紝褰撴椂鐨 Tubi 澶ф氮娣樻矙锛岃兘鎷涘埌椤跺皷宸ョ▼甯堟槸寰堟湁鍥伴毦鐨勩
鎺ョ潃锛屾垜浠垝鎺変簡 Python锛屽綋鏃 Python 澶勫湪 Python 2 鍒 Python 3 杩佺Щ鐨勬贩娌岃繃绋嬩腑锛屼富娴佺殑妗嗘灦杩樺湪瑙傛湜锛岃屾垜浠嚜宸辫繕缂轰箯澶ц妯″疄璺 Python 鐨勫簳钑淬傚浜庢柊鍏磋瑷锛孏o 骞朵笉璁ㄥ枩鐨勮娉曘佹湁闄愮殑琛ㄨ揪鍔涘拰寰堝瀹炵幇閮藉惧悜浜庣煭骞崇硻鐨勭ぞ鍖轰範鎯紝浣垮緱鎴戜滑寰堟媴蹇冮」鐩仛澶у悗锛屽鏄撲骇鐢熸剰澶у埄闈㈡潯浼肩殑浠g爜锛岄噸韫堟垜浠娇鐢 PHP 鐨勮杈欙紱鑰屽綋鏃跺皻澶勫湪瑗佽涔嬩腑鐨 Rust锛岃櫧鐒舵儕鑹筹紝浣嗗畠澶繃灏忎紬锛屽張鍋忓簳灞傦紝澶冮獙寮鍙戣呯殑瀛︿範鑳藉姏锛屾垜浠緢闅炬妸璧屾敞鍘嬪湪瀹冭韩涓娿
鏈缁堢櫧鏉夸笂鐣欎笅鐨勯夋嫨鏄 Elixir 鍜 Scala锛岃繖涓ょ鎶鏈瑷鐩稿灏忎紬锛屽叕鍙镐竴鑸笉浼氶夌敤杩欐牱鐨勮瑷浣滀负涓昏鎶鏈爤锛岃屾垜浠湪 Tubi 鍐呴儴宸茬粡鍋氫簡涓浜涘弽鍝嶅緢濂界殑灏濊瘯锛屾墍浠ユ垜浠緢鏈変俊蹇冪敤濂藉畠浠紝鍚屾椂锛岀己灏戜簡涓绘祦鍏徃鐨勭珵浜夛紝鎴戜滑涔熸湁鏇村ぇ鐨勬満浼氭嫑鑱樺埌椤跺皷鐨勫伐绋嬪笀銆傗
猬囷笍 鐐瑰嚮鍥剧墖锛孴ubi 姝e湪鎷涜仒 Scala/Java 宸ョ▼甯 猬囷笍
鍚屾牱鍦帮紝涓浣嶇▼搴忓憳閫夋嫨浣跨敤灏忎紬璇█锛屽彲渚涢夋嫨鐨勫伐浣滄満浼氭暟閲忎笉涓瀹氬锛屼絾杩欎篃鎰忓懗鐫涓庝綘褰㈡垚鐩存帴绔炰簤鍏崇郴鐨勫紑鍙戣呮暟閲忕浉瀵硅緝灏戯紝鏇村鐨勫矖浣嶆満浼氬拰宸ヤ綔涓殑椤圭洰鏈轰細鍙互娴佸悜浣犮傚悓鏃讹紝鍦ㄨ緝灏戜汉娑夎冻鐨勫皬浼楄瑷涓帰绱㈠苟娣卞叆锛屾剰鍛崇潃浣犳湁鏇村鐨勫彲鑳芥ф垚涓烘煇涓壒瀹氶鍩熺殑涓撳锛屽湪鏌愪竴缁嗗垎鏂瑰悜淇濇寔绔炰簤浼樺娍銆傞夋嫨灏忎紬鎶鏈瑷锛屼細澧炲姞鑷韩鐨勭嫭鐗逛紭鍔匡紝浣嗗悓鏃朵細涓嶄細甯︽潵瑙嗛噹鐨勭獎鍖栵紵
Tubi 鍚庣宸ョ▼甯 Dave 鍦ㄤ粠浜嬫妧鏈紑鍙戝伐浣滃骞翠箣鍚庯紝鍔犲叆 Tubi 鏃跺喅瀹氫粠 Go 璇█杞埌 Elixir锛屼粬鍧﹁█杩欎竴杞彉鍦ㄥ悓琛屽弸浜虹湅鏉ユ槸鏈夐闄╃殑锛屾瘮濡傚叕鍙镐細涓嶄細鍙槸鐭湡閫夋嫨 Elixir锛屽湪涓涓皬浼楁妧鏈瑷涓婃姇鍏ョ殑鏃堕棿鍜岀簿鍔涗細涓嶄細鐧借垂锛熶絾杩欎簺鐤戦棶鍦 Dave 瀛︿範鍜屼娇鐢 Elixir 鐨勮繃绋嬩腑鐑熸秷浜戞暎锛屼粬璇达細鈥滄垜绔嬪埢琚 Elixir 鐨勭畝鍗曟墍鍚稿紩锛屾劅鍒拌鐢靛嚮涓竴鏍枫傚杩欓棬鏂版妧鏈瑷鐨勬帰绱㈡湰韬氨鏄緢鏈夋敹鑾风殑涓娈电粡鍘嗐傗
猬囷笍 鐐瑰嚮鍥剧墖锛屽惉 Dave 鐨勬洿澶氬垎浜 猬囷笍
涓 Dave 缁忓巻浜嗗悓鏍疯浆鍙樼殑鍚庣宸ョ▼甯 Yilong 鍒欐槸琚 Elixir 鏈韩鐨勫姛鑳藉拰寮鍙戜綋楠屾墍淇樿幏锛屼粬璇达細鈥滀娇鐢ㄤ簡 Elixir 涓娈垫椂闂村悗锛屾垜鎰熷彈鍒颁簡瀹冩祿閮佺殑鍑芥暟寮忕紪绋嬮鏍煎拰 immutable 鍙橀噺鐨勫ソ澶勶紝鍙互閬垮厤寰堝涓嶅繀瑕佺殑楹荤儲銆傚悓鏃讹紝Elixir 鐢熸佺郴缁熶腑鏈夎澶氬叡浜殑搴撳拰 convention銆備緥濡傦紝鎴戠洰鍓嶆墍瑙佺殑绗笁鏂瑰簱閮戒娇鐢ㄩ泦鎴 Ecto 杩涜鏁版嵁搴撴搷浣滐紝杩欏浜 Elixir 鐨勭敓鎬佸彂灞曢潪甯搁噸瑕併傚涔犱竴涓柊鐨勫簱锛屽彧闇瑕佹帉鎻″叾鐙壒閮ㄥ垎锛屽叾浣欓儴鍒嗛兘鏄啛鎮夌殑銆傛荤殑鏉ヨ锛岄櫎浜嗗姩鎬佺被鍨嬪彲鑳藉鑷撮噸鏋勪唬鐮佹椂鏈夌偣鍥伴毦澶栵紝浣跨敤 Elixir 鐨勪綋楠岄潪甯镐笉閿欍傗濅笌涓旈夋嫨灏忎紬鎶鏈瑷鐨勫伐绋嬪笀鐩告瘮锛屽湪鑱屼笟鍒濇湡渚夸娇鐢ㄥ皬浼楄瑷鐨勫伐绋嬪笀鑷甫涓浠戒粠瀹广
Tubi Director of Software Engineering, Taotao 褰撹闂強鈥滄垚涓哄皬浼楄瑷寮鍙戣呬細鏈変粈涔堜紭鍔垮拰鎸戞垬鈥濇椂锛屼粬璇达細鈥滄垜鑷鑷崇粓閮藉湪浣跨敤杈冧负灏忎紬鐨勬妧鏈瑷锛屾棭骞翠篃浼氭媴蹇冭繖浼氫笉浼氬奖鍝嶆垜鐨勮亴涓氬彂灞曘備絾鏄紝闅忕潃宸ヤ綔缁忛獙鐨勫鍔狅紝灏ゅ叾鏄湪鍩虹鐭ヨ瘑銆佺郴缁熺煡璇嗐佹灦鏋勮璁″拰瑙e喅闂鏂归潰鐨勭Н绱紝鎴戣涓轰娇鐢ㄥ摢绉嶆妧鏈瑷骞朵笉浼氭垚涓鸿亴涓氬彂灞曠殑闃荤銆傜浉瀵逛簬浣跨敤浣曠鎶鏈瑷锛屾洿鍏抽敭鐨勬槸瑙e喅闂鐨勮兘鍔涖傜湡鐨勪笉闇瑕佸皢璇█鐪嬬殑澶噸锛岃瑷鍙槸涓闂ㄥ伐鍏凤紝鐢ㄥ緱瓒佹墜灏辫銆傗
Elixir-gRPC & Elixir-Protobuf 浣滆 Tony Han锛屼篃鏄粠 Tubi 姣曚笟鐨勬牎鍙嬶紝浠栦篃璁ゅ悓鈥滅浉瀵逛簬鎶鏈瑷鏈韩锛岃嚜韬殑鎶鏈按骞充笌褰卞搷鍔涗篃寰堝叧閿濓紝浠栬繘涓姝ヨВ閲婅锛氣滀换浣曚竴闂ㄦ妧鏈瑷閮芥湁閫傜敤鐨勫満鏅紝涓瀹跺叕鍙镐細閫夋嫨浣跨敤灏忎紬璇█锛岃鏄庝簡杩欏鍏徃璁や负杩欓棬璇█姣旇緝濂戝悎瀹冪殑鐢熶骇鍦烘櫙锛岃屼竴浣嶇簿閫氳繖闂ㄨ瑷鐨勫紑鍙戣呬竴瀹氫篃鏄兂鍋氳繖浜涘満鏅殑浜嬫儏鐨勶紝濡傛鏉ョ湅锛屽紑鍙戣呭弽鑰屾洿瀹规槗鎵惧埌鍚堥傜殑宸ヤ綔銆傚綋鐒讹紝鍓嶆彁鏄繖浣嶅紑鍙戣呯殑鎶鏈兘鍔涘緢寮猴紝鍏朵粬鑳藉姏涔熷己锛屼綘鍒氬ソ浼氬叕鍙告墍闇瑕佺殑杩欓棬灏忎紬鎶鏈瑷鏈夋椂鍊欏彧鏄竴涓姞鍒嗛」銆傗濃瑖锔 鐐瑰嚮鍥剧墖锛岄槄璇 Elixir-gRPC 鎶鏈崥瀹 猬囷笍
瀛︿範涓闂ㄥ皬浼楁妧鏈瑷鐨勭嫭鐗硅矾寰勪綘浼氬紑濮嬪涔犱竴闂ㄥ皬浼楄瑷锛岄氬父鏄洜涓轰綘琚畠鐨勬煇浜涚嫭鐗圭壒鎬ф墍鍚稿紩锛屾垨鑰呮槸瀹冭兘瑙e喅鏌愪簺闂銆傚湪 Erlang / Elixir / Rust 閮芥湁涓嶉敊绉疮鍜屾妧鏈奖鍝嶇殑 Tubi 鏍″弸 Tony Han 鍦ㄨ皥鍙婅嚜宸辨帉鎻′竴闂ㄥ皬浼楁妧鏈瑷鐨勭粡楠屾椂锛屽垎浜锛氣滄垜瀛︿範 Elixir锛屾槸鍥犱负瀹冨彲浠ユ彁渚涘熀浜 Erlang 鐨勫己澶у苟鍙戣兘鍔涗互鍙婄畝娲佹槗鐢ㄧ殑璇硶绛夈傚湪瀛︿範杩囩▼涓紝鎴戜細灏 Elixir 涓庢垜浜嗚В鐨勫叾浠栬瑷鍋氭瘮杈冿紝杈ㄥ埆 Elixir 鐨勪紭鍔夸笌涓嶈冻銆傞殢鐫杩涗竴姝ユ繁鍏ュ涔狅紝鏈濂藉彲浠ュ啓涓浜涘叿浣撶殑椤圭洰銆傗濊繖涓瀛︿範璺緞锛屽叾瀹炰笌鎺屾彙涓闂ㄤ富娴佹妧鏈瑷鐨勮矾寰勫嚑涔庝竴鏍枫備笉鍚屼箣澶勫湪浜庯紝灏忎紬鎶鏈瑷鍙緵寮鍙戣呭涔犱笌鐮旂┒鐨勭敓浜у疄璺电敤渚嬨佸伐鍏峰拰搴撴柟闈㈢殑鏀寔浼氱浉瀵硅緝灏戯紝鐢氳嚦寰堝璧勬簮閮芥槸鑻辨枃鐨勶紝瀛︿範闅惧害鍐嶆澧炲姞銆傛鏃讹紝寮婧愮ぞ鍖轰究鍙互鍦ㄨ繖浜涙柟闈㈠彂鎸ヤ竴浜涜ˉ鍏呬綔鐢ㄣ傚湪 Tubi 璧炲姪缁勭粐 Elixir & Scala Meetup 涔嬪墠锛孍lixir 鍜 Scala 涓枃绀惧尯宸茬粡鏈変簡涓嶅皯娲昏穬鐢ㄦ埛銆俆ubi 浣滀负浣跨敤 Elixir / Scala 鐨勬渶澶у叕鍙镐箣涓锛屽湪杩欎袱涓妧鏈ぞ鍖轰腑璐$尞浜嗗ぇ閲忕殑鐢熶骇瀹炶返鐢ㄤ緥鍜屽紑婧愰」鐩紝涓鸿繖涓ら棬鎶鏈瑷鐨勭埍濂借呰ˉ鍏呬簡涓板瘜鐨勫涔犺祫婧愩
猬囷笍 鐐瑰嚮鍥剧墖锛岄槄璇 Scala Meetup 寰鏈熷洖椤 猬囷笍
灏忎紬鎶鏈瑷閫氬父鍏锋湁杈冨皬鐨勭敓鎬佺郴缁熷拰绀惧尯鏀寔锛岃繖鎰忓懗鐫寮鍙戣呭彲浠ユ洿杞绘澗鍦版帉鎻¤繖浜涜瑷鐨勫熀纭鐭ヨ瘑锛屽苟鍦ㄩ」鐩腑蹇熷簲鐢紱浣嗗悓鏃讹紝鍥犱负灏忎紬璇█绀惧尯鐨勫弸濂戒笌鐏垫椿锛屽緢澶氬紑鍙戣呮湁鏈轰細鍦ㄦ棭鏈熸繁搴﹀弬涓庡埌鍚勭寮婧愰」鐩腑锛屾妧鏈瑷鐨勮凯浠i熷害涔熶細鏇村揩锛岄渶瑕佹寔缁湴瀛︿範銆俆ubi Senior Tech Lead, Yiming 鍦ㄨВ鍐充簡涓涓綔钘忓湪 Elixir 浠g爜搴撻噷 7 骞寸殑鎬ц兘闂鏃讹紝鍧﹁█锛氣滃悜 Elixir 璐$尞 PR 鍙兘鏄竴涓紑鍙戣呰兘浜彈鍒扮殑鏈濂界殑寮婧愪綋楠屼簡鈥斺 10 鍒嗛挓涓嶅埌锛屼綘鐨勪唬鐮佸氨琚悎骞惰繘涓诲共鍒嗘敮浜嗭紒鈥 Yiming 涔熷湪涓娆″張涓娆$殑璐$尞涓缓绔嬩簡鑷繁鍦 Elixir 棰嗗煙鐨勬妧鏈奖鍝嶅姏锛屾垚涓轰簡涓浗鍦板尯澶氫釜 Elixir Meetup 鐨勫垎浜槈瀹撅紝鐢氳嚦鎴愪负浜 2022 Elixir US Conf 澶т細涓婂敮涓鐨勪腑鍥藉垎浜呫
猬囷笍 鐐瑰嚮鍥剧墖锛岃鐪 Yiming 鍒嗕韩 猬囷笍
缁间笂锛屾帉鎻$敋鑷崇簿閫氫竴闂ㄦ妧鏈瑷锛屾渶濂界殑鏂规硶杩樻槸鍙備笌鐢氳嚦璐$尞寮婧愮ぞ鍖猴紝鎵惧埌鏈夌潃鍚屾牱鎰熷叴瓒g殑浜猴紝鍦ㄤ氦娴佷笌瀹炶返涓繁鍏ヨ嚜宸辩殑鐞嗚В銆傚鍑芥暟寮忕紪绋嬫湁鍏磋叮鐨勫紑鍙戣咃紝灏ゅ叾鏄 Elixir / Scala 寮鍙戣咃紝娆㈣繋鐣欒█锛屽姞鍏 Tubi 璧炲姪涓庣粍缁囩殑 Meetup 涓紒
鎶鏈瑷灏忎紬姹傝亴涔嬭矾涔熶笉浼犵粺
濡傛灉浣犺繕璁板緱 Tubi 閽堝鍥㈤槦浣跨敤鐨勬妧鏈爤灏忎紬甯︽潵鐨勬嫑鑱橀毦鑰岄噰鐢ㄧ殑鏂规硶锛屼綘渚夸細鍗佸垎娓呮锛屼綔涓轰娇鐢ㄥ皬浼楁妧鏈瑷鐨勫紑鍙戣咃紝浣犲彲浠ュ幓鍝噷鎵惧埌鍚堥傜殑宸ヤ綔銆
绗竴锛屸滄贩绀惧尯鈥濄傚弬涓庝笌浣犱娇鐢ㄧ殑灏忎紬鎶鏈瑷鐩稿叧鐨勫紑婧愰」鐩拰绀惧尯锛岀Н鏋佽础鐚唬鐮佸拰鍙備笌璁ㄨ锛屼笉浠呭彲浠ュ府鍔╀綘蹇熷涔犳彁鍗囪嚜宸憋紝涔熸湁鍙兘寮曡捣娼滃湪闆囦富鐨勫叧娉ㄣ傝澶氬叕鍙稿湪鎼缓鏈嶅姟鏃朵細浠庡紑婧愰」鐩腑鑾风泭锛屽浜庡紑婧愰」鐩殑閲嶈璐$尞鑰呰嚜鐒朵細浜х敓寰堝ソ鐨勫嵃璞°備簨瀹炰笂锛岄氳繃杩欑閫旂粡琚泧涓诲彂鐜板苟閭璇峰姞鍏ュ洟闃熸槸寰堝父瑙佺殑銆
杈冩棭鏈熷姞鍏 Tubi 鍐 Elixir 鐨 Tony Han 鍦ㄥ涔 Elixir 鏃讹紝瀵逛紭绉鐨勫紑婧愰」鐩兘浼氱Н鏋佸叧娉紝鍏朵腑灏卞寘鎷 Maru 杩欎釜椤圭洰銆俆ony 鍒嗕韩璇达細鈥滄垜鍙戠幇 Maru 杩欎釜椤圭洰鍘熸潵涔熸槸鍥戒汉鍐欑殑锛屽氨浼氱壒鍒暀鎰忥紝鐢氳嚦鍚庨潰鎵惧埌浜嗘満浼氫笌杩欎竴椤圭洰鐨勪綔鑰呮垚涓轰簡鈥樼綉鍙嬧欙紝鑰岃繖浣嶄綔鑰呭綋鏃跺氨鍦 Tubi 缇庡浗鎬婚儴宸ヤ綔锛岄氳繃浠栨垜鐭ラ亾浜 Tubi 涓浗鍥㈤槦姝e湪鎷涜仒 Elixir 宸ョ▼甯堛傛垜鑷繁鍏跺疄涔熸湁寮鍙 Elixir-gRPC 鐩稿叧鐨勯」鐩紝璧峰垵杩欎釜椤圭洰鍋忓疄楠屾ц川锛屾垜鑷繁灏嗗畠褰撲綔涓涓涔犻」鐩潵鍐欑殑锛涘悗鏉ュ惉璇 Tubi 鎯冲皾璇曞皢 Elixir-gRPC 鐢ㄥ湪鍏徃鍐呴儴椤圭洰涓紝缁忚繃涓庝竴浜 Tubi 浼樼宸ョ▼甯堢殑浜ゆ祦锛屾垜鎰熻浼氬緢鏈夋剰鎬濓紝骞茶剢鐩存帴鍔犲叆浜 Tubi 锛屽叏鑱屽啓 Elixir銆傗
绗簩锛屼笌浣跨敤灏忎紬鎶鏈瑷鐨勫叕鍙告垨椤圭洰寤虹珛鐩存帴鑱旂郴锛岃繖涔熸槸鑾峰緱灏变笟鏈轰細鏈楂樻晥鐨勮矾寰勪簡銆俆ubi 璧炲姪骞剁粍缁囩殑 Elixir Meetup 涓紝姣忎竴鍦烘椿鍔ㄩ兘鏈 3-4 浣嶆潵鑷笉鍚屽叕鍙告垨椤圭洰鐨勫紑鍙戣呭甫鏉ュ垎浜紝閫氳繃杩欎簺椤圭洰鎴戜滑鍙互璁よ瘑寰堝杩愮敤 Elixir 鏋勫缓鐨勭郴缁熷拰鏈嶅姟锛屼篃璁よ瘑杩欎簺椤圭洰鐨勬牳蹇冭礋璐d汉锛屽揩蹇暀瑷鍔犲叆 Tubi 璧炲姪涓庣粍缁囩殑鍑芥暟寮忕紪绋 Meetup锛屼负鑷繁鍒涢犳洿澶氱殑鑱屼笟鏈轰細锛
绗笁鐐规槸鏈鍊煎緱浣犲叧娉ㄧ殑銆傚洜涓烘棤璁轰綘鏈夊灏戞眰鑱岃矾寰勩佷娇鐢ㄥ摢涓闂ㄦ妧鏈瑷锛屾寔缁Н绱妧鏈粡楠屼笌鑳藉姏锛屽苟閫愭鎵撻犱釜浜烘妧鏈奖鍝嶅姏鎬绘槸鏈鍏抽敭鐨勩
娆茬煡濡備綍鏈夋晥鍦版墦閫犱釜浜烘妧鏈奖鍝嶅姏锛岃鍚笅鍥炲垎浜紒馃専鏄熸爣鍏虫敞鍏紬鍙凤紝鍚 Tubi 涓浗鍥㈤槦鐨勫悓浜嬩滑璁叉晠浜嬨
鐐瑰嚮鍘熸枃锛屽姞鍏ubi锛
鏈枃灏嗕粠姹傝亴鑰 / 寮鍙戣呯殑瑙掑害鍑哄彂锛屼笌浣犲垎浜細
閫夋嫨灏忎紬鎶鏈瑷鎵甯︽潵鐨勬満閬囦笌鎸戞垬
瀛︿範灏忎紬鎶鏈瑷鐨勭嫭鐗硅矾寰
鎶鏈瑷灏忎紬锛屾眰鑱屼箣璺篃涓嶄紶缁
2018 骞村墠鍚庯紝Tubi 姝h閲嶆瀯 Ad Server 鍜屽悗绔湇鍔★紝闄堝ぉ鍥炲繂褰撴椂鐨勫満鏅槸杩欐牱鐨勶細鈥滃綋鏃 Tubi 鐨勪富瑕佹妧鏈爤鏄 PHP 鍜 Node.js锛屽湪璇勪及鐨勮繃绋嬩腑锛屾垜浠鍏堝垝鎺変簡 Java 鍜 Node.js锛岃櫧鐒惰繖涓ょ鎶鏈瑷鐨勪汉鎵嶄緵缁欓噺寰堝ぇ锛屼絾楸奸緳娣锋潅锛屼笌澶у叕鍙哥浉姣旓紝褰撴椂鐨 Tubi 澶ф氮娣樻矙锛岃兘鎷涘埌椤跺皷宸ョ▼甯堟槸寰堟湁鍥伴毦鐨勩
鎺ョ潃锛屾垜浠垝鎺変簡 Python锛屽綋鏃 Python 澶勫湪 Python 2 鍒 Python 3 杩佺Щ鐨勬贩娌岃繃绋嬩腑锛屼富娴佺殑妗嗘灦杩樺湪瑙傛湜锛岃屾垜浠嚜宸辫繕缂轰箯澶ц妯″疄璺 Python 鐨勫簳钑淬傚浜庢柊鍏磋瑷锛孏o 骞朵笉璁ㄥ枩鐨勮娉曘佹湁闄愮殑琛ㄨ揪鍔涘拰寰堝瀹炵幇閮藉惧悜浜庣煭骞崇硻鐨勭ぞ鍖轰範鎯紝浣垮緱鎴戜滑寰堟媴蹇冮」鐩仛澶у悗锛屽鏄撲骇鐢熸剰澶у埄闈㈡潯浼肩殑浠g爜锛岄噸韫堟垜浠娇鐢 PHP 鐨勮杈欙紱鑰屽綋鏃跺皻澶勫湪瑗佽涔嬩腑鐨 Rust锛岃櫧鐒舵儕鑹筹紝浣嗗畠澶繃灏忎紬锛屽張鍋忓簳灞傦紝澶冮獙寮鍙戣呯殑瀛︿範鑳藉姏锛屾垜浠緢闅炬妸璧屾敞鍘嬪湪瀹冭韩涓娿
鏈缁堢櫧鏉夸笂鐣欎笅鐨勯夋嫨鏄 Elixir 鍜 Scala锛岃繖涓ょ鎶鏈瑷鐩稿灏忎紬锛屽叕鍙镐竴鑸笉浼氶夌敤杩欐牱鐨勮瑷浣滀负涓昏鎶鏈爤锛岃屾垜浠湪 Tubi 鍐呴儴宸茬粡鍋氫簡涓浜涘弽鍝嶅緢濂界殑灏濊瘯锛屾墍浠ユ垜浠緢鏈変俊蹇冪敤濂藉畠浠紝鍚屾椂锛岀己灏戜簡涓绘祦鍏徃鐨勭珵浜夛紝鎴戜滑涔熸湁鏇村ぇ鐨勬満浼氭嫑鑱樺埌椤跺皷鐨勫伐绋嬪笀銆傗
猬囷笍 鐐瑰嚮鍥剧墖锛孴ubi 姝e湪鎷涜仒 Scala/Java 宸ョ▼甯 猬囷笍
鍚屾牱鍦帮紝涓浣嶇▼搴忓憳閫夋嫨浣跨敤灏忎紬璇█锛屽彲渚涢夋嫨鐨勫伐浣滄満浼氭暟閲忎笉涓瀹氬锛屼絾杩欎篃鎰忓懗鐫涓庝綘褰㈡垚鐩存帴绔炰簤鍏崇郴鐨勫紑鍙戣呮暟閲忕浉瀵硅緝灏戯紝鏇村鐨勫矖浣嶆満浼氬拰宸ヤ綔涓殑椤圭洰鏈轰細鍙互娴佸悜浣犮傚悓鏃讹紝鍦ㄨ緝灏戜汉娑夎冻鐨勫皬浼楄瑷涓帰绱㈠苟娣卞叆锛屾剰鍛崇潃浣犳湁鏇村鐨勫彲鑳芥ф垚涓烘煇涓壒瀹氶鍩熺殑涓撳锛屽湪鏌愪竴缁嗗垎鏂瑰悜淇濇寔绔炰簤浼樺娍銆傞夋嫨灏忎紬鎶鏈瑷锛屼細澧炲姞鑷韩鐨勭嫭鐗逛紭鍔匡紝浣嗗悓鏃朵細涓嶄細甯︽潵瑙嗛噹鐨勭獎鍖栵紵
Tubi 鍚庣宸ョ▼甯 Dave 鍦ㄤ粠浜嬫妧鏈紑鍙戝伐浣滃骞翠箣鍚庯紝鍔犲叆 Tubi 鏃跺喅瀹氫粠 Go 璇█杞埌 Elixir锛屼粬鍧﹁█杩欎竴杞彉鍦ㄥ悓琛屽弸浜虹湅鏉ユ槸鏈夐闄╃殑锛屾瘮濡傚叕鍙镐細涓嶄細鍙槸鐭湡閫夋嫨 Elixir锛屽湪涓涓皬浼楁妧鏈瑷涓婃姇鍏ョ殑鏃堕棿鍜岀簿鍔涗細涓嶄細鐧借垂锛熶絾杩欎簺鐤戦棶鍦 Dave 瀛︿範鍜屼娇鐢 Elixir 鐨勮繃绋嬩腑鐑熸秷浜戞暎锛屼粬璇达細鈥滄垜绔嬪埢琚 Elixir 鐨勭畝鍗曟墍鍚稿紩锛屾劅鍒拌鐢靛嚮涓竴鏍枫傚杩欓棬鏂版妧鏈瑷鐨勬帰绱㈡湰韬氨鏄緢鏈夋敹鑾风殑涓娈电粡鍘嗐傗
猬囷笍 鐐瑰嚮鍥剧墖锛屽惉 Dave 鐨勬洿澶氬垎浜 猬囷笍
涓 Dave 缁忓巻浜嗗悓鏍疯浆鍙樼殑鍚庣宸ョ▼甯 Yilong 鍒欐槸琚 Elixir 鏈韩鐨勫姛鑳藉拰寮鍙戜綋楠屾墍淇樿幏锛屼粬璇达細鈥滀娇鐢ㄤ簡 Elixir 涓娈垫椂闂村悗锛屾垜鎰熷彈鍒颁簡瀹冩祿閮佺殑鍑芥暟寮忕紪绋嬮鏍煎拰 immutable 鍙橀噺鐨勫ソ澶勶紝鍙互閬垮厤寰堝涓嶅繀瑕佺殑楹荤儲銆傚悓鏃讹紝Elixir 鐢熸佺郴缁熶腑鏈夎澶氬叡浜殑搴撳拰 convention銆備緥濡傦紝鎴戠洰鍓嶆墍瑙佺殑绗笁鏂瑰簱閮戒娇鐢ㄩ泦鎴 Ecto 杩涜鏁版嵁搴撴搷浣滐紝杩欏浜 Elixir 鐨勭敓鎬佸彂灞曢潪甯搁噸瑕併傚涔犱竴涓柊鐨勫簱锛屽彧闇瑕佹帉鎻″叾鐙壒閮ㄥ垎锛屽叾浣欓儴鍒嗛兘鏄啛鎮夌殑銆傛荤殑鏉ヨ锛岄櫎浜嗗姩鎬佺被鍨嬪彲鑳藉鑷撮噸鏋勪唬鐮佹椂鏈夌偣鍥伴毦澶栵紝浣跨敤 Elixir 鐨勪綋楠岄潪甯镐笉閿欍傗濅笌涓旈夋嫨灏忎紬鎶鏈瑷鐨勫伐绋嬪笀鐩告瘮锛屽湪鑱屼笟鍒濇湡渚夸娇鐢ㄥ皬浼楄瑷鐨勫伐绋嬪笀鑷甫涓浠戒粠瀹广
Tubi Director of Software Engineering, Taotao 褰撹闂強鈥滄垚涓哄皬浼楄瑷寮鍙戣呬細鏈変粈涔堜紭鍔垮拰鎸戞垬鈥濇椂锛屼粬璇达細鈥滄垜鑷鑷崇粓閮藉湪浣跨敤杈冧负灏忎紬鐨勬妧鏈瑷锛屾棭骞翠篃浼氭媴蹇冭繖浼氫笉浼氬奖鍝嶆垜鐨勮亴涓氬彂灞曘備絾鏄紝闅忕潃宸ヤ綔缁忛獙鐨勫鍔狅紝灏ゅ叾鏄湪鍩虹鐭ヨ瘑銆佺郴缁熺煡璇嗐佹灦鏋勮璁″拰瑙e喅闂鏂归潰鐨勭Н绱紝鎴戣涓轰娇鐢ㄥ摢绉嶆妧鏈瑷骞朵笉浼氭垚涓鸿亴涓氬彂灞曠殑闃荤銆傜浉瀵逛簬浣跨敤浣曠鎶鏈瑷锛屾洿鍏抽敭鐨勬槸瑙e喅闂鐨勮兘鍔涖傜湡鐨勪笉闇瑕佸皢璇█鐪嬬殑澶噸锛岃瑷鍙槸涓闂ㄥ伐鍏凤紝鐢ㄥ緱瓒佹墜灏辫銆傗
Elixir-gRPC & Elixir-Protobuf 浣滆 Tony Han锛屼篃鏄粠 Tubi 姣曚笟鐨勬牎鍙嬶紝浠栦篃璁ゅ悓鈥滅浉瀵逛簬鎶鏈瑷鏈韩锛岃嚜韬殑鎶鏈按骞充笌褰卞搷鍔涗篃寰堝叧閿濓紝浠栬繘涓姝ヨВ閲婅锛氣滀换浣曚竴闂ㄦ妧鏈瑷閮芥湁閫傜敤鐨勫満鏅紝涓瀹跺叕鍙镐細閫夋嫨浣跨敤灏忎紬璇█锛岃鏄庝簡杩欏鍏徃璁や负杩欓棬璇█姣旇緝濂戝悎瀹冪殑鐢熶骇鍦烘櫙锛岃屼竴浣嶇簿閫氳繖闂ㄨ瑷鐨勫紑鍙戣呬竴瀹氫篃鏄兂鍋氳繖浜涘満鏅殑浜嬫儏鐨勶紝濡傛鏉ョ湅锛屽紑鍙戣呭弽鑰屾洿瀹规槗鎵惧埌鍚堥傜殑宸ヤ綔銆傚綋鐒讹紝鍓嶆彁鏄繖浣嶅紑鍙戣呯殑鎶鏈兘鍔涘緢寮猴紝鍏朵粬鑳藉姏涔熷己锛屼綘鍒氬ソ浼氬叕鍙告墍闇瑕佺殑杩欓棬灏忎紬鎶鏈瑷鏈夋椂鍊欏彧鏄竴涓姞鍒嗛」銆傗濃瑖锔 鐐瑰嚮鍥剧墖锛岄槄璇 Elixir-gRPC 鎶鏈崥瀹 猬囷笍
瀛︿範涓闂ㄥ皬浼楁妧鏈瑷鐨勭嫭鐗硅矾寰勪綘浼氬紑濮嬪涔犱竴闂ㄥ皬浼楄瑷锛岄氬父鏄洜涓轰綘琚畠鐨勬煇浜涚嫭鐗圭壒鎬ф墍鍚稿紩锛屾垨鑰呮槸瀹冭兘瑙e喅鏌愪簺闂銆傚湪 Erlang / Elixir / Rust 閮芥湁涓嶉敊绉疮鍜屾妧鏈奖鍝嶇殑 Tubi 鏍″弸 Tony Han 鍦ㄨ皥鍙婅嚜宸辨帉鎻′竴闂ㄥ皬浼楁妧鏈瑷鐨勭粡楠屾椂锛屽垎浜锛氣滄垜瀛︿範 Elixir锛屾槸鍥犱负瀹冨彲浠ユ彁渚涘熀浜 Erlang 鐨勫己澶у苟鍙戣兘鍔涗互鍙婄畝娲佹槗鐢ㄧ殑璇硶绛夈傚湪瀛︿範杩囩▼涓紝鎴戜細灏 Elixir 涓庢垜浜嗚В鐨勫叾浠栬瑷鍋氭瘮杈冿紝杈ㄥ埆 Elixir 鐨勪紭鍔夸笌涓嶈冻銆傞殢鐫杩涗竴姝ユ繁鍏ュ涔狅紝鏈濂藉彲浠ュ啓涓浜涘叿浣撶殑椤圭洰銆傗濊繖涓瀛︿範璺緞锛屽叾瀹炰笌鎺屾彙涓闂ㄤ富娴佹妧鏈瑷鐨勮矾寰勫嚑涔庝竴鏍枫備笉鍚屼箣澶勫湪浜庯紝灏忎紬鎶鏈瑷鍙緵寮鍙戣呭涔犱笌鐮旂┒鐨勭敓浜у疄璺电敤渚嬨佸伐鍏峰拰搴撴柟闈㈢殑鏀寔浼氱浉瀵硅緝灏戯紝鐢氳嚦寰堝璧勬簮閮芥槸鑻辨枃鐨勶紝瀛︿範闅惧害鍐嶆澧炲姞銆傛鏃讹紝寮婧愮ぞ鍖轰究鍙互鍦ㄨ繖浜涙柟闈㈠彂鎸ヤ竴浜涜ˉ鍏呬綔鐢ㄣ傚湪 Tubi 璧炲姪缁勭粐 Elixir & Scala Meetup 涔嬪墠锛孍lixir 鍜 Scala 涓枃绀惧尯宸茬粡鏈変簡涓嶅皯娲昏穬鐢ㄦ埛銆俆ubi 浣滀负浣跨敤 Elixir / Scala 鐨勬渶澶у叕鍙镐箣涓锛屽湪杩欎袱涓妧鏈ぞ鍖轰腑璐$尞浜嗗ぇ閲忕殑鐢熶骇瀹炶返鐢ㄤ緥鍜屽紑婧愰」鐩紝涓鸿繖涓ら棬鎶鏈瑷鐨勭埍濂借呰ˉ鍏呬簡涓板瘜鐨勫涔犺祫婧愩
猬囷笍 鐐瑰嚮鍥剧墖锛岄槄璇 Scala Meetup 寰鏈熷洖椤 猬囷笍
灏忎紬鎶鏈瑷閫氬父鍏锋湁杈冨皬鐨勭敓鎬佺郴缁熷拰绀惧尯鏀寔锛岃繖鎰忓懗鐫寮鍙戣呭彲浠ユ洿杞绘澗鍦版帉鎻¤繖浜涜瑷鐨勫熀纭鐭ヨ瘑锛屽苟鍦ㄩ」鐩腑蹇熷簲鐢紱浣嗗悓鏃讹紝鍥犱负灏忎紬璇█绀惧尯鐨勫弸濂戒笌鐏垫椿锛屽緢澶氬紑鍙戣呮湁鏈轰細鍦ㄦ棭鏈熸繁搴﹀弬涓庡埌鍚勭寮婧愰」鐩腑锛屾妧鏈瑷鐨勮凯浠i熷害涔熶細鏇村揩锛岄渶瑕佹寔缁湴瀛︿範銆俆ubi Senior Tech Lead, Yiming 鍦ㄨВ鍐充簡涓涓綔钘忓湪 Elixir 浠g爜搴撻噷 7 骞寸殑鎬ц兘闂鏃讹紝鍧﹁█锛氣滃悜 Elixir 璐$尞 PR 鍙兘鏄竴涓紑鍙戣呰兘浜彈鍒扮殑鏈濂界殑寮婧愪綋楠屼簡鈥斺 10 鍒嗛挓涓嶅埌锛屼綘鐨勪唬鐮佸氨琚悎骞惰繘涓诲共鍒嗘敮浜嗭紒鈥 Yiming 涔熷湪涓娆″張涓娆$殑璐$尞涓缓绔嬩簡鑷繁鍦 Elixir 棰嗗煙鐨勬妧鏈奖鍝嶅姏锛屾垚涓轰簡涓浗鍦板尯澶氫釜 Elixir Meetup 鐨勫垎浜槈瀹撅紝鐢氳嚦鎴愪负浜 2022 Elixir US Conf 澶т細涓婂敮涓鐨勪腑鍥藉垎浜呫
猬囷笍 鐐瑰嚮鍥剧墖锛岃鐪 Yiming 鍒嗕韩 猬囷笍
缁间笂锛屾帉鎻$敋鑷崇簿閫氫竴闂ㄦ妧鏈瑷锛屾渶濂界殑鏂规硶杩樻槸鍙備笌鐢氳嚦璐$尞寮婧愮ぞ鍖猴紝鎵惧埌鏈夌潃鍚屾牱鎰熷叴瓒g殑浜猴紝鍦ㄤ氦娴佷笌瀹炶返涓繁鍏ヨ嚜宸辩殑鐞嗚В銆傚鍑芥暟寮忕紪绋嬫湁鍏磋叮鐨勫紑鍙戣咃紝灏ゅ叾鏄 Elixir / Scala 寮鍙戣咃紝娆㈣繋鐣欒█锛屽姞鍏 Tubi 璧炲姪涓庣粍缁囩殑 Meetup 涓紒
鎶鏈瑷灏忎紬姹傝亴涔嬭矾涔熶笉浼犵粺
濡傛灉浣犺繕璁板緱 Tubi 閽堝鍥㈤槦浣跨敤鐨勬妧鏈爤灏忎紬甯︽潵鐨勬嫑鑱橀毦鑰岄噰鐢ㄧ殑鏂规硶锛屼綘渚夸細鍗佸垎娓呮锛屼綔涓轰娇鐢ㄥ皬浼楁妧鏈瑷鐨勫紑鍙戣咃紝浣犲彲浠ュ幓鍝噷鎵惧埌鍚堥傜殑宸ヤ綔銆
绗竴锛屸滄贩绀惧尯鈥濄傚弬涓庝笌浣犱娇鐢ㄧ殑灏忎紬鎶鏈瑷鐩稿叧鐨勫紑婧愰」鐩拰绀惧尯锛岀Н鏋佽础鐚唬鐮佸拰鍙備笌璁ㄨ锛屼笉浠呭彲浠ュ府鍔╀綘蹇熷涔犳彁鍗囪嚜宸憋紝涔熸湁鍙兘寮曡捣娼滃湪闆囦富鐨勫叧娉ㄣ傝澶氬叕鍙稿湪鎼缓鏈嶅姟鏃朵細浠庡紑婧愰」鐩腑鑾风泭锛屽浜庡紑婧愰」鐩殑閲嶈璐$尞鑰呰嚜鐒朵細浜х敓寰堝ソ鐨勫嵃璞°備簨瀹炰笂锛岄氳繃杩欑閫旂粡琚泧涓诲彂鐜板苟閭璇峰姞鍏ュ洟闃熸槸寰堝父瑙佺殑銆
杈冩棭鏈熷姞鍏 Tubi 鍐 Elixir 鐨 Tony Han 鍦ㄥ涔 Elixir 鏃讹紝瀵逛紭绉鐨勫紑婧愰」鐩兘浼氱Н鏋佸叧娉紝鍏朵腑灏卞寘鎷 Maru 杩欎釜椤圭洰銆俆ony 鍒嗕韩璇达細鈥滄垜鍙戠幇 Maru 杩欎釜椤圭洰鍘熸潵涔熸槸鍥戒汉鍐欑殑锛屽氨浼氱壒鍒暀鎰忥紝鐢氳嚦鍚庨潰鎵惧埌浜嗘満浼氫笌杩欎竴椤圭洰鐨勪綔鑰呮垚涓轰簡鈥樼綉鍙嬧欙紝鑰岃繖浣嶄綔鑰呭綋鏃跺氨鍦 Tubi 缇庡浗鎬婚儴宸ヤ綔锛岄氳繃浠栨垜鐭ラ亾浜 Tubi 涓浗鍥㈤槦姝e湪鎷涜仒 Elixir 宸ョ▼甯堛傛垜鑷繁鍏跺疄涔熸湁寮鍙 Elixir-gRPC 鐩稿叧鐨勯」鐩紝璧峰垵杩欎釜椤圭洰鍋忓疄楠屾ц川锛屾垜鑷繁灏嗗畠褰撲綔涓涓涔犻」鐩潵鍐欑殑锛涘悗鏉ュ惉璇 Tubi 鎯冲皾璇曞皢 Elixir-gRPC 鐢ㄥ湪鍏徃鍐呴儴椤圭洰涓紝缁忚繃涓庝竴浜 Tubi 浼樼宸ョ▼甯堢殑浜ゆ祦锛屾垜鎰熻浼氬緢鏈夋剰鎬濓紝骞茶剢鐩存帴鍔犲叆浜 Tubi 锛屽叏鑱屽啓 Elixir銆傗
绗簩锛屼笌浣跨敤灏忎紬鎶鏈瑷鐨勫叕鍙告垨椤圭洰寤虹珛鐩存帴鑱旂郴锛岃繖涔熸槸鑾峰緱灏变笟鏈轰細鏈楂樻晥鐨勮矾寰勪簡銆俆ubi 璧炲姪骞剁粍缁囩殑 Elixir Meetup 涓紝姣忎竴鍦烘椿鍔ㄩ兘鏈 3-4 浣嶆潵鑷笉鍚屽叕鍙告垨椤圭洰鐨勫紑鍙戣呭甫鏉ュ垎浜紝閫氳繃杩欎簺椤圭洰鎴戜滑鍙互璁よ瘑寰堝杩愮敤 Elixir 鏋勫缓鐨勭郴缁熷拰鏈嶅姟锛屼篃璁よ瘑杩欎簺椤圭洰鐨勬牳蹇冭礋璐d汉锛屽揩蹇暀瑷鍔犲叆 Tubi 璧炲姪涓庣粍缁囩殑鍑芥暟寮忕紪绋 Meetup锛屼负鑷繁鍒涢犳洿澶氱殑鑱屼笟鏈轰細锛
绗笁鐐规槸鏈鍊煎緱浣犲叧娉ㄧ殑銆傚洜涓烘棤璁轰綘鏈夊灏戞眰鑱岃矾寰勩佷娇鐢ㄥ摢涓闂ㄦ妧鏈瑷锛屾寔缁Н绱妧鏈粡楠屼笌鑳藉姏锛屽苟閫愭鎵撻犱釜浜烘妧鏈奖鍝嶅姏鎬绘槸鏈鍏抽敭鐨勩
娆茬煡濡備綍鏈夋晥鍦版墦閫犱釜浜烘妧鏈奖鍝嶅姏锛岃鍚笅鍥炲垎浜紒馃専鏄熸爣鍏虫敞鍏紬鍙凤紝鍚 Tubi 涓浗鍥㈤槦鐨勫悓浜嬩滑璁叉晠浜嬨
鐐瑰嚮鍘熸枃锛屽姞鍏ubi锛