iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
0

延續昨天的主題,繼續談開發四化中的自動化及系統化。

自動化(Auto Matic)

就像硬體廠商會使用機械手臂或其他類似的機器設備,來大幅提升生產的效能。 軟體廠商也希望能有類似的工具,能大幅縮短開發的時程。

昨天所談的元件化,就是自動化的重要基石,而本單元要談的主題,則是精靈 Wizard。

Wizard是較近期比較常用的名詞,早期大部分都稱之為程式產生器。顧名思義,就是能【依輸入的規格,自動產生程式碼】的工具程式。程式產生器並不是什麼新的概念,早在 MS-DOS時代,就已經有好幾套非常好的程式產生器,如 Stage、訊光科技的Dbtools 等,到了Windows時代,則有聯銓的 VDP及迅光的 EEP等。還有國外著名的Code Smith。

近期新的開發工具大廠,也開始在開發工具內建Wizard的部分功能。

例如微軟的 VS 20XX 就提供了很多的樣板程式,程式設計師只要選取所屬的型板(Template),就會產生完整的程式框架,這也減輕了程式設計師的工作負擔。從這個觀點來看,Wizard 的確會成為未來程式開發的主流技術。

設計精靈程式並不是一件容易的事,相反的它是一塊非常難啃的骨頭。想要開發精靈程式,大致要依循下列的步驟:

    1. 架構師先構思好系統的框架,並確認表單及報表的樣板(Template) 及使用者介面。
    1. 評估並確定使用的開發工具,如 VS2012、PHP、java、ROR 等等
    1. 架構師應責成專案經理,組織一個主要由資深且程式設計實作能力較強的系統設計師及資料庫管理師,共同組成 【拓荒小組】,專責依架構師思的概念,實作手工打造開發平台框架、底層共用程式、表單及報表預存程式的樣板程式,及研究整合相關的第三方元件。

這是專案起始的第一個重要工作,而且這個階段的成效,也會成為整個專案能否成功的關鍵指標。

接下來,要開始樣版程式的開發作業。關於表單及報表的樣板程式製作,其概念說明如下

  • a. 首先,要求拓荒小組全手工開發出完全符合架構思規劃的樣板程式,這會有多隻不同 Style的功能完整程式,樣式及所需功能完全由架構時規範。
  • b. 經嚴格測試無誤後,負責開發精靈的主要負責人(通常是系統設計師中的王牌程式設計師),開始分析原始程式碼的內容。
  • c. 將每一支原始程式碼中固定不變的內容,仍維持原內容,而會依不同程式內容改變的部分,如表單畫面上的欄位,則整段程式改為 @xxxx@ 的變數代表符號。依此步驟重複,將整支程式都改為 【多個變數+程式碼】的格式內容,將其另存為樣板檔,稱之為 【樣板程式】。
    https://ithelp.ithome.com.tw/upload/images/20181103/20111421QlLxgwvnnh.png
  • d. 重複上面的作業,將每一支程式都改為樣板程式。

精靈(Wizard) 的概念很單純

  • (1) 依定義檔的內容,讀取規格定義檔中的介面定義以及樣版程式檔的內容,如下圖
  • (2) 將樣板程式檔的內容,轉換為程式碼,其重點是將前一個步驟中的變數,要個別寫一段程式替換其內容。
  • (3) 當所有的變數內容都轉換為程式碼後,程式就正式產生完成。
    https://ithelp.ithome.com.tw/upload/images/20181103/20111421AwyrNDX2PS.png
    表單及報表程式都是重複以上的步驟即可。

原理及實作看起來並不難,但只有真正寫過精靈程式的設計師,才能深深的體會 這塊骨頭有多難啃。但是一旦完成精靈程式,整個專案的品質及生產力即可大幅提升,所以如果專案規格夠大,筆者會建議應自行開發精靈程式,反之,則尋找類似的工具使用即可。

系統化

前面的三個化,都和開發程式有直接的關係及產出,而本節要談的系統化,則是和專案進度管理有關。我個人一向信奉 Simple is King 簡單為王、大道至簡,如果要先搞一大本厚厚的手冊,才能做好所謂的管理,那就注定失敗的命運。

簡單的說,所謂的系統化,指的是透過整合使用 【專案管理程式】+ 【協同工作軟體】,建構一個專案進度控管平台,只要是專案成員,就可以透過此平台,隨時得知

  • a. 專案的進度
  • b. 錯誤及建議的處理狀況
  • c. 以及每個人員的待辦事項等等

也就是資訊透明,並會自動派送工作給相關人員,大幅降低專案主管的工作負擔,並讓工作流順暢,效率自然提升,專案經理只要專注在例外狀況的管理及資源的調配,讓專案一直在正確的軌道上順暢的運行。

所謂的開發四化,指的是在實際開發企業資訊系統時,所應遵循的一套嚴謹的規範,分為四大主題討論,開發系統不能再像早期隨心所欲的藝術家式的開發模式,而必須向工業管理一樣,依循標準作業程序動作,如此才能確保程式的品質及日後的維運。

軟體開發本就該有嚴謹的規範,因為企業資訊系統是企業經營的核心資訊,唯有高品質、可靠的系統,才能確保資訊的正確性。也唯有如此,軟體產業才能真正的形成一個產業,而不再只是一個尚未成熟的【新興行業】,雖然前路崎嶇迢迢,希望有志於此行業的菁英們共勉之。


上一篇
Day28: 一個完整系統開發的生命週期(一)
下一篇
Day30:結語
系列文
以資料庫為開發核心,利用通用 API 玩轉後端資料存取的概念與實作30

尚未有邦友留言

立即登入留言