国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

應用菜鳥到框架大牛五部曲

2019-11-17 03:24:32
字體:
來源:轉載
供稿:網友

應用菜鳥到框架大牛五部曲

今天起,文章開頭都會推薦一兩首好聽的歌曲,以符合行文的節奏心情,紀念我們流逝的青春。第一天先推薦,許巍的《時光》、《曾經的你》。

編程領域從架構上,可分為兩大部分,框架開發和應用開發。

每個人都是從應用開發起步的,使用著各種官方或第三方框架。java非常依賴各種框架,J2EE, SPRing等。.NET一般只須.NET Framework。框架是現代編程語言不可分割的一部分,框架要精無須大而全,一個不足百KB的JQuery就改變了整個Web的面貌。

在實際開發中,對框架往往有兩種不正確的認識:

一、把框架地位看得過高,往往發生在初學者身上。以為掌握框架就是掌握了這門語言。端著本上千頁的《xxx高級編程》,啃得是頭昏眼花,水平一點也沒長進。ADO.NET、WPF、WCF這些,要那么高級知識干嘛?項目根本用不上。

二、把框架看得過于簡單,一般出現于有數年經驗的開發者身上。隨著開發的磨練,對框架有了一些自己的認識,很多人開始自己建框架,又稱造輪子,發到博客上覺得很不錯。可如果用到實際項目中,這種“框架”會讓未來重構痛不欲生。如果只是用來練習提高也不錯,不過要注意表費太多時間,因為架構往往都很不成熟。我個人就有幾次,自己累得半死,項目還無法保證質量完成,教訓刻骨銘心。

開發框架并不一定牛,但能設計好一個框架一定很牛。那些少于10萬行代碼的項目最好不要搞自己的框架,沒寫到10萬行代碼,千萬別在實際項目中設計“框架”。

如果確實想練練手,更好的主意是參加開源項目,Git和CodePlex上都有許多優秀框架,包括.Net Framework一部分的EF和MVC就在CodePlex上,Git上則應有盡有,最著名的就是Mono。

不想做將軍的士兵不是好士兵,不想寫框架的程序員是屬于混日子的那種。這種程序員,即使做應用開發也不會專業起來。

我也沒寫過拿得出手的框架,所以不能說怎么寫,只能談怎么學習框架。概括就四個字:邊用邊學。

具體起來,分作五步吧,無數大牛就是從這五部曲走過來的

1. 掌握基本語言特性。類屬性方法靜態繼承這些就算用不熟,至少能認出來。不用多說。

2. 找一篇好文章演練框架。這步很關鍵,一篇好文章就可以讓你熟悉一個相對較小的框架,比如StructureMap。對于一個復雜框架比如asp.net,一篇文章可以讓你完整認識一個方面,比如數據綁定。這個過程快則一天,慢則一周。

就我自己經驗來說,不喜歡按部就班按示例,我喜歡這里變點那里變點,其實我是好奇而已,費時間多一點不過值得。

.NET BCL發展到4.5,已經有點臃腫了,迫切需要瘦身了。幾百M幾萬個類,怎么可能死記硬背?知道引入哪個程序集,在哪個命名空間下能得到自己需要的API就好。

網上教程資源良莠不齊,而且很大一部分早已過時,對初學者來說,要找到這樣的好文章真的很難。本文最后,將附上一些我覺得適合快速入門,又提供擴展想象的優秀文章鏈接,個人視野有限,希望大家提醒,將不斷補充。

3. 在你的項目中應用,哪里不會就google,問同事,問社區。 邊用邊思考,這個API是否可以更方便,那里配置是不是用什么設計模式。初學乍練,我們經常并不是最恰當的方式用API,要有不斷重構優化的覺悟。

開發應用時,要想著某一天要做框架。有時間的話,可以研究一下框架的源碼。要注意不是研究其邏輯實現,重點在于其架構模式,以及跟其他框架、系統底層的交互,這是我們提高框架設計能力必備的。

不是做應用開發就不必了解設計模式,恰恰相反,做應用開發因為接觸得少,更需要主動了解設計模式,以免成日陷于業務海洋中成了磚家,專門搬磚蓋永遠蓋不到頂的業務大樓。而且有一些模式,應用開發中用的更頻繁。對于架構模式同理。

不要用一些“超前”的模式或架構,如果不懂它們也不要緊,因為你的代碼寫得不夠多,或者項目不夠復雜。要緊密結合自己的項目,如果自己工作項目規模不夠,可以研究開源。

昨天剛看到一個朋友,發文抱怨用EF時被Repository模式誤導。這一方面確實要歸疚于那些“大牛”,很多人都人云亦云,根本沒指出甚至都沒想過這個模式帶來什么樣的便利。另一方面,作者應該也吸取了教訓,不要隨便用你看不懂的東西,如果它確實有用,那就到你能領悟的時候再用。

關于此條和前一條,陳梓瀚的一篇“胡扯”可以看看。

4. 框架應用得日臻熟練,得心應手了。這并還不夠,世上沒有完美的框架。除了已死的框架,框架都是在不斷發展完善,要不斷學習框架的更新。如果你在應用的時候不斷思考,就不會覺得跟不上,因為更新帶來正好是期待已久的。

框架既然是不完美的,也一定有其生命周期。比如我們把WebService升級成WCF,就會大大提高擴展性,滿足更多更復雜的需求。要注意微軟有時候會出一些比較坑的框架,出一版就不再更新,比如Linq2SQL,所以至少要在第二版出來,功能性能大幅提高了再升級框架。

不少人說,技術更新太快跟不上,其實就是太懶而已。框架新功能開發速度,跟你應用的速度差了幾個數量級。

雖然我曾經列過20條死于重構的理由,但我知道一定嚇不倒前赴后繼的勇士。好了,其實大家有一個百死不回的理由-為框架升級而重構,天經地義。出了事情怎么辦,要么是框架的問題,要么是系統實在太爛,可以死得光榮瞑目了。

5. 在2、3、4步反復N次后,一個開發平臺的主要框架了然于胸,開始框架開發之旅。

可能開始是構造一個個小的應用框架,一定要很謹慎地限制的應用范圍,注意擴展性,免得以后難以維護。

不要重復造輪子,現有的框架可能有種種不足,但要想想你又不是鐵道部的,別人一定要有充分的理由才會換你的框架。

專業的程序員業余時間可以寫點休閑的代碼,但任何時候都要設法令自己參與框架更專業。

要有專業的命名,別圖省事或在命名上發揮創造力,要讓大家都能接受,學《.NET設計規范》。

要有專業的文檔,專業的注釋。

要有專業的API,設身處地地想別人如何用你的框架,要考慮其他人的習慣,要考慮在各種操作系統、開發平臺下的兼容性。

要用專業的標準,比如用W3C標準的Html,采用Unicode/Utf-8.而不是Ansi,不要別出心裁獨樹一職。

要有專業的分享,聽取別人意見,可以讓你的框架完善事半功倍,讓你的框架和能力得到認可。

最后,最最重要的是,要有專業的態度,持之以恒,不管投身于自己的還是開源框架。只要不斷努力,十年之后,你的名字一定會隨著你的框架被時代所銘記。


個人認為BCL中框架按使用頻率等,分為下面幾個表格,等待高手推薦的攻略,歡迎共享。先奉上一篇自己找到并翻譯的IoC框架StructureMap的文章。

一級框架:

框架名速成攻略/指南備注
ASP.NET
WCF
IO包括Net IO
ADO + EF
LINQ
Concurrent

二級框架:

框架名速成攻略/指南備注
xml
Reflection
Winform
WPF/Silverlight
Graphics
Workflow
MEF

擴展和第三方框架:

框架名速成攻略/指南備注
StructureMap(IoC)StructureMap極速上手指南(翻譯)
NUnit(Unit Test)
NHibernate
……

特別是千錘百煉的ASP.NET,經過了MVC/Razor/Web API的發展后,需要一個繼往開來的全新上手指南,如果實在找不到,很想自己寫一個,非常有挑戰性。還有蓬勃發展的Cocurrent編程,要總結一篇出色的攻略,需要有非凡的想象力。

學速成攻略,是降低工作壓力,提高生活質量的好途徑。不要擔心所謂軟件開發的內功,你以為是練九陰真經的白骨爪嗎?天下有奇遇練成上乘內功的有幾個呢?實際他們頂多是氣宗,我們是劍宗,到底孰強孰弱,金老先生早就給了我們答案。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 喀喇沁旗| 九江县| 搜索| 库尔勒市| 昌都县| 泾源县| 扶沟县| 内丘县| 上高县| 江达县| 澄江县| 杂多县| 昌宁县| 云和县| 普兰店市| 玉树县| 兴国县| 方正县| 航空| 峡江县| 山丹县| 昌平区| 闸北区| 大足县| 临潭县| 湖州市| 榆林市| 安康市| 镇安县| 平南县| 都兰县| 长垣县| 宾阳县| 莱芜市| 文水县| 思南县| 隆林| 高邮市| 修武县| 衡阳市| 吴川市|