想要成為一名合格的web前端架構(gòu)師,你需要學(xué)習(xí)很多東西,網(wǎng)頁制作、設(shè)計(jì)模式、代碼重構(gòu)、服務(wù)器、框架設(shè)計(jì)及多年的前端架構(gòu)經(jīng)驗(yàn)、技巧,懂SEO、Ued等以及設(shè)計(jì)方式及用戶體驗(yàn)。
本人也是coding很多年,雖然很失敗,但也總算有點(diǎn)失敗的心得,不過我在中國,大多數(shù)程序員都是像我一樣,在一直走著彎路。如果想成為一個(gè)架構(gòu)師,就必須走正確的路,否則離目標(biāo)越來越遠(yuǎn),正在辛苦工作的程序員們,你們有沒有下面幾種感覺?
一、我的工作就是按時(shí)完成領(lǐng)導(dǎo)交給我的任務(wù),至于代碼寫的怎樣,知道有改進(jìn)空間,但沒時(shí)間去改進(jìn),關(guān)鍵是領(lǐng)導(dǎo)也不給時(shí)間啊。
二、我發(fā)現(xiàn)我的水平總是跟不上技術(shù)的進(jìn)步,有太多想學(xué)的東西要學(xué),jQuery用的人最近比較多啊,聽說最近MVC比較火,還有LINQ,聽說微軟又有Silverlight了……
三、我發(fā)現(xiàn)雖然我工作幾年了,除了不停的coding,Ctrl+C和Ctrl+V更熟練了,但編碼水平并沒有提高,還是一個(gè)普通程序員,但有人已經(jīng)做到架構(gòu)師了。
四、工作好幾年了,想跳槽換個(gè)工作,結(jié)果面試的考官都問了一些什么數(shù)據(jù)結(jié)構(gòu),什么垃圾回收,什么設(shè)計(jì)模式之類的東西,雖然看過,但是平時(shí)用不著,看了也忘記了,回答不上來,結(jié)果考官說我基礎(chǔ)太差。。。
有沒有,如果沒有,接下來就不用看了,你一定是大拿了,或者已經(jīng)明白其中之道了,呵呵。
如果有,恭喜你,你進(jìn)入學(xué)習(xí)誤區(qū)了,如果想在技術(shù)上前進(jìn)的話,就不能一直的coding,為了完成需求而工作,必須在coding的同時(shí),讓我們的思維,水平也在不停的提高。
寫代碼要經(jīng)歷下面幾個(gè)階段。
一 、你必須學(xué)習(xí)面向?qū)ο蟮幕A(chǔ)知識,如果連這個(gè)都忘了,那你的編程之路注定是在做原始初級的重復(fù)!
很多程序員都知道類、方法、抽象類、接口等概念,但是為什么要面向?qū)ο?,好處在哪里,要解決什么問題?只是明白概念,就是表達(dá)不清楚,然后在實(shí) 際工作中也用不上,過了一段時(shí)間,面向?qū)ο蟮臇|西又模糊了,結(jié)果是大多數(shù)程序員用著面向?qū)ο蟮恼Z言做著面向過程的工作,因此要學(xué)習(xí)面向?qū)ο?,首先?yīng)該明白 面向?qū)ο蟮哪康氖鞘裁矗?br/> 面向?qū)ο蟮哪康氖鞘裁矗?br/> 開發(fā)語言在不斷發(fā)展,從機(jī)器語言,到匯編,到高級語言,再到第四代語言;軟件開發(fā)方法在不斷發(fā)展,從面向過程,面向?qū)ο?,到面向方面等。雖然這些都在不斷發(fā)展,但其所追求的目標(biāo)卻一直沒變,這些目標(biāo)就是:
1. 降低軟件開發(fā)的復(fù)雜度
2. 提高軟件開發(fā)的效率
3. 提高軟件質(zhì)量:可維護(hù)性,可擴(kuò)展性,可重用性等。
其中語言的發(fā)展,開發(fā)方法的發(fā)展在1,2兩條上面取得了極大的進(jìn)步,但對于第3條,我們不能光指望開發(fā)方法本身來解決。
提高軟件質(zhì)量:可維護(hù)性,可擴(kuò)展性,可重用性等,再具體點(diǎn),就是高內(nèi)聚、低耦合,面向?qū)ο缶褪菫榱私鉀Q第3條的問題。因此要成為一個(gè)好的程序員,最繞不開的就是面向?qū)ο罅恕?
二、 要想學(xué)好面向?qū)ο?,就必須學(xué)習(xí)設(shè)計(jì)模式。
假定我們了解了面向?qū)ο蟮哪康?,概念了,但是我們coding過程中卻發(fā)現(xiàn),我們的面向?qū)ο蟮闹R似乎一直派不上用場,其實(shí)道理很簡單,是因?yàn)?我們不知道怎么去用,就像游泳一樣,我們已經(jīng)明白了游泳的好處,以及游泳的幾種姿勢,狗刨、仰泳、蛙泳、自由泳,但是我們依然不會游泳。。。。
因此有了這些基本原則是不行的,我們必須有一些更細(xì)的原則去指導(dǎo)我們的設(shè)計(jì),這就有了更基礎(chǔ)的面向?qū)ο蟮奈宕笤瓌t,而把這幾種原則更詳細(xì)的應(yīng)用 到實(shí)際中來,解決實(shí)際的問題,這就是設(shè)計(jì)模式。因此要學(xué)好OO,必須要學(xué)習(xí)設(shè)計(jì)模式,學(xué)習(xí)設(shè)計(jì)模式,按大師的話說,就是在人類努力解決的許多領(lǐng)域的成功方 案都來源于各種模式,教育的一個(gè)重要目標(biāo)就是把知識的模式一代一代傳下去。
因此學(xué)習(xí)設(shè)計(jì)模式,就像我們在看世界頂級的游泳比賽,我們?yōu)橹偪?,為之著迷?br/> 三、學(xué)習(xí)設(shè)計(jì)模式
正像我們并不想只是看別人表演,我們要自己學(xué)會游泳,這才是我們的目的所在。
當(dāng)我們看完幾篇設(shè)計(jì)模式后,我們?yōu)橹裾駣^,在新的coding的時(shí)候,我們總是想努力的用上學(xué)到的設(shè)計(jì)模式,但是經(jīng)常在誤用模式,折騰半天發(fā)現(xiàn)是在脫褲子抓癢。。。
當(dāng)學(xué)完設(shè)計(jì)模式之后,我們又很困惑,感覺這些模式簡直太像了,很多時(shí)候我們分不清這些模式之間到底有什么區(qū)別,而且明白了設(shè)計(jì)過程中的一個(gè)致命 的東西——過度設(shè)計(jì),因?yàn)樵O(shè)計(jì)模式要求我們高擴(kuò)展性,高重用性,但是在需求提出之初,我們都不是神,除了依靠過去的經(jīng)驗(yàn)來判斷外,我們不知道哪些地方要擴(kuò) 展,哪些地方要重用,而且過去的經(jīng)驗(yàn)就一定是正確的嗎?所以我們甚至不敢再輕易用設(shè)計(jì)模式,而是還一直在用面向過程的方法在實(shí)現(xiàn)需求。
四、學(xué)習(xí)重構(gòu)
精彩的代碼是怎么想出來的,比看到精彩的代碼更加令人期待。于是我們開始思考,這些大師們莫非不用工作,需求來了沒有領(lǐng)導(dǎo)規(guī)定完成時(shí)間,只以設(shè) 計(jì)精彩的代碼為標(biāo)準(zhǔn)來開展工作?這樣的工作太爽了,也不可能,老板不愿意啊。就算這些理想的條件他都有,他就一開始就設(shè)計(jì)出完美的代碼來了?也不可能啊, 除非他是神,一開始就預(yù)料到未來的所有需求,那既然這些條件都沒有,他們?nèi)绾螌懗龅木蚀a?
Joshua Kerievsky在那篇著名的《模式與XP》〔收錄于《極限編程研究》一書)中明白地指出:在設(shè)計(jì)前期使用模式常常導(dǎo)致過度工程(over- engineering)。這是一個(gè)殘酷的現(xiàn)實(shí),單憑對完美的追求無法寫出實(shí)用的代碼,而「實(shí)用」是軟件壓倒一切的要素。
在《重構(gòu)——改善既有的代碼的設(shè)計(jì)》一書中提到,通過重構(gòu)(refactoring),你可以找出改變的平衡點(diǎn)。你會發(fā)現(xiàn)所謂設(shè)計(jì)不再是一切動 作的前提,而是在整個(gè)開發(fā)過程中逐漸浮現(xiàn)出來。在系統(tǒng)構(gòu)筑過程中,你可以學(xué)習(xí)如何強(qiáng)化設(shè)計(jì);其間帶來的互動可以讓一個(gè)程序在開發(fā)過程中持續(xù)保有良好的設(shè) 計(jì)。
總結(jié)起來就是說,我們在設(shè)計(jì)前期就使用設(shè)計(jì)模式,往往導(dǎo)致設(shè)計(jì)過度,因此應(yīng)該在整個(gè)開發(fā)過程,整個(gè)需求變更過程中不斷的重構(gòu)現(xiàn)在的代碼,才能讓 程序一直保持良好的設(shè)計(jì)。由此可見,開發(fā)過程中需要一直重構(gòu),否則無論當(dāng)初設(shè)計(jì)多么的好,隨著需求的改變,都會變成一堆爛代碼,難以維護(hù),難以擴(kuò)展。所謂 重構(gòu)是這樣一個(gè)過程:「在不改變代碼外在行為的前提下,對代碼做出修改,以改進(jìn)程序的內(nèi)部結(jié)構(gòu)」。重構(gòu)的目標(biāo),就是設(shè)計(jì)模式,更本質(zhì)的講就是使程序的架構(gòu) 更趨合理,從而提高軟件的可維護(hù)性,可擴(kuò)展性,可重用性。
《重構(gòu)——改善既有的代碼的設(shè)計(jì)》一書也是Martin Fowler等大師的作品,軟件工程領(lǐng)域的超級經(jīng)典巨著,與另一巨著《設(shè)計(jì)模式》并稱"軟工雙雄",不可不讀啊。
五、開始通往優(yōu)秀軟件設(shè)計(jì)師的路上。
通過設(shè)計(jì)模式和重構(gòu),我們的所學(xué)和我們工作的coding終于結(jié)合上了,我們可以在工作中用面向?qū)ο蟮乃季S去考慮問題,并開始學(xué)習(xí)重構(gòu)了。這就 像游泳一樣,我們看完了各種頂級的游泳比賽,明白各種規(guī)則,名人使用的方法和技巧,現(xiàn)在是時(shí)候回家去村旁邊的小河里練練了。練習(xí)也是需要有教練的,推薦另 一本經(jīng)典書叫《重構(gòu)與模式》,引用他開篇的介紹,本書開創(chuàng)性地深入揭示了重構(gòu)與模式這兩種軟件開發(fā)關(guān)鍵技術(shù)之間的聯(lián)系,說明了通過重構(gòu)實(shí)現(xiàn)模式改善既有的 設(shè)計(jì),往往優(yōu)于在新的設(shè)計(jì)早期使用模式。本書不僅展示了一種應(yīng)用模式和重構(gòu)的創(chuàng)新方法,而且有助于讀者結(jié)合實(shí)戰(zhàn)深入理解重構(gòu)和模式。
這本書正是我們需要的教練,值得一讀。
六、沒有終點(diǎn),只有堅(jiān)持不懈的專研和努力。
經(jīng)過了幾年的堅(jiān)持,終于學(xué)會了靈活的運(yùn)用各種模式,我們不需要去刻意的想用什么模式,怎么重構(gòu)。程序的目標(biāo),就是可維護(hù)性,可擴(kuò)展性,可重用 性,都已經(jīng)成了一種編程習(xí)慣,一種思維習(xí)慣,就像我們練習(xí)了幾年游泳之后,我們不用再刻意的去考慮,如何讓自己能在水上漂起來,仰泳和蛙泳的區(qū) 別..... 而是跳進(jìn)水里,就自然的游了起來,朝對岸游去。但是要和大師比起來,嘿嘿,我們還有很長的路要走,最終也可能成不了大師,但無論能不能成為大師,我們已經(jīng) 走在了成為大師的正確的路上,我們和別的程序員已經(jīng)開始不一樣,因?yàn)樗麄儫o論再過多少年,他們的水平不會變,只是在重復(fù)造輪子,唯一比你快的,就是 Ctrl+C和Ctrl+V。
正確的路上,只要堅(jiān)持,就離目標(biāo)越來越近,未來就一定會是一個(gè)優(yōu)秀的架構(gòu)師,和優(yōu)秀架構(gòu)師的區(qū)別,可能只是時(shí)間問題。
web前端架構(gòu)師可能還有更深遠(yuǎn)的意義,這個(gè)需要資深的程序員去創(chuàng)造、去挖掘,促使前端行業(yè)的快速發(fā)展。
以上部分內(nèi)容來自互聯(lián)網(wǎng)搜集整理,只學(xué)有用的。如果有更好的見解或文章推薦,請?jiān)谙路搅粞裕尭嗟牧私饽?,學(xué)習(xí)更多的知識。
免費(fèi)學(xué)習(xí)課堂
- 免費(fèi)推廣知識
- 競價(jià)推廣知識
- 新媒體營銷知識
- 網(wǎng)站運(yùn)營知識
- 網(wǎng)站設(shè)計(jì)知識
- 網(wǎng)站建設(shè)知識
- Web前端知識
- 軟文營銷知識
- 網(wǎng)站策劃知識
- 整合營銷
推薦文章
web前端架構(gòu)師是做什么的?
來源:北京匯仁智杰科技有限公司 時(shí)間:2016-06-23 點(diǎn)擊: 次
推薦文章
- 織夢dedecms漏洞修復(fù)大全含任意文件2016-09-05
- 整頓微信公眾號過度營銷 對嚴(yán)重違2016-01-26
- SEO優(yōu)化過程要避免什么?2016-01-26
- 網(wǎng)站空間被掛馬的原因原因及解決2016-01-26
- 2016企業(yè)該如何運(yùn)用互聯(lián)網(wǎng)進(jìn)行營銷2016-01-26
- WEB前端項(xiàng)目開發(fā)中需注意的細(xì)節(jié)2016-01-26
- 低價(jià)網(wǎng)站建設(shè)的危害有哪些?2016-01-15
- 如何詳細(xì)的分析你網(wǎng)站的競爭對手2015-06-10
- 網(wǎng)站設(shè)計(jì)中四個(gè)常犯的錯(cuò)誤2015-01-22
- 如何搭配網(wǎng)站設(shè)計(jì)中的色彩?2015-01-22