軟體技術發展的驅動力

來源:互聯網
上載者:User

軟體產品的終極目標是為了實現使用者需求從而滿足人們的需要。也正是為了不斷滿足人們的需要使得軟體行業不斷向前發展。比如,新的演算法(MPEG-1、MPEG-2、MPEG-4、H.264、……)等的出現都在當時為了滿足不同的需要而被發明。然而,人們的需要(行業發展的外部動力)卻並非是軟體技術發展的唯一驅動力,因為它無法解釋為什麼業內的程式設計語言、軟體平台與架構等會層出不窮,有的甚至給人“重新發明輪子”的感覺。如何判斷“新輪子”的確是必要的呢?這與本文想重點關注的另外三大驅動力有關,重點關注它們的原因源於其與我們的日常工作更加息息相關。

我認為,軟體技術發展的另外三大驅動力分別是簡化、複用和美化(行業發展的內部動力)。“新輪子”是否必要的關鍵,是看它在簡化、複用和美化這三個緯度上是否存在優於“老輪子”的內容。注意,這三大驅動力是站在程式員的角度去觀察的,而不是從軟體產品的終端使用者角度。因為終端使用者只關心產品的功能與使用體驗,而不關注產品的開發過程,更不關心產品是用“老輪子”抑或“新輪子”構建的。

簡化是應對日益複雜和規模龐大軟體的核心有效手段,因為“複雜的問題總是以簡單的方法解決的”(引自《大師亞當斯》)。簡化的關鍵不是“拍腦袋”做到哪是哪,而需運用我們的洞察力去找到解決問題的關鍵路徑、去繁求簡。然而,洞察力的獲得除了需要在某一技術方向上的長期積累外,更需要我們不斷堅持就所面臨的問題全神貫注地思考,洞察力也因此成為了行業的稀缺資源,也決定了真正能簡化軟體設計與實現的人少之又少。

簡化在業內有各種不同的表現形式,除了有方法論(比如,領域驅動開發、物件導向編程、設計模式和解耦),更有通過不同形式和程度的抽象(比如,C程式設計語言之於組合語言、C++程式設計語言之於C程式設計語言、各種軟體平台與架構)。有趣的是,這些表現形式在簡化的道路上自身卻帶來了更大的複雜度(複雜度是守恒的?)。

複用的好處相信眾人皆知,這使得我們因避免“重新造(相同的)輪子”而獲得更高的開發效率和更高質的產品。複用這一驅動力使得業內出現各種不同的開源軟體平台與架構,也使得軟體企業長期致力於打造自有產品的通用軟體平台與架構。對於複雜軟體來說,競品的背後實際上是軟體平台與架構之爭。

複用的表現形式不只是構建軟體平台與架構,還有各種程式設計語言的“文法糖”等。

簡單是一種美,但美不只在於簡單,更有軟體的內在結構與代碼的表現形式,美化因此也成為了驅動軟體技術發展的另一大動力。我認為軟體之美在於:1)對適應將來軟體功能變化而導致的代碼變更保持一定的彈性。這種適應能力其實是對軟體內在結構的合理性提出了要求。2)代碼能作為程式員間流暢溝通的載體與橋樑。這是對代碼的表現形式所提出的要求,也間接地指出編程的目的不只是提供API或實現軟體功能。美化工作的不到位是很多軟體Team Dev深陷品質困境的重要原因。

現實中,軟體技術的進步其實是簡化、複用和美化三大驅動力的綜合結果,因為三者間並非完全正交。比如,簡化的結果可能也實現了美化,美化的結果可能也帶來了簡化,複用又為我們帶來了簡化。無論如何,通常其中一個是作為技術發展的主導動機。

瞭解三大驅動力有助於我們更理性地看待軟體技術的發展,同時作者也想暗示,我們在軟體開發工作中應從簡化、複用和美化三方面著手,而不能停留在“軟體能用就行”這種“原始需求”上。否則,我們的行為就是不符合軟體技術發展的“潮流”哦!

本文出自 “李雲” 部落格,請務必保留此出處http://yunli.blog.51cto.com/831344/1077317

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.