圓桌問答 (2017 第二季)

文章轉載自「開發者圓桌」一個關於開發者入門、進階、踩坑的微信公衆號html

在QQ羣交流中你們提出了不少關於如何進階的問題,這裏總結一下,分享出來,但願能夠幫助要進階的你。web

 

問:設計模式必會嗎?設計模式

答:設計模式(Design pattern)是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的;設計模式使代碼編寫真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構同樣。微信

 

正如設計模式的定義那樣,應用好的設計模式可讓代碼更加健壯、可靠且易於維護,從更長遠來看要不斷學習和總結設計模式在本身代碼中的應用。架構

 

固然,沒有應用設計模式的代碼也能夠正常運行,可是在後期的維護中會帶來很大的工做量,設計模式的應用是一個逐步的過程,你的代碼寫到必定的量以後,天然而然就會接觸到設計模式,並體會到設計模式帶來的好處和效率提高。框架

 

國內大部分公司都是要求儘快實現業務功能,而不是實現好的代碼設計,不多有人去真正關注設計模式,可是要得到長足的進步,就須要在平時的開發中不斷開展設計模式的應用實踐。工具

 

要全方位看待設計模式,不要陷入設計模式的怪圈,有些場景不須要考慮設計模式,簡單的實現可能更好,應用設計模式可能會多此一舉。學習

 

你可能在大部分的項目中都看不到設計模式的影子,由於大部分的業務軟件都是根據模塊進行的劃分,通常的web系統在架構整個項目骨架的時候會用到設計模式,多采用MVC模式進行開發,單獨的功能模塊不多會用到設計模式。編碼

 

哪裏能夠看到設計模式的具體應用代碼呢?好比Java的JDK源碼、Apache開源項目這些都會涉及到設計模式的應用,若是你感興趣,不妨閱讀幾個項目的源碼,你會看到設計模式在這些項目裏面應用的很是頻繁。閱讀源碼能夠增長你的代碼能力和解決問題的思路。spa

 

可能有的開發者要問,爲啥這些項目裏面的設計模式應用的比較多呢?JDK也好Apache開源項目也好都是很是通用的軟件產品,很是注重代碼的架構和設計,爲後期的維護和發展預留必要的空間,因此從設計到編碼整個過程都會特別注重設計模式的應用。


問:怎麼突破自身的瓶頸?

答:首先,咱們要明白啥是瓶頸?事物在變化發展過程當中遇到了一些困難(障礙),進入一個艱難時期。跨過它,就能更上一層樓;反之,可能停滯不前。

 

其次,如何知道本身遇到了瓶頸呢?若是你作事很熟練順手,沒有任何的障礙,可能你正在處於停滯強化期,這個時期不會有大的進步,而是不斷強化已得技能,成爲一種熟練工;若是你作事困難重重,老是不順,感受本身無所適從,這個時期可能就是你的瓶頸期,若是你能經過不斷的學習和技能增加度過這個時期,那麼恭喜你,你已經突破了本身的瓶頸,進入一個新的強化期。

 

咱們講了這麼多關於瓶頸期和強化期的概念,那麼如何才能突破自身的瓶頸呢?

 

咱們從橫向和縱向兩個方向來闡述如何突破自身瓶頸。所謂的橫向突破,就是在工做一段時間之後,換個工做的方向,好比你可能作了幾年的開發,不想寫代碼了,那麼能夠轉向作軟件設計或者需求設計;所謂的縱向突破就是向深度發展已得技能,雖然作了幾年的開發,可是仍是對編碼比較感興趣,那麼你能夠繼續作下去,可是這個時期你不是簡單的開發業務功能,而是轉向項目架構、重構代碼、閱讀開源項目等更深刻的方向。

 

不管是橫向仍是縱向,均可以實現自身的突破,選擇哪一個方向仍是看我的的性格和愛好,有些人天生就是技術控,而有些人可能更擅長人際溝通,這個要因人而異。


問:如何進階?好比Java進階或者PHP進階

答:作開發一段時間之後,業務功能的實現已經不成問題,業務需求過來之後基本上能夠獨立實現,這個時期你已經能夠編寫功能性代碼,可是還不能編寫優秀的代碼,那麼該如何進階呢?

 

閱讀源碼是快速進階的一個方法,尤爲是優秀的開源項目,這些源碼項目從設計到成品都是嚴格按照設計來完成的,並且一個開源項目的成品是衆多開發高手共同完成的,代碼自己就已經很是優秀了。不只僅是開源項目,你接觸到的項目源代碼均可以拿來學習。

 

把閱讀源碼獲取的經驗和心得再次不斷的應用到你本身的業務代碼中,通過反覆的學習和應用,你就會成爲開發高手,進階天然完成。

 

好比Java的JDK就是一個很是好的源碼項目,能夠拿來慢慢品讀。還有就是Apache這類的開源組織有不少的開源項目,能夠拿來閱讀。不用太多,兩三個項目閱讀下來,你的開發水平已經不可同日而語了。PHP也有不少能夠閱讀的東西,PHP的不少框架如Zend、ThinkPHP等都是很是好的學習資源。

 

閱讀源碼是一個很是艱苦和枯燥的事情,只要你堅持下去,開發能力會進步的很快。


問:源碼有推薦源碼查看器麼?

答:開源的項目都是有源代碼的,不須要特殊的查看器,只須要把項目下載導入到你平時使用的IDE便可。

 

若是實在沒法獲取源碼,也不要緊,能夠採用一些反編譯工具進行查看,好比Java語言的jd反編譯器等。


問:小白怎麼提問?

答:首先你必須明白,大牛們只偏心艱鉅的任務,或者能激發他們思惟的好問題,對大牛而言,「問得好!」是發自心裏的大力稱讚。

 

儘管大牛們有蔑視簡單問題和不友善的壞名聲,有時看起來彷佛對新手,對知識貧乏者懷有敵意,但其實不是那樣的。

 

在你決定向大牛們求助前,先來閱讀一下「如何請教別人問題?」吧。

相關文章
相關標籤/搜索