上大學(xué)的時候,從來沒想過要考什么計算機方面的證書。畢業(yè)后,參加工作的幾年來來,卻突然想考一下國內(nèi)的軟考的高級軟件架構(gòu)師,有不一樣的感受。
一聽到國內(nèi)的軟考考試,總會有一種應(yīng)試且不實用感覺。這是國內(nèi)考試的通病。不得不說,參加這次軟考考試,的確是有種應(yīng)試大于能力的感受。期間有許多知識點需要記憶,這些知識點也是考試大綱羅列的考試范圍。
試讀參考書目的過程中,除了指定的考點外,實有意外的收獲。這些考點在無形之中,似乎串起了軟件架構(gòu)師需要的基本理論知識。
從自己的實際經(jīng)驗角度,來看待軟件架構(gòu)師職責(zé),更多的想應(yīng)用開源的軟件設(shè)計方案形成一整套系統(tǒng)解決方案。選擇和應(yīng)用的過程主要是從軟件的特性和應(yīng)用場景著手,對目標(biāo)軟件進行基本測試。在基本滿足應(yīng)用需求的條件下,就可以選擇使用了。然后在系統(tǒng)磨合中,進一步了解不同構(gòu)件對系統(tǒng)帶來的具體影響。在這整個過程中,就是以實用為主,可以解決當(dāng)下遇到的問題。但是卻難以應(yīng)對軟件在特殊的應(yīng)用場景下,出現(xiàn)的功能不足與性能劣勢。
以實用主義盡快實現(xiàn)當(dāng)下的經(jīng)濟效益,當(dāng)然可以理解,但是卻總覺得缺少一些什么,來給選擇的構(gòu)件或者架構(gòu)做長遠(yuǎn)的質(zhì)量評估。這些在應(yīng)試軟考高級架構(gòu)師考試的時候,卻有意外的收獲。軟考高級架構(gòu)師的參考書中,對領(lǐng)域的架構(gòu)形式和架構(gòu)質(zhì)量評估等,都給出了理論上的指導(dǎo), 這有些出乎我的意料。在軟件開發(fā)方法和軟件架構(gòu)方面,發(fā)現(xiàn)有些理論基礎(chǔ)是可以對工程具有指導(dǎo)意義的,這對于程序員進行系統(tǒng)開發(fā),對于架構(gòu)師進行架構(gòu)選擇與質(zhì)量評估,對于項目經(jīng)理進行項目管理等,可以給出原則上的理論依據(jù)。這對于長期從事工程實踐的我來說,有相見恨晚的感覺。
小規(guī)模的軟件公司,在從事軟件研發(fā)的時候,經(jīng)常采用原型模式和敏捷開發(fā)模式。原型模式通常用在用戶對需求不明確時,嘗試滿足用戶需求的階段。本意是沒有問題的,但是在實際項目中,開發(fā)出的原型卻往往不能投入實際的應(yīng)用中,而最終不了了之。為什么開發(fā)出的原型難以滿足用戶的要求,并且在一次一次的原型設(shè)計和開發(fā)過后,仍然不能獲得實際的應(yīng)用?這些是讓我在原型的開發(fā)和設(shè)計階段,有疑惑也是手足無措的地方。之所以說有收獲,是因為這讓我意識到這些問題是切切實實存在的,是在軟件開發(fā)中存在的普遍問題。小規(guī)模的團隊流行采用敏捷開發(fā)的方式,快速增量的進行迭代來開發(fā)。我所在的團隊中,也是應(yīng)用了敏捷開發(fā)的模式。在多次迭代中不斷豐富軟件功能,每天例行站會匯報昨天完成的工作與接下來的工作計劃。