自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單談?wù)勡浖_發(fā)中的模式

開發(fā) 項(xiàng)目管理
軟件設(shè)計(jì)模式是一個(gè)老生常談的問題,本文只是給大家簡(jiǎn)單談?wù)勈裁词悄J?,它有哪些不同的類型?/div>

  在我們身邊,有些問題反復(fù)出現(xiàn),而我們總是能夠成功的解決,但卻沒有及時(shí)總結(jié),升華思想;有些方法總是導(dǎo)致我們失敗,我們卻也沒有及時(shí)吸取教訓(xùn)。作為軟件開發(fā)人員,也不能例外。那么,不妨讓我們看看軟件開發(fā)中的模式,以及一些大師們經(jīng)典著作,希望能對(duì)以上問題提供解決思路。

  何為模式?

  模式一詞最早源于建筑行業(yè),但是如今含義和范圍已經(jīng)非常廣泛,它標(biāo)志了物件之間隱藏的規(guī)律關(guān)系,而這些物件并不必然是圖像、圖案,也可以是數(shù)字、抽象的關(guān)系、甚至思維的方式。模式強(qiáng)調(diào)的是形式上的規(guī)律,而非實(shí)質(zhì)上的規(guī)律。前人積累的經(jīng)驗(yàn)的抽象和升華。簡(jiǎn)單地說,就是從不斷重復(fù)出現(xiàn)的事件中發(fā)現(xiàn)和抽象出的規(guī)律,對(duì)解決問題的經(jīng)驗(yàn)的總結(jié)。只要是一再重復(fù)出現(xiàn)的事物,就可能存在某種模式。 簡(jiǎn)而言之,模式就是解決某一類問題的方法,而一般情況下,這種方法是可以被升華到理論,向更多人推廣和共享。

  軟件開發(fā)中有哪些模式?

  模式一詞也只是在八十年代,被Kent Beck等人引入軟件開發(fā)領(lǐng)域。那么軟件中到底都有那些模式呢?下面我就針對(duì)軟件開發(fā)中存在的一些模式做一些總結(jié)。

  1、 代碼模式或者成例。

  這類型的模式往往是最低層的模式,基本上和代碼或者某種開發(fā)語言有很強(qiáng)的相關(guān)性,是實(shí)現(xiàn)某個(gè)具體功能最佳編碼實(shí)現(xiàn)方式。比如:java script如何實(shí)現(xiàn)飄動(dòng)文字、進(jìn)程互斥、雙檢鎖等都可以作為代碼模式或者成例,甚至于一些常見的經(jīng)典算法。

  若對(duì)這方面知識(shí)感興趣,我推薦兩本書:

  一是《代碼大全》,此書是是著名IT暢銷書作者Steve McConnell的經(jīng)典之作,兩屆震撼大獎(jiǎng)得主,數(shù)十年軟件開發(fā)智慧。

  二是《Effective C# (中文版)改善C#程序的50種方法》, 本書作者Bill Wagner是世界知名的.NET專家,微軟C#領(lǐng)域的MVP。此書圍繞一些關(guān)于C#和.NET的重要主題,包括C#語言元素、.NET資源管理、使用C#表達(dá)設(shè)計(jì)、創(chuàng)建二進(jìn)制組件和使用框架等,講述了最常見的50個(gè)問題的解決方案,為程序員提供了改善C#和.NET程序的方法。

  2、 設(shè)計(jì)模式。

  提起軟件模式,可能大家第一個(gè)想到的就是設(shè)計(jì)模式了,設(shè)計(jì)模式解決的往往面向?qū)ο笤O(shè)計(jì)中對(duì)象之間的關(guān)系??墒谷藗兛梢愿雍?jiǎn)單方便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。將已證實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開發(fā)者更加容易理解其設(shè)計(jì)思路。

  通常情況下,設(shè)計(jì)模式指的是GOF 在1995提出的23種模式,其第一次將設(shè)計(jì)模式提升到理論高度,并將之規(guī)范化。時(shí)至今日,在可復(fù)用面向?qū)ο筌浖陌l(fā)展過程中,新的設(shè)計(jì)模式仍然不斷出現(xiàn),但很難找出能出其右的新理論了。

  如果對(duì)設(shè)計(jì)模式還不是很清楚,那么請(qǐng)直接參考GOF經(jīng)典之作《設(shè)計(jì)模式》,不過閱讀此書需要注意,書中舉得例子不是現(xiàn)在主流的語言,所用圖示也不是標(biāo)準(zhǔn)UML。所以也可以閱讀后來人們專門針對(duì).net或者java編寫的相關(guān)書籍。

  3、 架構(gòu)模式

  架構(gòu)一詞,其實(shí)很泛,在這里,我僅指軟件實(shí)現(xiàn)的框架,描述了一個(gè)軟件的總體綱要或者基本結(jié)構(gòu)。體現(xiàn)在程序中,指的是模塊之間或者子系統(tǒng)之間的預(yù)先定義的職責(zé)關(guān)系,是一種粗粒度的對(duì)象處理,架構(gòu)往往強(qiáng)調(diào)設(shè)計(jì)復(fù)用。比如常見的MVC、MVP、AOP、ORM、總線架構(gòu)、微內(nèi)核、元數(shù)據(jù)模式等整體架構(gòu)或者局部架構(gòu)。

  關(guān)于架構(gòu)模式,推薦書籍為《企業(yè)應(yīng)用架構(gòu)模式》,作者M(jìn)artin Fowler是當(dāng)今面向?qū)ο筌浖_發(fā)的權(quán)威,他在一組專家級(jí)合作者的幫助下,將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,最終寫成這本能夠應(yīng)用于任何一種企業(yè)應(yīng)用平臺(tái)的、關(guān)于解決方案的、不可或缺的手冊(cè)。本書獲得了2003年度美國(guó)軟件開發(fā)雜志圖書類的生產(chǎn)效率獎(jiǎng)和讀者選擇獎(jiǎng)。

  4、 項(xiàng)目管理模式

  項(xiàng)目管理模式指的是對(duì)項(xiàng)目組織實(shí)現(xiàn)過程中解決某種問題而采取的成功方法的總結(jié)。項(xiàng)目管理常見的模式如:敏捷開發(fā)、RUP、測(cè)試驅(qū)動(dòng)開發(fā)等。項(xiàng)目管理模式也是眾多模式中理解最容易卻實(shí)現(xiàn)最難的模式,很多時(shí)候需要項(xiàng)目管理人員根據(jù)經(jīng)驗(yàn)去選擇合適的方法(模式)。

  對(duì)此,推薦書籍如下:

  一是《敏捷軟件開發(fā)——原則、模式與實(shí)踐》,此書是享譽(yù)全球的軟件開發(fā)專家和軟件工程大師Robert C . Martin向您介紹如何解決軟件開發(fā)人員、項(xiàng)目經(jīng)理及軟件項(xiàng)目領(lǐng)導(dǎo)們所面臨的最棘手的問題,是第13屆軟件開發(fā)震撼大獎(jiǎng)獲獎(jiǎng)作品。

  二是《測(cè)試驅(qū)動(dòng)開發(fā)》和《極限編程》。隨著軟件規(guī)模的不斷擴(kuò)大和軟件復(fù)雜性的不斷提高,傳統(tǒng)的軟件開發(fā)方法已逐漸不能適應(yīng)當(dāng)代軟件開發(fā)的需要,Kent Beck長(zhǎng)期致力于軟件工程的理論研究和實(shí)踐,這兩本書介紹的正是在這種背景下提出的一些全新的軟件開發(fā)方法(其實(shí),極限編程應(yīng)該是1996年就提出來并被Kent Beck應(yīng)用在項(xiàng)目管理中,至今依然備受推崇)。

  5、 反模式

  怎么前邊都是模式,最后又要反模式?其實(shí),反模式也是模式,是指用來解決問題的帶有共同性的不良方法,它們已經(jīng)經(jīng)過研究并分類,以防止日后重蹈覆轍,并能在研發(fā)尚未投產(chǎn)的系統(tǒng)時(shí)辨認(rèn)出來。說白了,反模式就是容易將事情搞砸的卻經(jīng)常犯的錯(cuò)誤方法。

  其實(shí)反模式涉及面也很廣,包括了項(xiàng)目管理上的反模式,如:水中望月、軟件膨脹等;設(shè)計(jì)中的反模式:上帝類、煙囪系統(tǒng)等,此外還有編碼上的反模式、方法上的反模式等。

  關(guān)于反模式的詳細(xì)信息,具體參與《反模式:危機(jī)中軟件、架構(gòu)和項(xiàng)目的重構(gòu)》,作者William J . Brown從一個(gè)新的角度審視模式,提出了反模式的概念,介紹了在軟件開發(fā)中常常出現(xiàn)的問題,讓讀者可以迅速地檢驗(yàn)身邊的項(xiàng)目是否出現(xiàn)了這些狀況,同時(shí)也針對(duì)每個(gè)反模式給出了相應(yīng)的解決方案。

  通過以上模式的總結(jié),既是對(duì)自己思路的總結(jié),也希望能夠?qū)λ似鸬綊伌u引玉的作用。

原文鏈接:http://www.cnblogs.com/YangWeiguo/archive/2011/08/09/2132330.html

【編輯推薦】

  1. 新手軟件項(xiàng)目經(jīng)理該如何入門
  2. 項(xiàng)目經(jīng)理的力量應(yīng)該從哪里來?
  3. 當(dāng)你從程序員變?yōu)轫?xiàng)目經(jīng)理
  4. 軟件測(cè)試項(xiàng)目為什么會(huì)失敗
  5. 項(xiàng)目管理之CVS與SVN日常使用總結(jié)
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2023-10-31 00:49:20

對(duì)話式軟件開發(fā)

2022-08-20 18:28:49

汽車軟件

2009-06-12 11:35:28

模式框架軟件設(shè)計(jì)

2024-03-06 08:59:31

軟件開發(fā)設(shè)計(jì)觀

2010-03-16 18:32:58

ubuntuLinux

2023-02-09 16:48:12

軟件開發(fā)測(cè)試結(jié)對(duì)測(cè)試

2014-02-12 09:39:11

云計(jì)算

2011-05-12 11:28:40

軟件開發(fā)

2023-01-09 16:08:19

2013-02-18 09:54:05

軟件開發(fā)程序員

2020-05-19 10:36:28

人工智能AI軟件開發(fā)

2014-01-16 14:06:18

軟件開發(fā)團(tuán)隊(duì)管理

2024-09-23 15:02:40

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2015-03-02 09:35:07

軟件開發(fā)

2021-10-15 10:05:25

人工智能機(jī)器學(xué)習(xí)技術(shù)

2011-07-04 17:09:54

2011-09-09 09:18:43

軟件開發(fā)團(tuán)隊(duì)

2016-12-20 11:12:11

C代碼自測(cè)開發(fā)

2022-08-22 16:03:15

軟件開發(fā)系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)