昨天跟一位中學的師兄在電話上談論IT的技術。師兄以前是從事會計,對IT也很有興趣。由於對工作的環境不滿意,放棄了高薪的會計工作,轉了入一間知名的會計軟件公司。由於他對上市公司的合拼帳的運作很熟悉,負責設計新的會計系統。
在電話裡跟他談了很多不同的電腦技術。其中一樣比較新鮮的就是設計「流程管理」軟件,我的師兄說他的公司已經開發了一套「流程管理」Workflow的軟件,由於規模比較大,難於應用在小規模的計劃內。那套「流程管理」的軟件是從收購其他公司而得回來,未能融合在其他產品之上。他的公司曾經花了很多時間和資源去從新開發另一套「流程管理」的系統,但結果不理想,內部人士的評語是設計了另一套解讀c#的c#。這個奇怪的評語,指的就是,用一套類似c#的語言來表達整個流程,包括表達圖片及表真正的流程及其相關的邏輯。
令我想起了我公司那套專為「中介付款系統」背後的「流程管理系統」。設計者是其中的一位同事,是兩年多年的產物。主要的原理是利用邏輯而產生出SQL語言,然後將SQL執行的結果,轉換成流程。
我師兄的老闆是C#高手,而我的同事是SQL高手。他們在設計時難免會以自己最熟悉的技術出發。本來,這種思維模式是理所當然的。可是,c#或SQL太不像圖象,用他們來做圖象介面,不太合適。C#不能直接翻譯,所以用來表達「流程」的邏輯,吃力不討好,SQL處理邏輯不太靈活。這兩種電腦語言,用在「流程管理」上是「相去甚遠」。就算設計者是「神」級也要花巨大的氣力才可以勉強成事。
所以,每當我們要去解決自己熟悉的領域之外的問題時,要細心想想,自己所習慣的模式是否「相去甚遠」呢?
回到原先的問題,本人覺得,古老的「流程圖」還是最合適表達「流程」。則DOM是種很好的描述畫面的中介語言。最後,JSON是一種很好的溝通及直譯的電腦語言。所以,我們可以採用「流程圖」->「DOM」->「JSON」的方式來將「流程」轉化為「JSON」。「JSON」可以被儲存、提取及轉化為真的「流程」及其邏輯。
當然,我們亦可以考慮用XML取代JSON的角式,也可以用UML代替「流程圖」。設計理念是差不多的。