NodeJS真的有那么美嗎?
作為國內比較早一批采用NodeJS的程序員,我在完成了一個項目之后回頭一看嚇了一跳,比以往PHP開發多花了很多時間。
之前,憑著對JS的熱愛,對NodeJS生態圈豐富的贊嘆,我說服自己接受諸多重復性的代碼,用一些手段去減低代碼的難看度,比如少用匿名函數,步驟多時多用step,慢慢也就習慣了。
但是,項目硬生生的多花了不少時間,讓我不得不開始重新審視NodeJS是否有說的那么美,拋開個人好惡來分析它的優缺點。
優點,我想不必重復說,很多人都說了很多,我基本都同意。唯獨一點,我實在無法茍同。千美百美,一丑可以將它全部優點遮蓋。誰用誰知道。
這一丑就是強制性的異步編程方式。
絕大多數情況下我不覺得異步是必要的,尤其是對于web。異步極大的增加了編程的復雜程度,也讓調試變得極不直觀,給性能調優帶來諸多不便。
做過性能調優的人知道,如果性能不成為問題,就沒必要調優,代碼的可讀性要高過執行效率,也就更沒必要采用異步方式。此時,我的時間比CPU的時間更值錢。
NodeJS的強制性異步編程方式可不管這么多,你別無選擇。這讓我想起那句話,手里拿著錘子,看什么都像是釘子。
作為一個JS腦殘粉,我開始尋找非異步的同類方案,其中SilkJS讓我印象深刻,只可惜后來沒怎么維護了。
無果,心中只想說,就不能好好的用JS在服務器端編程嗎?非要搞出些奇怪的玩意!
來自:http://weibo.com/p/1001603795470584572407