系統開發 V
系統開發 part V
廢話一篇
阿貝你為什麼說程式不重要?以前我們寫程式,一直以為要怎麼寫才是最好的,那時的 internet 不是很發達,所以大家閉門造車,總以為自己寫的最完美,今天這個函數比內建函數更有效率,就沾沾自喜。
可是你根本沒有想過,後面的問題才是最大條的,自己越寫越多,寫到亂七八糟,每天趕進度,每天 debug,就為了找出一條蟲,最後連自己都看不懂自己寫的程式!
是不是講到各位的心聲?哈,所以接手的人,通常就會再重新寫一套,浪費時間,抱怨前人種草莓,後人吃大便。
所以阿貝才說,前面的系統設計很重要;那後面的程式也就不重要嘍?年輕人不要二分法!時代在變,現在 internet 網路發達,要找程式,要看範例,隨便 Google 就有了,但是系統分析卻是你的經驗,經過無數次的打仗,你才能得到你的戰績。
看人家寫程式寫的很簡單,但是他為什麼這樣寫,你要知道,這樣才能培養你的功力,至於是哪一種程式語言?很重要嗎?我也不知道哩,阿貝很多都會,每個也不精,叫我去考 Java,我一定比你們差。
Object Oriented
首先,我們要看 OO (Object Oriented),前面講過已分成好幾個模組 (package),我們就找一個來看看 command 這個模組,
├── MiTronics.java
├── command
├── Console.java
├── ConsoleFormat.java
└── Instruction.java
package command 包含了 3 個 java 檔案,這 3 個檔案可以互相 call 來 call 去,如何使用全靠該模組的程式人員自己運作,既然是 OO,就只要考慮人家怎麼呼叫你的程式,想像一下,例如你要寫一隻豬的樣子,喔, 4 隻腳,鼻子,耳朵,肥肥的 ,,,
Code
還需要解釋嗎? Console 就負責主要的運作,由 MiTronics 隨 CALL 隨到,而 Console 只能在 command 裡面打圈圈,所有的都是透過 console 或是 properties來採集資料,只有一個例外,就是呼叫 FaultMsg 錯誤訊息來源,我們從頭到尾都沒有講這個東西,只有在前幾個章節裡面有看到圖,原因很簡單,就是已經統一錯誤訊息寫作了,無須再重寫。
阿貝知道,為了效能,很多人會去寫inline code,例如 C 語言加上組合語言, 阿貝不太贊成,因為凸搥機率很高,( 想當年阿貝也是 inline code 的愛好者 ),也就是如此,才會有像 javascript 之類的膠水程式語言產生, 畢竟單一程式語言就能解決所有的問題的大型系統,畢竟少之又少。我想又有人抗議啦。哈。
叫你用 C 語言寫離散,還是你要用 MATLAB? 叫你抓網路上的 大數據 ,你覺得 Python 比較方便還是 Forth?同樣的資料庫的大量傳輸,你會選擇哪一種?Oracle or MS-SQL?那就要看你公司的需求,不是越大越好,越貴越好!PostgreSQL 跟 MySQL 也不錯,甚至現在還提倡 NoSQL 的新資料庫,所以主體還是要看你的需求。
所以阿貝疾呼,事先有較好的分析,比事後用程式來彌補更好,至於如何做好系統分析,你還是要寫程式練兵比較好,多看看別人寫的程式,順便了解人家如何寫大系統。
完成。
留言
張貼留言