前端新人用庫是否丟人?

剛剛入行一個月,最開始一直堅持使用原生js,用了2個月左右,被同學推薦使用Jq。。可以提高編寫速度...後來就一直堅持用jq寫效果。。直到最近 很多人推薦我用superslide timeline插件庫...又迷茫了

一直堅持用原生的自己寫不是最好的嗎。。用庫多了水平不是會下降么 隨波逐流選擇用庫到底是好還是不好


提煉一下題主觀點:

  1. 一直堅持用原生的自己寫不是最好的嗎

  2. 用庫多了水平不是會下降么

  3. 隨波逐流選擇用庫到底是好還是不好

題主背景:入行一個月。

### 開始做答案 ###

一直堅持用原生的自己寫不是最好的嗎

好,但不是最好。

在實際工作中,大部分時間的是用在解決問題上,而不是具體的編碼上面。

解決問題是什麼?接到一個需求,拆解、拆解、再拆解。這個過程才是真正耗費腦力、耗費時間。等到拆得不能再拆的時候,這個需求你就理解的非常清晰了,編碼過程會順暢。

手寫代碼沒有問題,只要時間充裕,思考全面。

但每一個庫,都是多少開發者,多少時間功夫,經歷過千錘百鍊而來。你確定你是一位somebody,在短時間內能實現得比他們更好么?

用庫多了水平不是會下降么

這個見仁見智了。

你拿著庫,不看文檔,只看新手入門,然後就開始刷,能玩得好么?能進步么?

你拿著庫,細看了文檔,準確解決各種問題,把原來開發時間大大縮短了,這是不是進步?

你拿著庫,發現他滿足不了你的額外需求,開始細讀源碼找原因,改進,這又是不是進步呢?

需求種類多了,遇到的問題多了,使用庫解決之後,你有沒有從中學習?還是說依舊只會弄個構造函數、拼接下字元串、遍歷下數組。

隨波逐流選擇用庫到底是好還是不好

不要隨波逐流,要有自己的判斷,有自己的分析。

遇到新的問題,可以先隨波逐流的選擇一款庫,但必須做個DEMO驗證下。畢竟每個人對問題的理解並不是完全一致的,他覺得這個庫解決了他的這個問題,但不一定能解決你的這個問題。

自己實驗、自己拿數據分析、自己從分析結果中做判斷、做結論。

### 額外話 1 ###

為什麼會覺得用庫丟人?難道你的代碼還停留在流水線階段?

就像function定義的函數段,這就是最基礎的為了解決重複性問題而進行的封裝。

function sum(a,b){
return a+b;
}

你的做的項目,到後面,不也是各種封裝嘛,這些都是庫,只不過這些庫針對性太強,沒法抽象出來。

### 額外話2 ###

假如遇到一個問題,我有把握自己實現一個質量不輸於外部開源庫的代碼段,但我還是會選擇開源庫。

原因是我雖然有這個精力去實現一個完整的庫,但沒有精力去覆蓋這個庫做各種文檔、教程。

庫做出來是給人用的,我自己做了一個庫,但沒有配套的文檔,我的同事們怎麼辦?接手項目的人怎麼辦?

當然拉,等到某一天,真的成為了somebody了,可以把控所有的東西的時候,那就果斷早輪子吧,把自己多年的思考、經驗,都變成各種庫,要不然世界上哪來這麼多的輪子。


不用庫水平就高了?

「一直堅持用原生的自己寫不是最好的嗎。。用庫多了水平不是會下降么」 這是哪裡聽來的???

首先,初學者確實應該寫一些原生的,但是這樣我認為只是為了更好的去「理解」和「掌握」這門語言。也見過一些比較low的程序員,自己寫的東西都一問三不知。

其次,庫也得分分類吧。就說jQuery這種,以dom操作為例,$你不用,非得用document.getElementById,你覺得自己很牛逼嗎?

  1. 假如你只會$而不會原生的,那麼你好意思說自己會js?面壁去吧。像這種人技術越來越爛,還好意思推卸責任說因為使用了庫。。。

  2. 假如你只會document而不會$(或者其他類似的庫或技術),你說有多不好學和跟不上時代啊。。。另外參照第三點。
  3. 假如你都會,但是堅持要寫document.getElementById,我只能說,除非是有特殊的理由,否則你就是在浪費時間,浪費生命,浪費老闆的薪水。任你鍵步如飛,打二十幾個字母總比打一個字母要慢吧?

再說其他一些類型的庫,比如圖表類的,像echarts,highcharts,除了以下情況,你能自己重頭去寫?

  1. 自己在學習,純粹為了練習
  2. 項目有特殊需求,自己或者團隊夠牛逼,能搞出一套更優秀的

另外,我認為評判一個工程師的水平,當然要考慮是否熟練掌握常用的庫,是否熟知一些知名的庫,是否能夠根據項目要求,快速評估出工作量(不熟悉哪些庫可以使用,怎麼評估???)


連庫都用不好才丟人。。。


找一個不用庫的來給我看看?


多年前我也是不用別人的庫的 (原生 JS 謝過進萬行的 web 應用),,, 後來還是用了 jQuery. 但是可以肯定的是我的水平並沒有因為用了 jQuery 而下降哈哈哈.

但是說回來, 現在有的東西我還是樂意用自己的, 比如自己造輪子搞了個 MVVM 框架. 當然這個還得看個人, 我不大能讀別人的源代碼, 所以自己寫的東西至少瓶頸在哪兒自己心裡清楚, 不會出大問題.

jQuery 什麼的最多讓你少做點兼容, 不會對代碼水平產生質的影響的, 因為畢竟只是一個 library, 算不上 framework.


不分青紅皂白實際情況全不用或者濫用,才丟人


前端月經問題呀……

給項目引入庫時慎重,而已經引入的,不用的才是2B

至於水平提高,研究人家源碼去吧,站在巨人的肩膀上療效更好


多數人更關注你做出來的東西,至於你用什麼方式做出來誰會關心呢?


用庫水平怎麼會下降呢,用庫是提高生產力啊。

不過反過來,一開始就用庫而且到最後只會用庫,水平上不去倒是很常見的。

只要你不是離開了庫就不能幹活,那就可以用庫。


碼農們肯定不甘於只用別人的輪子的。。。畢竟,寫工具是咱工程師的能力證明~

原生的你也會自己去封裝一些東西最後變成自己的庫啊, 每個人都有自己的習慣愛好,寫一些自己喜歡的風格的庫或者插件不僅賞心悅目而且也能提高組織代碼的能力~

不過讀庫的源碼還是特別好的,jQuery的源碼絕對是很有讀的價值的~讀完讓人有一種想自己寫框架的衝動,造漂亮可愛的輪子吧!


一點不丟人!怕的是沒找對,或者沒用明白!


建議先自己造一些基本的輪子,然後基本會踩完JS的坑,這時候你對這門語言的理解就比較深入了,再去用其他的庫就會駕輕就熟了。不僅是js,學習其他語言也是一樣的。


牛頓站在巨人的肩膀上,才能有如此成就,更何況一個前端新人。


用原生js可以更好的學習和理解所學的語言,夯實基礎。

用庫多了降低水平說明只是依賴庫實現了自己最基本的需求,並沒有深入思考

如果在實現基本功能的基礎上,自己再去了解其中實現的原理,進行相應的改進,也可以提高自己的能力,甚至也可以在熟練的基礎上形成自己的庫,這樣不也很好么


凡事都有一個漸進過程,凡事都有輕重緩急,凡事都有追求的層次。

你學習的過程是漸進的。一開始掌握一些js知識,慢慢開始使用一些js庫,慢慢地js庫滿足不了你的要求你開始修改js庫,慢慢地你會自己寫js庫的插件,慢慢地你又會開始追求原生js、甚至寫自己的js庫。現在你的學習過程才剛剛開始,不急,其實很多人都走到第二第三步就不往前了,畢竟只是一份工作,不是做研究,滿足工作需求即可。

你的工作要求你實現個效果,你自己寫很難,因為你沒有積累,知識也不夠深厚,於是你去用jq,實現了目的,老闆客戶都很滿意。完了之後你有空了,又會有興趣去看看如何用原生js實現。這是輕重緩急的問題。

如果你目前的工作就是使用js庫就能解決全部問題了,你自然很難追求更高難度的做法。如果你升職、跳槽到別的要求更高的互聯網公司,普通的jq庫也不再能解決全部問題,你自然要往高處去學。這就是追求的層次問題。

所以不要懷疑,不要擔心,保持學習的熱情,就總有要站在高於只用js庫的高度的。


本人前一陣在找工作跳槽 看到提出類似「能夠手寫兼容所有主流瀏覽器的原生js代碼」這種標準的公司一般就不考慮了 就算是不用jquery 好歹也用個替代品吧 什麼都用原生js意味著開發效率低下 寫代碼時候也會很煩躁 當然 也可能是我太偏激或者hr表達的不清楚。。。


只有寫的爛的庫和寫得好的庫,庫本身很好。


今天看到的笑話:

坐火車時候碰到一個印度阿三,聊了聊兩國文化,我問:你用過中國的筷子嗎?阿三說:徒手抓食物才是最正確的方式,不受制於食物。我這人專愛治各種不服,到站就帶阿三去吃了頓火鍋。


用庫不丟人,用得不好才丟人。


為什麼不用?


推薦閱讀:

Dribbble 客戶端 ZEEEN 是怎麼做到詳情頁顏色是適配的?
google首頁的陰影為什麼不用樣式,反而要用圖片?
為什麼前端技術現在這麼火?
為什麼有人說前端開發水很深,工作量有時比後台還多?
如何看待豪情的前端各個群開始付費加群並且踢了新人,需要重新付費進群的行為?

TAG:前端開發 | JavaScript | 前端工程師 |