[簡(jiǎn)譯] 外國(guó)大廠對(duì)node.js工程師的建議

原視頻地址:
https://www.youtube.com/watch?v=gePCzPTEXSU

你對(duì) node.js 初學(xué)者你有什么建議.

Wyatt

Wyatt Preul

Joyent 產(chǎn)品工程師

不要一開始就依賴 npm 上的模塊, 嘗試自己從頭實(shí)現(xiàn)一些基本的功能, 直到你真正需要一個(gè)模塊的時(shí)候再引入他;
另外一個(gè)建議就是, 在社區(qū)保持活躍,參加到當(dāng)?shù)厣鐓^(qū)的活動(dòng)中去; 可以嘗試對(duì) node 做一些貢獻(xiàn), 哪怕只是更正 README 或者文檔之類的提交.

筆者注: 如果時(shí)間充足學(xué)習(xí)一門語(yǔ)言的最好方法就是造輪子.前提就是時(shí)間充足和學(xué)習(xí)期間

Wyatt

Patrick Ritchie

HomeAway 高級(jí)軟件經(jīng)理

找一個(gè)切入點(diǎn), 讓 node 幫助你迅速的開展業(yè)務(wù),展現(xiàn)出他的價(jià)值. 然后尋找更加完善和強(qiáng)大的 node 的程序來(lái)支撐你的業(yè)務(wù). node 和其他的軟件還是有很多大的區(qū)別的. 所以你需要一個(gè)完整的程序來(lái)實(shí)現(xiàn)你的商業(yè)目標(biāo).

Wyatt

Steven Faulkner

Bustle 工程總監(jiān)

剛開始學(xué)習(xí) node 的時(shí)候多看看你使用模塊的代碼,研究它背后的工作原理; node 界也有很多多產(chǎn)的開發(fā)者, 他們開發(fā)了很多不同類型的模塊, 多讀讀他們的代碼以理解他們背后的思想.

幾年前的 npm top contributor 列表: https://gist.github.com/michalbe/71f6f9e5938eeb781dc4 可惜了 TJ 大神已經(jīng)暫別 node 圈了.

node.js 的實(shí)踐方面的建議

所謂的最佳實(shí)踐

charlie.jpg

Charlie Robbins

GoDaddy 技術(shù)總監(jiān)

  1. 使用私有的 NPM 庫(kù)
  1. 如果你第一條沒(méi)有做到, 那換一條建議就是不要把 node_modules 提交到版本管理里面, 不會(huì)有好結(jié)果的
  2. 在 package.json 中使用 git URL 最終也會(huì)帶來(lái)麻煩, 雖然這樣做在沒(méi)有私有 npm 時(shí)的能幫你解決一些問(wèn)題.

譯者注: 總之就是一句話: 是要用 私有npm;

可以參考 cnpm 的解決方案
https://github.com/cnpm/cnpmjs.org/wiki/Deploy-a-private-npm-registry-in-5-minutes

Paul

Paul Milham

WildwWorks 工程師

  1. 在可能出現(xiàn)異常的地方正確的處理異常
  1. 當(dāng)你的應(yīng)用處于一個(gè)未知狀態(tài)的時(shí)候,毫不留情的重啟你的服務(wù)進(jìn)程
  2. 一定要有測(cè)試;在你提交代碼后有自動(dòng)化執(zhí)行的測(cè)試.
  3. js 是動(dòng)態(tài)類型的語(yǔ)言, 所以一定要有嚴(yán)格的數(shù)據(jù)檢查;確保進(jìn)入你的應(yīng)用的數(shù)據(jù)是你期望的, 特別是在 API 層面

譯者注: 第二條可能很多人不能接受, 要讓你的服務(wù)進(jìn)程能夠隨時(shí)重啟對(duì)系統(tǒng)的架構(gòu)能力最基本的考驗(yàn).當(dāng)然第三條也很重要, 很難想想一個(gè)復(fù)雜的系統(tǒng)沒(méi)有測(cè)試,沒(méi)有自動(dòng)化測(cè)試要怎么維護(hù).

James

James Hush

Netflix 軟件工程師

當(dāng)你在生產(chǎn)環(huán)境下開始一個(gè)新項(xiàng)目的時(shí)候, 一定要鎖定依賴關(guān)系; 不要在 package.json 出現(xiàn) "^","~"; 直接鎖定依賴關(guān)系.

譯者注: 我個(gè)人強(qiáng)烈推薦使用 *yarn , 如果你對(duì) yarn 不是很喜歡的話,那就在項(xiàng)目的根目錄下創(chuàng)建 .npmrc 文件, 寫入 save-exact = true

如果你要升級(jí) node.js 版本. 一定要先讓你團(tuán)隊(duì)的人知道你升級(jí)了 node.js 的本版; 如果有人在你升級(jí) node.js 版本后不能運(yùn)行程序. rm -rf node_modules 然后 npm i, 90% 能解決你的問(wèn)題.

譯者注: node.js 發(fā)展太快了, 如果項(xiàng)目激進(jìn)的話直接用最新的版本好了. 保守的跟緊 TLS.

Patrick

Patrick Ritchie

HomeAway 高級(jí)軟件經(jīng)理

JVM 的線程機(jī)制可以讓你壓榨完系統(tǒng)的所有資源來(lái)一定接受新的連接; 但是 node 只有已經(jīng)一個(gè)進(jìn)程和有限的內(nèi)存資源.

譯者注: 那就是學(xué)會(huì)用 cluster 和學(xué)習(xí)微服務(wù)架構(gòu)

最后的建議

(白云: 就剩一句話了啊?)

Sarah

Sarah Saltrick Meyer

buzzfeed 程序媛

node的發(fā)展和互聯(lián)網(wǎng)變化一樣迅速, 同樣它也和互聯(lián)網(wǎng)一樣慢慢的變好. 你不可能花上6年時(shí)間出現(xiàn)等一個(gè)新的語(yǔ)言出現(xiàn), 然后把之前的工作拋到腦后.

譯者注: 她的意思是不是 node.js 雖然現(xiàn)在不是很完善,但是發(fā)展的越來(lái)越好,應(yīng)該順勢(shì)而為. 因?yàn)闆](méi)有采訪的上下文,我也不知道她為什么要說(shuō) 6年 時(shí)間.

Paul

Paul Milham

WildwWorks

我鼓勵(lì)大家去接受 JavaScript. js 是一門很棒的語(yǔ)言, 可以使用在各個(gè)領(lǐng)域. js 作為一個(gè)門動(dòng)態(tài)的類型的語(yǔ)言出現(xiàn)在你視野時(shí)候, 你需要一些態(tài)度上的轉(zhuǎn)變, 有些開發(fā)者甚至對(duì)動(dòng)態(tài)類型還有一些偏見(jiàn). 其實(shí)動(dòng)態(tài)的特性讓會(huì)讓代碼變得更加的的簡(jiǎn)潔和易讀, 但是首先還是你得接受她, 擁抱她; 而不是通過(guò)一些編譯到 js 的語(yǔ)言來(lái)繞開 js.

哈哈,個(gè)人感覺(jué)沒(méi)有掌握 js 去使用類似 ts 的語(yǔ)言的話確實(shí)造成一些問(wèn)題. 至于 dart 之類我沒(méi)有用過(guò)也不能發(fā)表什么.

希望對(duì)大家有幫助.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末珊泳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖咒吐,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔑水,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡谍珊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門急侥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砌滞,“玉大人,你說(shuō)我怎么就攤上這事坏怪”慈螅” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵铝宵,是天一觀的道長(zhǎng)打掘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鹏秋,這世上最難降的妖魔是什么尊蚁? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮侣夷,結(jié)果婚禮上横朋,老公的妹妹穿的比我還像新娘。我一直安慰自己百拓,他們只是感情好琴锭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布晰甚。 她就那樣靜靜地躺著,像睡著了一般祠够。 火紅的嫁衣襯著肌膚如雪压汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天古瓤,我揣著相機(jī)與錄音止剖,去河邊找鬼。 笑死落君,一個(gè)胖子當(dāng)著我的面吹牛穿香,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播皮获,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼洒宝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雁歌!你這毒婦竟也來(lái)了知残?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎父能,沒(méi)想到半個(gè)月后净神,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體强挫,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俯渤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年八匠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梨树。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抡四,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出指巡,到底是詐尸還是另有隱情,我是刑警寧澤秘噪,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布指煎,位于F島的核電站便斥,受9級(jí)特大地震影響椭住,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宅广,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望户魏。 院中可真熱鬧叼丑,春花似錦、人聲如沸鸠信。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)葬凳。三九已至室奏,卻和暖如春火焰,著一層夾襖步出監(jiān)牢的瞬間胧沫,已是汗流浹背昌简。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工琳袄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留江场,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓窖逗,卻偏偏與公主長(zhǎng)得像址否,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子佑附,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Node.js是目前非骋敉火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特权均。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,613評(píng)論 2 41
  • Node.js是目前非潮馗悖火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特塔橡。 眾所周知霜第,在Netscape設(shè)計(jì)出JavaScri...
    Myselfyan閱讀 4,072評(píng)論 2 58
  • 1 Node.js模塊的實(shí)現(xiàn)# 之前在網(wǎng)上查閱了許多介紹Node.js的文章,可惜對(duì)于Node.js的模塊機(jī)制大都...
    七寸知架構(gòu)閱讀 2,058評(píng)論 1 50