軟件開(kāi)發(fā)的關(guān)鍵是什么?
來(lái)源: http://huarui.cc/ 時(shí)間:2021-01-20
在軟件開(kāi)發(fā)中基礎(chǔ)知識(shí)尤為關(guān)鍵,錦州網(wǎng)站建設(shè)作為一個(gè)初學(xué)者我們應(yīng)該了解如下幾方面:
一、過(guò)程:控制和管理軟件開(kāi)發(fā)活動(dòng)
軟件過(guò)程用來(lái)控制和管理軟件團(tuán)隊(duì)的開(kāi)發(fā)活動(dòng)和進(jìn)度,對(duì)于個(gè)人來(lái)說(shuō),錦州網(wǎng)站建設(shè)也需要使用一定的過(guò)程方法來(lái)規(guī)范化自己的開(kāi)發(fā)流程。
二、方法: 用什么來(lái)構(gòu)建軟件模塊和應(yīng)用程序
計(jì)算機(jī)中最基本的要素是數(shù)據(jù)和邏輯,這對(duì)應(yīng)于早期的機(jī)器語(yǔ)言和匯編語(yǔ)言時(shí)代。錦州網(wǎng)站建設(shè)然而,這樣不利于大型軟件的開(kāi)發(fā)和管理,程序中容易充斥大量混亂的goto跳轉(zhuǎn)邏輯,因此,出現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)方法,主要思想是:程序=數(shù)據(jù)結(jié)構(gòu)+算法+模塊組織。首先,用規(guī)范的控制語(yǔ)句(順序,條件,循環(huán))消除容易混亂的goto跳轉(zhuǎn)邏輯;其次,用模塊化的思想來(lái)管理軟件的構(gòu)造。這種方法的基礎(chǔ)是:管道與重定向。管道是指一個(gè)程序的輸入可以充當(dāng)另一個(gè)程序的輸出。重定向是將數(shù)據(jù)源或數(shù)據(jù)目的地指定為所期望的流(標(biāo)準(zhǔn)I/0,文件等)。通過(guò)對(duì)程序的靜態(tài)分析,通常就能準(zhǔn)確推理出程序的行為。
隨后,出現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,將應(yīng)用程序分解為對(duì)象及對(duì)象之間的交互和通信。對(duì)象是數(shù)據(jù)與緊密相關(guān)的邏輯的良好封裝。面向?qū)ο蟮某绦蛟O(shè)計(jì)的一個(gè)復(fù)雜性表現(xiàn)在,無(wú)法通過(guò)靜態(tài)的程序分析來(lái)推理程序的行為;其原因之一是使用了多態(tài)機(jī)制。
為了各種系統(tǒng)之間的互操作,出現(xiàn)了面向服務(wù)的理念。使用面向過(guò)程或?qū)ο蟮姆椒?,將某些功能打包成服?wù)提供給外界。這需要有相應(yīng)的應(yīng)用協(xié)議來(lái)輔助,比如數(shù)據(jù)交換格式XML。面向服務(wù): 面向?qū)ο螅ㄟ^(guò)程) +服務(wù)模塊+應(yīng)用協(xié)議。
未來(lái)還將會(huì)出現(xiàn)怎樣的
程序設(shè)計(jì)和軟件構(gòu)造方法學(xué)呢?
我們拭目以待
三、語(yǔ)言、框架和可用庫(kù):
選擇現(xiàn)有技術(shù)和框架構(gòu)建應(yīng)用和服務(wù)
為了能夠快速建立應(yīng)用,通常不會(huì)重新發(fā)明輪子,而是直接選擇合適的現(xiàn)有框架和庫(kù)、語(yǔ)言。比如,javaweb開(kāi)發(fā)可能選擇Struts+ hibernate + spring 來(lái)完成,C++有STL,MFC等,C有大量的標(biāo)準(zhǔn)庫(kù)函數(shù)可用,PHP和Perl都有海量的模塊可供選用。有時(shí)可能需要開(kāi)發(fā)自己專有的庫(kù),以避免依賴于其它商業(yè)公司的決策行為。
令人欣慰的是,通常能夠找到好的開(kāi)源工具和軟件作為開(kāi)發(fā)的基礎(chǔ)。當(dāng)然,來(lái)而不往非禮也,利用開(kāi)源的優(yōu)勢(shì)和服務(wù),也應(yīng)當(dāng)盡力用某種方式回饋開(kāi)源社區(qū)。
四、工具與IDE:選擇合適的工具并能高效使用
磨刀不誤砍柴功。構(gòu)建自己喜愛(ài)的工具箱是高效開(kāi)發(fā)應(yīng)用的要素之一。錦州網(wǎng)站建設(shè)Windows下的程序編輯工具有ultraedit等,Linux下的程序編輯工具有emacs和vim ;編譯工具有g(shù)cc, g++,javac;運(yùn)行調(diào)試工具gdb,測(cè)試框架有XUnit等,部署工具有ant,make, maven等;建模工具有草圖,UML,還有代碼分析工具lint,profile,代碼控制CVS, SVN. 選擇一款好的IDE也是非常重要的。比如Eclipse,就是一款非常不錯(cuò)JavaIDE。
五、內(nèi)功: 快速領(lǐng)悟新技術(shù)
無(wú)論從事計(jì)算機(jī)的哪個(gè)行業(yè),深厚的內(nèi)功是非常重要的。扎實(shí)的專業(yè)基礎(chǔ)、敏捷縝密的思維有助于快速領(lǐng)悟新技術(shù)。專業(yè)基礎(chǔ)包括:1. 對(duì)計(jì)算機(jī)系統(tǒng)深入而整體的理解;2. 操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)、數(shù)據(jù)庫(kù)、程序網(wǎng)絡(luò)通信等。
要做好實(shí)際開(kāi)發(fā)工作,從兩個(gè)方面入手:1. 熟悉掌握開(kāi)發(fā)領(lǐng)域的動(dòng)態(tài)和技術(shù);2. 博覽群書(shū),廣泛涉獵,從任何可能的地方去汲取有益的啟示。