摘要:之前人家寫過的彈出層,富文本編輯器,語法高亮插件你一套也不能少,這樣你才能接觸到之前碰不到的原生與知識點。通過引入雙向綁定與分層架構,完全脫離進行前端開發。
原文:http://www.cnblogs.com/rubylouvre/p/3658441.html
作者:司徒正美
歷時兩年多,我的書終于付梓出版了。應各方面的要求,寫軟文一篇,隆重介紹一下此書對各位程序員的錢途有什么幫助及閱讀順序等疑問。作為國內第一本講述前端框架構的書,它里面充斥著許多大家前所未聞的知識,這些知識有50%只見于github的issue,講述各種隱秘的瀏覽器兼容性問題及各種神奇的修復方案,或者是某些危險但美麗的黑魔法,另外50%我深夜夢游般在外國某些大牛(不局限于英語,有日語,俄語,韓語等,不同的語言的人,受制了他們的語法結構,他們的思考回路是與我們不同的,給出的答案有時真的是拍案叫絕)的博客或網站瞥見的神奇東東。在我通過編寫dom Framework, mass Framework這兩大框架(dom Framework是老式的金字塔式的基于類的大框架, mass Framework是擁有AMD加載器的開放式框架,再后來的avalon,是鬼怪式的分層構架的MVVM框架,黑魔法滿滿的),建立完整的知識樹后,開始狂熱如征服六國后的秦王,熱衷于收集各種奇珍異寶于我的博客——你們看的部分,只是我未公開的十分之一而已,本書將額外開恩公布另外的十分之二。
其實這世界很奇妙的,當你水平上去后,就算你不想繼續,這世界也推動著你前進。就像jQuery1.3通過Sizzle大獲成功后,成為世界的明星,就算John Resig想撒手,但這么多pull request,它也只能從更好變成更加好!三年前,當我寫了三百多篇的博文,出版社已經找上門來了。在那半年內,總共有三四家來找我,讓我看到前端的希望。于是我的重心由ruby慢慢轉向javascript。待到我加入盛大創新院后,我已經確保我能hold住《javascript框架設計》這個大題目,于是簽約寫書。不過,在最初我提交給出版社的目錄里,我有著更為恢宏的目標,包含拖放組件, 路由系統, 及各式UI組件,但最后由于篇幅的問題,只好說聲抱歉了。
野望總是被現實所掣肘,亞歷山大想證明世界,可他的HP也是這么短,經不起長途跋涉。實體書與博客是不同的,它必須要形成一個體系,文體也有要求,不能太口語化,什么喜樂哀痛必須收起來,板著臉正正經經地對大家宣講。錯別字也要收殮一下,雖然我找了許多高手審稿了。可惜個個都開寫輪眼,自動過濾掉錯別字,最終還是讓出版社的張濤大大幫忙處理了大部分錯別字與病句,太專業的東西他也無能為力,但愿不影響閱讀。幸好各位大神貢獻了不少冷癖有用的知識點,讓本書充實了不少,因此才一改再改,三番四次,導致兩年多才交稿。在盛大創建院時,不斷有人(同事或群友)問我的書什么時候出來,人家半年就搞出一本了。我今天終于不為這問題煩惱了。
在繼續這篇軟文時,我腦海真的是閃現許多詞匯,什么大教堂與集市,造輪子與DRY,公司利益與個人成長……一個個來吧
大教堂與集市說的是如何構建一個軟件工程,是大教堂式的專制主義還是開放式的以眾包方式讓大家貢獻源碼。前者,緩和一點地說,是英雄主義,jQuery之于John Resig, Node.JS之于Ryan Dahl,他們單人匹馬開創了一個新天地。后者,最杰出的代表是Linux。但在這個互相浸透學習的世界,絕對的東西是不存在的。jQuery與Node.JS現在也是在眾多的項獻者的努力一下前進,原作者向新目的地進發了。在國內,你懂的,每個人都自命不凡,一開始只能是你一個踽踽獨行。只有你真正成為明燈式的人物后,才有人追隨。
造輪子與DRY這問題也新浪微博上也吵過許多次了。有個軟件設計原則叫DRY,防止組員們隨意克隆代碼,或在不知情的情況下重復發明相似的功能模塊。公司出于利益的考慮,也不愿給時間組員自己去造輪子,上網找一個jQuery插件了事。因此,小中公司的頁面非常恐怖,允斥著大量第三方插件,而相對而言,大阿貍能用的基本自己做,這正是游擊隊與正規軍的區別。從國內看,最重視JS的公司也恰恰是大阿貍,他們擁有國內最龐大優秀的前端團隊(700多人),小公司還是一個前端對20個后端的節奏。招這么多高手干嘛呢?造輪子!當然,這不是一個輪子所代表的,這涉及一整合的工具鏈,目的是實現前端自動化集成布署。寫框架與UI組件保是其中一個很少環節,這也是一般人能理解的東西,更多高大上的東西,大公司也不會公開出來。但你起碼擁有創造UI組件這樣的能力,才能讓你碰更底層的工具。
公司利益與個人成長,這個更不用說。只有目光短淺的公司,才會用雜牌的組件寫碼。大公司早已為你準備一整好東西了。而你的任務就是成長到具有寫UI組件的地步,進入架構師,為公司的未來挑戰做好更多準備(工具)。HTML5對于一般人而言,好像是非常遙遠的事,但大公司早已有一幫人用它做出許多好東西,為公司產品的用戶體驗添磚加瓦。為了積聚這實力,你必須自己暗暗發力,偷偷自己寫一套東西。之前人家寫過的彈出層,富文本編輯器,語法高亮插件……你一套也不能少,這樣你才能接觸到之前碰不到的原生API與知識點。如彈出層有關垂直居中的CSS知識點,select穿透問題,富文本編輯器用到的iframe知識點,Range與Selection對象的知識點,語法高亮則是你正則的大檢驗!如果寫業務代碼,你寫十年,水平還是那樣。因此有句話說——“用一年的經驗混十年”
最近在微博看到一件可怕的事:
【我所了解的一個精神失常的程序員】http://t.cn/8sinEOr 不久前我們公司有個程序員精神失常。他走進經理辦公室開始大喊大叫,說著一些奇怪的事情。如果我不是像了解自己一下了解他,就會以為他磕了藥。但是事實上他簡直就是精神失常了!
他是我在編程行業見過的最勤奮員工。他經常在下班后加班,周末的時候,當管理人員需要人手去處理緊急工作時,他總是隨叫隨到。在這個階段公司并不賺 錢,老板需要盡可能快的完成項目,所以任何被客戶急催的軟件開發都會自動分配給他。他很樂意地全心投入把工作做完正是老板喜歡的地方。
"我能力強,我效率高,我應該是公司的關鍵人物",其實那是錯的,不可替代性才是最重要的。如果靠“賣力”增加不可替代性,作用是微乎其微的,還是得靠“高門檻”。我認識的工程師里,越是技術好的工程師越會意識到這個問題,然后去做一些"深度"的發展,這也算是工程師的自我保護吧。說什么做IT沒前途,30歲要轉行,這只是無能者的藉口。
古人說——“人無遠慮,必有近憂”。你平時有這么多空閑時間,為何不努力提升一下自己的水平呢。不去認真閱讀一下大師們的框架,不自己寫一個框架。記得當初我在博客宣傳我的框架,被某個嫉妒的人罵個狗血噴頭,兩年過去,他消聲匿跡,而我,從一個公司的核心前端變為另一個公司的核心前端,現在是去哪兒網的前端架構師。因此要相信自己!不要怕這怕那,有努力就有回報!
再回來說我的書,前端的知識點是非常龐雜的。但知識只有串起來,形成知識樹才是你自己的。現在市面上的書,基本上抄來抄去,還是依照老舊的方法教人,一開始總是歷史回顧,然后是各種數據類型介紹,然后是語法(條件分支,循環分支)什么的,最后再來幾個“真實案例”。這對于90%半路出家的前端來說,未免太悶了。而且前端不單單是javascript, javascript只是水泥, 或者說儲如化學分子這東西,而我們工作是為了構建一整座大廈!只有肉眼看到的物理級別的東西才是主角。它們就是本書的重點, DOM與BOM。 javascript通過特性偵測或傳參等,進入不同的分支,來解決前端臭名昭著的兼容性問題。本書介紹了大量這樣的黑魔法,如何知道當前瀏覽器是支持這個事件呢? 為何在這里要劫持this呢? 怎么樣讓選擇器引擎跑得更快。于是這一個個疑問,便化解成本書所介紹的知識點,什么AMD加載器, 選擇器引擎,批量生成一堆元素節點……
所有前端框架面對的問題都是一樣,不同的是解決手段的高下程度。于是Prototype死了,jQuery火了。 angular爆發了, jQuery沉寂了!本書的章節就是按照編寫一個多文件框架的順序來寫。最開始肯定是種子模塊,定義框架的名字與版本號,與一些最核心的方法,還有加載器。然后通過加載器,添加一些常用的工具模塊,對javascript語言進行擴張與修復。之后是數據緩存什么的,再之后是主菜,各種DOM問題, 節點啊, 樣式啊, 事件啊, 動畫啊……最后是MVVM,當前最強大的前端解決方案。通過引入雙向綁定與分層架構,完全脫離DOM進行前端開發。
你或者有過激情,你或者有過夢想,但當你的KIP考核點是PM那些荒唐的改來改去的功能點,多熾熱的火焰也會被澆滅。因此你必須要搞出一點東西出來,努力爬上去。是廢命于加班,天天寫業務,還是專注于底層框架的研發,為某個難題而苦惱,完全在于你一念之差。“是金子總會發光的”,或“是石頭到哪都不會發光的”,也完全在于你一念之差。本書將為你提供了一個可能性及一大堆技能點,打開了一個美麗的新世界,提供了一個X年不遇的機會,準備了一個迅速上升的渠道。
可能有些人會嫌它貴,也有些人怕自己看不明白這么“高大上”的東西。我說一個故事吧。
一個特別喜愛昆蟲的人做了這樣一個實驗:他將跳蚤放進敞口的瓶子里,它立刻便跳了出來。當把瓶子蓋上時,跳蚤還是會竭力跳出瓶子,它不停地撞擊著瓶蓋的內側。一個多小時后,他還在那樣跳著。差不多三個小時后,它依然在跳,只是它不再撞著瓶蓋了,此時它跳的高度離瓶蓋大約1厘米左右,而且每一次都是如此。這時,瓶蓋被拿掉了,但是跳蚤并沒有跳出瓶口,它依然保持著有瓶蓋時的高度,再也跳不出瓶口。
同理,如果你,總嫌這個貴那個貴,你又不努力改變現狀,過了一段時間,你就會習慣了,就會安于貧困了。就像瓶子的跳蚤那樣安于天命,永遠困死在瓶子里。
怕自己理解不了這東西,這雖然是一個理智的考量,但只要是人就會遇到瓶頸,但問題是如何突破瓶頸。瓶蓋又不是總是蓋上的,有機遇你得抓住!
我也曾畢業找不到工作,潦倒到當了一年保安。但我相信“是金子總會發光的”,我終會一鳴驚人,我現在只是一只受傷的野狼,我不會被命運所屈服馴化。因此跟我咆哮吧——
無名的生命之花 已慘遭摧殘踐踏
一度墜地的飛鳥 正焦急以待風起
一味埋頭祈禱 卻不會有任何改變
若想有所改變 就請起而奮戰吧
踏過尸體前行的我們
嘲笑這進擊意志的豬玀啊
家畜般的安寧 那虛偽的繁榮
請賜予誓死之餓狼以自由!
……
——進擊的巨人OP《紅蓮の弓矢》
框架的世界就是像電路板一樣復雜而精密,得道者能庖丁解牛,游刃有余,外行者則如墜迷夢,困死在盜夢空間。
原文:http://www.cnblogs.com/rubylouvre/p/3658441.html
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78061.html
摘要:問題回答者黃軼,目前就職于公司擔任前端架構師,曾就職于滴滴和百度,畢業于北京科技大學。最后附上鏈接問題我目前是一名后端工程師,工作快五年了。 showImg(https://segmentfault.com/img/bVbuaiP?w=1240&h=620); 問題回答者:黃軼,目前就職于 Zoom 公司擔任前端架構師,曾就職于滴滴和百度,畢業于北京科技大學。 1. 前端開發 問題 大...
摘要:月日至日,高可用架構和聯合主辦的全球互聯網架構大會將于上海光大會展中心舉行。全球互聯網架構大會是高可用架構技術社區推廣的面向架構師技術負責人及高端技術從業人員的技術架構大會。本次大會共有大板塊方向,場技術專題,個互聯網架構案例。 showImg(https://segmentfault.com/img/bVZ3Vh?w=600&h=375);12月22日至23日,高可用架構和msup聯...
摘要:月日至日,高可用架構和聯合主辦的全球互聯網架構大會將于上海光大會展中心舉行。全球互聯網架構大會是高可用架構技術社區推廣的面向架構師技術負責人及高端技術從業人員的技術架構大會。本次大會共有大板塊方向,場技術專題,個互聯網架構案例。 showImg(https://segmentfault.com/img/bVZ3Vh?w=600&h=375);12月22日至23日,高可用架構和msup聯...
摘要:因為用戶不用在第一次進入應用時下載所有代碼,用戶能更快的看到頁面并與之交互。譯高階函數利用和來編寫更易維護的代碼高階函數可以幫助你增強你的,讓你的代碼更具有聲明性。知道什么時候和怎樣使用高階函數是至關重要的。 Vue 折騰記 - (10) 給axios做個挺靠譜的封裝(報錯,鑒權,跳轉,攔截,提示) 稍微改改都能直接拿來用~~~喲吼吼,喲吼吼..... 如何無痛降低 if else 面...
摘要:楊永林,人稱教主,八年前端開發經驗,原新浪微博前端技術專家,現任鏈家網前端總架構師。年年底,教主加入鏈家網,負責前端的整體架構工作。 楊永林,人稱教主,八年前端開發經驗,原新浪微博前端技術專家,現任鏈家網前端總架構師。長期研究Web訪問性能優化和前端框架搭建。作為初始團隊成員,教主參與了新浪微博所有PC版本的開發,其中4~6版以架構師的身份設計了微博PC版的前端架構。在新浪微博任職期間...
閱讀 4220·2021-09-26 10:17
閱讀 871·2021-09-22 15:02
閱讀 3446·2021-09-06 15:00
閱讀 1055·2021-07-25 16:52
閱讀 2734·2019-08-29 16:16
閱讀 2515·2019-08-29 13:25
閱讀 1588·2019-08-26 13:51
閱讀 2182·2019-08-26 10:58