關于前端開發?
題主的問題問得有點大,想要回答好真的很不容易。
我也是技術人,只能單從技術角度出發扯一扯。
目前看來前端技術的基礎仍然無法離開javascript、css、和html,這是前端的“根”。
前端開發最近幾年經歷了一次快速發展,其中也包含一些“野蠻發展”的情況,以js為例,最典型的就是出現了大量的第三方js庫及組件。這些庫為開發人員帶來了大量的選擇空間,如果運用得當確實能夠大幅提升工作效率。
但是這樣的“野蠻生長”同樣也帶來了負面效應。許多初入行的新手會覺得無所適從,這么多第三方庫,每個都聲稱自己是最好的,網絡上也是褒貶不一,各說各的。到底該從哪里開始入手呢。
如果把時間往回退一點,不用很久,我們先往回退5年左右,一些如今大家都耳熟能詳的主流前端技術開始在國外形成氣候,但是可能還未進入國內,那個時候如果程序員掌握一門jQuery并且熟練使用的話,是很吃得開的。
再往前5年,也就是北京奧運前后這段時間,那個時候的開發人員根本還沒有像今天這樣把崗位劃分得那么細,哪有什么前端和后端,無非是美工設計好頁面,做好切圖,程序員一手包圓,從后臺數據庫開始一路碼到前臺頁面。而那時候的大部分程序員在做前端開發的時候,用的最多的是原生javascript、ajax和dom。
要是再往前推,大家只要搜索一下世紀之交的時候,網頁都是丑成什么樣子就懂了。上世紀末那會兒上網得拿個貓撥號吱哇吱哇響半天,那時我還在念書,老實說如果你的網頁上有個幾百k的圖片,人家基本上根本就沒那耐心再繼續加載下去了。
回過來就能想明白了,正是因為前端是經過了這樣的發展,程序員們覺得原生js、ajax和dom太羅嗦,為了實現業務功能不得不寫大量與業務無關的代碼,并且還不得不考慮不同的瀏覽器差異,要知道那些年光是處理ie的不同版本就夠程序員喝一壺的了。
而優秀的程序員總是懂得高度封裝的,于是第一批經過封裝后的前端產品開始出現了,典型代表是以縮減業務無關代碼量和屏蔽瀏覽器差異為目的“jQuery”和以用戶UI為代表的“Ext JS”。使用這一類產品的時候,程序員不太需要考慮一些原生問題了。
新的問題也開始出現了,處于這一時期成長起來的程序員們,開始漸漸生疏原生代碼了。那時候招聘新人,已經開始出現不少不會甚至第一次聽說document或ajax的人了。但是老程序員誰會去管這些呢。
當“jQuery”發展得成熟穩定后,有經驗的程序員們又發現了新問題。前端原則上是純粹開源的,這也導致了前端看起來似乎毫無規則可言,程序員想怎么寫就怎么寫,要多亂就有多亂。恰巧這時候后端的架構經歷了早期的重量級EJB、輕量級的struts、提出了數據庫持久化概念的hibernate,以及某一天突然跳出來大喊一聲“這tmd才叫框架”的spring,越發變得成熟和穩定。(請原諒我,我是Java系的碼農)MVC概念逐漸變成了一種主流思想。
還記得我剛才說早期的程序員不太區分前后端不?這幫人當中就有人發現,為什么前端不能像后端那樣以框架或者架構方式出現呢。
幾乎在同一時期,一批主打mvvm概念的前端框架脫穎而出了。
如果找一些比較優秀的“全棧”問一下,你會發現現在流行的幾款前端框架,其主要設計思想中都存在后端架構的身影。而這一時期出現的新興前端程序員們,可以說幾乎沒有誰再會去關心“原生的洪荒之力”了。
上面所說的大部分都是js相關的,css和html雖然也進入了新的發展時期,但畢竟之前沉寂得太久,程序員們并沒有在這兩者上面出現太猛烈的脫節或不適應。
說到底,至少現階段前端的主流js架構都只是一些“高級工具”而已,說得難聽些哪怕不會這些架構,很多事情還是能做-----沒了電動螺絲刀難道就沒法擰螺絲了么。
熟悉和使用好的流行框架固然重要,但是在前端問題上更不能忽略的是基礎:原生的javascript看起來入門容易,實則水相當深;原始的dom理論是構建網頁的基礎的基礎;原生的ajax會幫助你更深入理解同步和異步,以及如何與后端交互。
除此之外,無論前后端,無論什么語言,編程這件事最要緊的還是思想和思路,這些東西聽上去有點懸,最有效的辦法還是不斷累積,并且要善于思考,多看老手的代碼,多想人家為什么要這么寫,這么設計肯定是有道理的,理由何在。千萬不要把自己變成一個只會復制粘貼的低級程序員。
我好像扯太遠了,不知道題主有沒有耐心看。。。?