偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

簡單談談軟件開發(fā)中的模式

開發(fā) 項目管理
軟件設計模式是一個老生常談的問題,本文只是給大家簡單談談什么是模式,它有哪些不同的類型。

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

  何為模式?

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

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

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

  1、 代碼模式或者成例。

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

  若對這方面知識感興趣,我推薦兩本書:

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

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

  2、 設計模式。

  提起軟件模式,可能大家第一個想到的就是設計模式了,設計模式解決的往往面向?qū)ο笤O計中對象之間的關系??墒谷藗兛梢愿雍唵畏奖愕貜陀贸晒Φ脑O計和體系結構。將已證實的技術表述成設計模式也會使新系統(tǒng)開發(fā)者更加容易理解其設計思路。

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

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

  3、 架構模式

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

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

  4、 項目管理模式

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

  對此,推薦書籍如下:

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

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

  5、 反模式

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

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

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

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

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

【編輯推薦】

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

2023-10-31 00:49:20

對話式軟件開發(fā)

2022-08-20 18:28:49

汽車軟件

2009-06-12 11:35:28

模式框架軟件設計

2024-03-06 08:59:31

軟件開發(fā)設計觀

2010-03-16 18:32:58

ubuntuLinux

2023-02-09 16:48:12

軟件開發(fā)測試結對測試

2014-02-12 09:39:11

云計算

2011-05-12 11:28:40

軟件開發(fā)

2013-02-18 09:54:05

軟件開發(fā)程序員

2023-01-09 16:08:19

2014-01-16 14:06:18

軟件開發(fā)團隊管理

2020-05-19 10:36:28

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

2024-09-23 15:02:40

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2015-03-02 09:35:07

軟件開發(fā)

2011-07-04 17:09:54

2021-10-15 10:05:25

人工智能機器學習技術

2016-12-20 11:12:11

C代碼自測開發(fā)

2011-09-09 09:18:43

軟件開發(fā)團隊

2022-08-22 16:03:15

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

51CTO技術棧公眾號