软件技术发展的驱动力
生活随笔
收集整理的這篇文章主要介紹了
软件技术发展的驱动力
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
軟件產(chǎn)品的終極目標是為了實現(xiàn)用戶需求從而滿足人們的需要。也正是為了不斷滿足人們的需要使得軟件行業(yè)不斷向前發(fā)展。比如,新的算法(MPEG-1、MPEG-2、MPEG-4、H.264、……)等的出現(xiàn)都在當時為了滿足不同的需要而被發(fā)明。然而,人們的需要(行業(yè)發(fā)展的外部動力)卻并非是軟件技術發(fā)展的唯一驅(qū)動力,因為它無法解釋為什么業(yè)內(nèi)的編程語言、軟件平臺與框架等會層出不窮,有的甚至給人“重新發(fā)明輪子”的感覺。如何判斷“新輪子”的確是必要的呢?這與本文想重點關注的另外三大驅(qū)動力有關,重點關注它們的原因源于其與我們的日常工作更加息息相關。
我認為,軟件技術發(fā)展的另外三大驅(qū)動力分別是簡化、復用和美化(行業(yè)發(fā)展的內(nèi)部動力)。“新輪子”是否必要的關鍵,是看它在簡化、復用和美化這三個緯度上是否存在優(yōu)于“老輪子”的內(nèi)容。注意,這三大驅(qū)動力是站在程序員的角度去觀察的,而不是從軟件產(chǎn)品的最終用戶角度。因為最終用戶只關心產(chǎn)品的功能與使用體驗,而不關注產(chǎn)品的開發(fā)過程,更不關心產(chǎn)品是用“老輪子”抑或“新輪子”構(gòu)建的。
簡化是應對日益復雜和規(guī)模龐大軟件的核心有效手段,因為“復雜的問題總是以簡單的方法解決的”(引自《大師亞當斯》)。簡化的關鍵不是“拍腦袋”做到哪是哪,而需運用我們的洞察力去找到解決問題的關鍵路徑、去繁求簡。然而,洞察力的獲得除了需要在某一技術方向上的長期積累外,更需要我們不斷堅持就所面臨的問題全神貫注地思考,洞察力也因此成為了行業(yè)的稀缺資源,也決定了真正能簡化軟件設計與實現(xiàn)的人少之又少。
簡化在業(yè)內(nèi)有各種不同的表現(xiàn)形式,除了有方法論(比如,領域驅(qū)動開發(fā)、面向?qū)ο缶幊獭⒃O計模式和解耦),更有通過不同形式和程度的抽象(比如,C編程語言之于匯編語言、C++編程語言之于C編程語言、各種軟件平臺與框架)。有趣的是,這些表現(xiàn)形式在簡化的道路上自身卻帶來了更大的復雜度(復雜度是守恒的?)。
復用的好處相信眾人皆知,這使得我們因避免“重新造(相同的)輪子”而獲得更高的開發(fā)效率和更高質(zhì)的產(chǎn)品。復用這一驅(qū)動力使得業(yè)內(nèi)出現(xiàn)各種不同的開源軟件平臺與框架,也使得軟件企業(yè)長期致力于打造自有產(chǎn)品的通用軟件平臺與框架。對于復雜軟件來說,競品的背后實際上是軟件平臺與框架之爭。
復用的表現(xiàn)形式不只是構(gòu)建軟件平臺與框架,還有各種編程語言的“語法糖”等。
簡單是一種美,但美不只在于簡單,更有軟件的內(nèi)在結(jié)構(gòu)與代碼的表現(xiàn)形式,美化因此也成為了驅(qū)動軟件技術發(fā)展的另一大動力。我認為軟件之美在于:1)對適應將來軟件功能變化而導致的代碼變更保持一定的彈性。這種適應能力其實是對軟件內(nèi)在結(jié)構(gòu)的合理性提出了要求。2)代碼能作為程序員間流暢溝通的載體與橋梁。這是對代碼的表現(xiàn)形式所提出的要求,也間接地指出編程的目的不只是提供API或?qū)崿F(xiàn)軟件功能。美化工作的不到位是很多軟件開發(fā)團隊深陷質(zhì)量困境的重要原因。
我認為,軟件技術發(fā)展的另外三大驅(qū)動力分別是簡化、復用和美化(行業(yè)發(fā)展的內(nèi)部動力)。“新輪子”是否必要的關鍵,是看它在簡化、復用和美化這三個緯度上是否存在優(yōu)于“老輪子”的內(nèi)容。注意,這三大驅(qū)動力是站在程序員的角度去觀察的,而不是從軟件產(chǎn)品的最終用戶角度。因為最終用戶只關心產(chǎn)品的功能與使用體驗,而不關注產(chǎn)品的開發(fā)過程,更不關心產(chǎn)品是用“老輪子”抑或“新輪子”構(gòu)建的。
簡化是應對日益復雜和規(guī)模龐大軟件的核心有效手段,因為“復雜的問題總是以簡單的方法解決的”(引自《大師亞當斯》)。簡化的關鍵不是“拍腦袋”做到哪是哪,而需運用我們的洞察力去找到解決問題的關鍵路徑、去繁求簡。然而,洞察力的獲得除了需要在某一技術方向上的長期積累外,更需要我們不斷堅持就所面臨的問題全神貫注地思考,洞察力也因此成為了行業(yè)的稀缺資源,也決定了真正能簡化軟件設計與實現(xiàn)的人少之又少。
簡化在業(yè)內(nèi)有各種不同的表現(xiàn)形式,除了有方法論(比如,領域驅(qū)動開發(fā)、面向?qū)ο缶幊獭⒃O計模式和解耦),更有通過不同形式和程度的抽象(比如,C編程語言之于匯編語言、C++編程語言之于C編程語言、各種軟件平臺與框架)。有趣的是,這些表現(xiàn)形式在簡化的道路上自身卻帶來了更大的復雜度(復雜度是守恒的?)。
復用的好處相信眾人皆知,這使得我們因避免“重新造(相同的)輪子”而獲得更高的開發(fā)效率和更高質(zhì)的產(chǎn)品。復用這一驅(qū)動力使得業(yè)內(nèi)出現(xiàn)各種不同的開源軟件平臺與框架,也使得軟件企業(yè)長期致力于打造自有產(chǎn)品的通用軟件平臺與框架。對于復雜軟件來說,競品的背后實際上是軟件平臺與框架之爭。
復用的表現(xiàn)形式不只是構(gòu)建軟件平臺與框架,還有各種編程語言的“語法糖”等。
簡單是一種美,但美不只在于簡單,更有軟件的內(nèi)在結(jié)構(gòu)與代碼的表現(xiàn)形式,美化因此也成為了驅(qū)動軟件技術發(fā)展的另一大動力。我認為軟件之美在于:1)對適應將來軟件功能變化而導致的代碼變更保持一定的彈性。這種適應能力其實是對軟件內(nèi)在結(jié)構(gòu)的合理性提出了要求。2)代碼能作為程序員間流暢溝通的載體與橋梁。這是對代碼的表現(xiàn)形式所提出的要求,也間接地指出編程的目的不只是提供API或?qū)崿F(xiàn)軟件功能。美化工作的不到位是很多軟件開發(fā)團隊深陷質(zhì)量困境的重要原因。
現(xiàn)實中,軟件技術的進步其實是簡化、復用和美化三大驅(qū)動力的綜合結(jié)果,因為三者間并非完全正交。比如,簡化的結(jié)果可能也實現(xiàn)了美化,美化的結(jié)果可能也帶來了簡化,復用又為我們帶來了簡化。無論如何,通常其中一個是作為技術發(fā)展的主導動機。
了解三大驅(qū)動力有助于我們更理性地看待軟件技術的發(fā)展,同時作者也想暗示,我們在軟件開發(fā)工作中應從簡化、復用和美化三方面著手,而不能停留在“軟件能用就行”這種“原始需求”上。否則,我們的行為就是不符合軟件技術發(fā)展的“潮流”哦!
推薦閱讀
《軟件設計的真諦》
《駕馭你的“職場布朗運動”》
本文出自李云的博客,請務必保留此出處:http://blog.csdn.net/hzliyun/article/details/8252245。
總結(jié)
以上是生活随笔為你收集整理的软件技术发展的驱动力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Beyond Compare 4秘钥
- 下一篇: 高级弥散模型:单指数、IVIM、DKI、