• 相關文章(zhāng)
    軟件資訊
    當前位置:啓肯科技> 新聞資訊> 軟件資訊> 詳情頁

    開發一個(gè)軟件平台的(de)一些心得(de)體會

    TAG: 軟件開發(10) 軟件平台(1) 時(shí)間:2017-08-29 浏覽:0
    一.研發人(rén)員(yuán)如何分(fēn)工?
     在以前我就設想一種較爲合理(lǐ)的(de)開發模式是:研發人(rén)員(yuán)劃分(fēn)爲三撥人(rén):平台底層開發人(rén)員(yuán)+平台功能開發人(rén)員(yuán)+項目二次開發人(rén)員(yuán)。這(zhè)三撥人(rén)形成兩種需求關系:平台功能開發人(rén)員(yuán)爲開發平台功能而向平台底層開發人(rén)員(yuán)提出接口需求,平台底層開發人(rén)員(yuán)爲滿足這(zhè)些需求而實現接口;項目二次開發人(rén)員(yuán)爲滿足二次開發需要而向平台開發人(rén)員(yuán)提出功能需求,平台開發人(rén)員(yuán)爲滿足這(zhè)個(gè)需求而開發功能。這(zhè)樣劃分(fēn)的(de)好處是使得(de)軟件開發不再是一種閉門造車的(de)活動,而是一種需求帶動的(de)活動。在這(zhè)種需求關系的(de)驅動下(xià),每個(gè)人(rén)都可(kě)能成爲某個(gè)領域的(de)專家。

    二.最大(dà)的(de)差距之一是産品設計
    除開算(suàn)法等軟件因素,國産軟件和(hé)外國軟件的(de)最大(dà)差距是什(shén)麽?我認爲是産品設計。因爲缺乏專業的(de)設計人(rén)員(yuán),界面大(dà)多(duō)是開發人(rén)員(yuán)和(hé)測試人(rén)員(yuán)商量著(zhe)設計的(de)。這(zhè)種設計往往有著(zhe)三大(dà)弊端:一是說法不準确,比如有一次我就看到幫助菜單欄上有一項叫“關于對(duì)話(huà)框”,就對(duì)一個(gè)同事說:“你去翻翻Microsoft Word,看看它的(de)幫助菜單欄上是否有關于對(duì)話(huà)框這(zhè)一項,它的(de)是關于Microsoft Office Word,因爲用(yòng)戶不明(míng)白對(duì)話(huà)框是何物(wù)”;二是缺乏人(rén)性化(huà)的(de)交互設計,這(zhè)個(gè)很好理(lǐ)解,因爲開發人(rén)員(yuán)不是一線用(yòng)戶,開發人(rén)員(yuán)一般實現功能了(le)事,沒想著(zhe)怎麽把軟件做(zuò)得(de)更人(rén)性化(huà)。如果同一個(gè)功能由他(tā)成千上百次地操作,或許他(tā)會想到要做(zuò)得(de)更人(rén)性化(huà)些:三是缺乏美(měi)感,這(zhè)個(gè)源于我們接受的(de)教育。我們從小到大(dà)就沒接受過美(měi)學教育,設計出來(lái)的(de)東西很難有美(měi)感。

    三.API的(de)演化(huà)
    有沒有一個(gè)開發高(gāo)手一開始就能把底層庫的(de)API都設計好?我相信我們大(dà)多(duō)是凡人(rén),不具備這(zhè)樣的(de)功力。照(zhào)這(zhè)樣說,API自然要經曆一個(gè)從不完善到比較完善的(de)曆程。那麽問題來(lái)了(le),如何縮短這(zhè)個(gè)曆程,如何降低API演化(huà)過程中的(de)成本?我想到的(de)有兩點:一是軟件設計人(rén)員(yuán)應盡可(kě)能閱讀你所開發平台的(de)開源代碼,吸收其中設計方面的(de)精髓;二是就底層API的(de)設計應盡量發揚技術民主,在内部就API的(de)設計展開充分(fēn)的(de)討(tǎo)論,這(zhè)樣設計出來(lái)的(de)API被大(dà)家接受的(de)程度也(yě)會大(dà)些。

    四.需要分(fēn)支版本嗎?
    開始我設想應盡可(kě)能加快(kuài)産品的(de)叠代,盡量在項目檢驗API,在項目中應用(yòng)主幹版本的(de)SDK進行二次開發。一些同事不同意我的(de)激進做(zuò)法。他(tā)們主張應設立分(fēn)支版本SDK,用(yòng)它做(zuò)項目的(de)二次開發,三個(gè)月(yuè)或半年再從主幹版本中更新。實踐說明(míng),同事的(de)意見是對(duì)的(de),這(zhè)樣做(zuò)兼顧了(le)項目的(de)快(kuài)速開發和(hé)産品的(de)開發,避免因接口變動而影(yǐng)響項目。

    五.工具集合的(de)作用(yòng)
    開發一個(gè)軟件平台,需要很多(duō)工具。這(zhè)些工具一般由腳本語言編寫,比如設置環境變量的(de)批處理(lǐ),遍曆一個(gè)文件夾的(de)所有工程将其都加到一個(gè)新建的(de)解決方案,二次開發工程向導等等。這(zhè)些工具短小精悍,卻往往能有效提高(gāo)開發效率。這(zhè)時(shí)你會感覺掌握一門腳本語言是多(duō)麽有用(yòng)!
    說點什(shén)麽吧
    • 全部評論(0
      還(hái)沒有評論,快(kuài)來(lái)搶沙發吧!