成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我的NodeJS一年之旅總結

開發 前端
你可能會想,現在的我在干什么呢?好吧,我依然在使用Python編寫web產品和API的主要部分。主要在Flask或Django中,使用Postgres或MongoDB。

這是《為什么我從Python轉換到Node.js》這篇文章的后續。《為什么我從Python轉換到Node.js》寫于一年多前,主要是說因為我對Python感到失望于是打算嘗試Node。

一年的內部CLI工具,客戶項目和更新公司產品的歷練,正是我所學到的東西。不僅是Node,JavaScript也很不錯。

[[166701]]

易于學習,但不可能完全掌握

Node很容易學習。特別是如果你已經懂得一些JavaScript知識的話。用Google搜索一些初學者教程,擺弄一下Express,然后你 就可以開始你的征程了。然后你會意識到你需要選擇一個數據庫。沒問題,我們可以搜索NPM。哦,那里已經有不少優雅的SQL軟件包了。之后你會發現所有的 ORM工具爛極了,而基本的驅動程序是你***的選擇。現在,你被困在了實施冗余模型和驗證邏輯中。在那不久,你開始編寫更復雜的查詢,并開始迷失在 callbacks中。你終于沖出了callbacks地獄,并開始使用promises庫。現在,你差不多可以“promise化”所有事情,并且美滋 滋地小酌一杯。

所有這些是想說明,Node生態系統感覺像總是在不斷前進中。卻不是用一種很好的途徑。“勝過”舊工具的新工具似乎每天都在問世。總會有一個新的閃 亮的東西來替代另一個。你會驚訝于這種情況的發生有多么容易,你和社區看上去都在鼓勵它。你使用Grunt!?每個人都使用Gulp!?不要等待,現在就 使用本地NPM腳本!

包括瑣碎代碼——即不超過10行代碼——的軟件包每天都數以千計地從NPM下載。說真的!?你需要用于數組類型檢查的依賴關系?并且這些軟件包被一些大型工具,例如React和Babel所用。

你永遠不可能用一種極快的速度掌握一些東西,更不要說潛在的依賴關系的不穩定了。

處理錯誤時,祝你好運

以前使用其他語言如Python,Ruby或PHP的你,還在期望拋出和捕獲錯誤,或甚至是從函數返回錯誤作為錯誤處理的簡單的方法嗎?Node可 不這樣。相反,你需要四處傳遞錯誤在你的callbacks(或promises)中——對,不拋出異常。直到你了解的不僅僅是callbacks,并且 試圖遵循堆棧跟蹤,這才不起效用。更不必說,如果你忘了在錯誤上返回callbacks,那么它就會繼續運行并觸發另一錯誤設置,在你返回最初的錯誤設置 之后。你需要讓你的客戶多加一倍的錢以彌補用來調試的時間。

即使你設法想出了針對自己錯誤的堅實標準,你也不能確認(而不讀取源)你安裝的許多NPM軟件包遵循相同的模式。

這些問題導致了“catchall”異常處理程序的使用,這樣就會記錄問題。請記住,Node是單線程的。如果有什么東西鎖定了該進程,那么一切就會轟然倒下。但是使用Forever,Upstar和Monit很酷,不是嗎?

callbacks,promises還是generators!?

為了處理callbacks地獄,錯誤處理和通常難以閱讀的邏輯,越來越多的開發人員已經開始使用Promises。這基本上是編寫看上去像同步碼 但沒有瘋狂的callbacks邏輯的一種方式。不幸的是,沒有任何“標準”(一切都像在Javascript中其他人)用來實施或使用 Promises。

現在最明顯的庫是Bluebird。它相當不錯,速度快,又能剛好完成工作任務。不過,我發現不得不封裝需求到Promise.promisifyAll()特別有黑客范。

在大多數情況下,我會使用優秀的async庫,以避免callbacks。這感覺更自然。

***,我對于Node的經驗是,Generators變得越來越流行。我并沒有深入了解Generators,因此無法給出太多的反饋。非常期待聽到大家關于Generators的經驗。

糟糕的標準

***一件令我沮喪的事情是缺乏標準。每個人對上述個要點該如何處理似乎都有自己的看法。Callbacks?Promises?錯誤處理?構建腳本?無窮無盡。

那也只是抓住了表明的東西而已。似乎彼此之間也不同意如何編寫標準的JavaScript代碼。不妨快速Google檢索“JavaScript編碼標準”,你就會明白我的意思。

我意識到很多語言都沒有嚴格的結構,但它們通常卻都具有由語言的實際維護人員創建的標準指南。

我認為只有一個確實有助于JavaScript,它是由Mozilla編寫的。

關于Node的***一些想法

我花了一年時間試圖使用Javascript以及更特別的Node為我們的團隊工作。但是不幸的是,在此期間,我們的時間更多的是花在了攻讀文檔,提出標準,討論庫還有調試瑣碎的代碼上。

那么我會推薦它用于大規模的產品嗎?絕對不會。其他人有沒有試著這樣做呢?當然有過。我也嘗試過。

但是,我建議JavaScript用于前端開發,例如Angular和React(或者你也可以有其他選擇)。

此外,我認為Node適合簡單的后端服務器,并且服務器主要用于webSockets或API  ray。這使用Express很容易快速完成,并且我們正是用在了我們的Quoterobot PDF處理服務器上。這是一個單獨的文件,包含186行代碼,其中還包括了空格和注釋。Node用得真心順手。

回歸Python

你可能會想,現在的我在干什么呢?好吧,我依然在使用Python編寫web產品和API的主要部分。主要在Flask或Django中,使用Postgres或MongoDB。

它經受住了時間的考驗,有一些偉大的標準和庫,它易于調試并且表現良好。當然它也有它的缺點。但世上沒有***的東西。出于某種原因,Node抓住了我的眼球,讓我深陷其中。我不后悔曾擁抱過它,但我確實覺得我本不應該花費這么多的時間在它上面。

我希望JavaScript和Node將來能夠得到改善。我很樂意重新審視它。

請告訴我你的經驗?你有沒有遇到我這樣類似的問題?你是否最終還是決定轉換回到更舒適的那種語言?

譯文鏈接:http://www.codeceo.com/article/my-nodejs-1-year.html
英文原文:AFTER A YEAR OF USING NODEJS IN PRODUCTION

責任編輯:王雪燕 來源: 碼農網
相關推薦

2013-05-30 01:16:36

工作總結自由職業工作經驗

2009-07-03 10:15:38

2011-11-23 16:17:47

Windows Pho

2012-08-28 09:22:35

測試軟件測試外包

2021-01-14 11:39:05

云計算

2021-05-07 10:20:11

前端開發技術

2011-07-29 09:56:23

2012-05-09 09:20:40

編程編程書籍編程資料

2019-01-21 15:17:59

Java微軟JCP

2015-09-08 09:25:07

編程經驗教訓

2013-04-25 10:14:25

開發者移動APP移動創業

2022-01-27 09:57:50

機器學習人工智能自然語言

2020-08-12 11:35:00

Node.js前端緩存

2020-12-16 14:59:24

數據中心5G網絡

2015-06-25 15:39:17

WebWeb應用程序

2009-01-03 12:58:33

云計算IBMSymantec

2017-04-11 14:45:30

android開發sqlserver

2011-09-08 14:15:43

2014-04-24 10:44:03

自學編程

2020-02-11 16:25:47

JavaLinux字符串
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久久国产成人免费 | 免费一级黄色电影 | 青青久久| 精品国产欧美在线 | 99精品亚洲国产精品久久不卡 | 成人在线免费观看 | 中文字幕在线观看视频网站 | www.成人.com| 精品久久国产 | 欧美一区二区三区在线观看 | 一区二区三区视频在线观看 | 四虎影院久久 | 正在播放国产精品 | 欧区一欧区二欧区三免费 | 久久精品一区二区视频 | 久久久噜噜噜www成人网 | 亚洲 欧美 日韩在线 | 日本高清在线一区 | 中文字幕av网站 | 成人av一区二区亚洲精 | 欧美日韩成人一区二区 | 欧美日韩一区二区三区四区 | 日韩中文字幕在线免费 | 在线观看日韩精品视频 | 国产农村妇女精品一区 | 欧美在线激情 | 国产精品视频网 | 黄篇网址| 亚洲色欧美另类 | 国产一区二区三区视频在线观看 | 中国美女一级黄色片 | 欧美精品一区二区三区在线 | 国产在线a | 国产片侵犯亲女视频播放 | 久久久一区二区三区 | 做a视频 | 中文字幕高清av | 伊人春色在线观看 | 久久99国产精品 | 日韩中文在线视频 | 久久久久久国产 |