國外程序員怒了:你們不要再則制作NPM包了
我們在NPM中達(dá)到了100萬個包大關(guān)——Node.js中事實上的包管理器。相信我,其中大約有30%左右的包都在做同樣的事情。所以現(xiàn)在的問題是——什么時候夠了?
過去
早期,Node.js是一個簡單的運行時,但由于缺少庫而受到限制,但是隨著時間的流逝,越來越多的人開始制作工具、庫甚至是Cloud IDE。Node.js引發(fā)了一場革命,即JavaScript不再局限于瀏覽器中,而且它擅長于此。
但隨著時間的推移,Node.js變得更加健壯,并開始走在瀏覽器的前面——這是一個新的JavaScript生態(tài)系統(tǒng),它不受供應(yīng)商缺乏的ECMAScript支持的限制。隨著時間的流逝,一些古老的庫變得越來越陳舊。
但這和NPM軟件包有什么關(guān)系呢?
問題是,在那些早期的日子里,也有包污染 (其今天仍然是一個問題),那里有更多無用的包比有目的的東西更多。他們中的一些人甚至重新發(fā)明了輪子,在某些包中被丟棄了將近6年。

在這個例子中,我們對Redis有不同的包,Redis已經(jīng)有一段時間沒有維護了(不過grunt包沒有維護還是可以理解的,因為它們已經(jīng)被取代了),而且大部分都是你可以在app-level的實現(xiàn)中做的事情,顯然不需要使用該程序包。
因此,停止重新發(fā)明輪子,除非你需要
假設(shè)你發(fā)明了一個記錄儀,很酷!你想讓人們用它,更酷!
但是,讓我提醒你,總有成千上萬的庫可以做同樣的事情,所以如果你的記錄儀是特定領(lǐng)域的,不要嘗試著把它做成NPM包,把它放在你打算使用它的項目里就可以了。
只有在某些情況下,你才需要真正地為每個人的利益發(fā)明輪子——因為目前的公共庫表現(xiàn)不佳,或者說普遍的不好。
停止制造毫無用處的包
認(rèn)真一點,停下來。你在破壞軟件包倉庫的意義,它是項目要使用的可重用模塊的倉庫。我不在乎它是否是一個笑話包,你是在浪費對象存儲,而它本來可以由一個更有用的模塊占用的。
我們有像Maven和PackageCloud這樣健全的包倉庫,那么為什么我們不能像它們一樣專業(yè)和健全呢?我們和他們沒有什么不同。
總結(jié)
NPM和JavaScript社區(qū)是我們現(xiàn)在所說的“現(xiàn)代網(wǎng)絡(luò)”的推動力。但如果我們一直做無用功,一直誤解了運行時有包管理器的概念,那么我們就會成為一個包管理器不應(yīng)該成為的榜樣。
所以,讓我們嘗試著改變一下庫編寫的思路——只有在沒有辦法的情況下,或者目前的實現(xiàn)方式對廣大網(wǎng)友來說非常吃不消的時候,才去做一些東西。如果你做的東西是針對特定領(lǐng)域的項目,那就完全不要去做了。