《從“ShowMe”到“快圖”》
——袁德俊 (最後更新日期:2004/9/4)
一、儘可能掌握多一些工具軟體,這是提高溝通效率的要件
在7/17日我撰寫的《螞蟻啃大象·論開源精神·ShowMe項目策劃》,出發點可能不在製作一個比“PowerPoint”還要強大的工具軟體,更多的是討論如何“協作”。本文則是專註於策劃一款“繪圖工具”,靈感來源於近日與朋友們溝通過程中頻繁見到的Visio繪製的流程圖。之所以叫它“快圖”是因為如今的繪圖工具實在不如在紙上胡亂地畫些框和線來的直接和快速,更是同朋友們交流溝通的一個最先使用的方法。Visio工具繪製的圖,更多的是在“正式”的場合,準確地定義好了思路的情況下。
近日的感受,如此眾多的工具,功能豐富的令人眼花繚亂,多學習學習比自己開發要來的更重要,最直接的收益就是Boss對你的計劃書刮目相看。
下面就開始描述,我對這個未來工具的描述,可能它的功能早已經被某個軟體實現,我為我的孤陋寡聞表示歉意。不過我的策劃中不只包含功能的實現,還參加了“程式員”最慣性的思考方式,部分的系統解決方案,甚至細節的技術實現。
二、“快圖”的輸入資料流程:
大家對“手寫輸入”應該不陌生,就這一個功能的實現,就足以消耗“漢王”的全部精力,動用龐大的開發資源,產生巨大的應用市場了。“快圖”一定要有“手繪輸入”能力。
此情景好象在某個軟體巨頭的宣傳片裡見過。IT精英用在手寫板電腦上,用筆在螢幕上畫著不是很規則的方框,以及不規則的連線,再手寫幾個單詞在方框裡,於是電腦螢幕上就出現了如Visio一樣的流程圖了,用觸筆拖動方框,調整/修改著流程,對面的同事/客戶,更可以用同樣的方法表達自己的意見。結果當然是令人欣慰的,討論結束,正式的流程圖就已經完成了。
這和我與朋友們交流的時候,在紙上胡亂地畫著,最後紙上被逐漸加重的線條塗抹的面目全非,來的好不只一星半點鐘兒。哈,好象想起來了,好象有個“電子墨水”的概念。
三、“快圖”裡眾多的“對象”:
如同Visio一樣,眾多的工具列裡管理了繁多的繪製元素,或線或點或圖形或文字,你能想到的它都有。這和PowerPoint裡的繪製元素沒有什麼區別,以目前的軟體銷售模式,你也許需要支付2套軟體的費用,因為它們輸出結果有區別,且都有一點點各自的功能。
在“快圖”裡,我們的繪製元素可以被繪製到任何目標上,螢幕、紙張、投影片,任何你需要塗鴉的地方都可以被“對象”封裝起來。當然這些繪製元素也都是一個個“對象”,可以被分類管理選擇,也可以手寫辨識。繪製流程無非是:先選“畫布”(好象來自PhoToShop),再選繪製對象,放置在畫布上,改變尺寸/屬性,針對對象增加額外的處理效果。
好象遺漏了一類重要對象“尺子”。這是我們從小學就在文具盒裡準備的工具了,從最簡單的直線,到後來的半圓儀,繪圖板,甚至電子元件專用的電路圖繪製板。我再延伸一下,有座標的繪圖紙都是為了輔助我們精確定位繪製元素的“尺子”。這些“對象”有些是我們在繪製的時候明確選擇的,有的是預設選擇的,比如:我們畫線段就預設選擇了“直尺”,畫流程的線條則自動選擇了“折線”。這些都是“電腦”協助我們實現的。
四、成熟的概念——“層”
無一例外:PowerPoint、Office的其他組件、PhotoShop、Flash等等,只要是圖形系統,“層”就一定會出現,包括遊戲引擎DirectX裡。眾多的繪製元素要有條理地顯示在“畫布”上,藉助“層”來管理和描述它們的關係是在合適不過了。當然同一個“層”裡可以用“順序”來表示它們的前後關係。
五、“快圖”的高內聚的核心——外掛程式系統
要實現眾多“對象”的管理,要實現眾多繪製規則的添加,該產品就必須有一個高內聚的核心,將所有必須的核心基礎對象進行抽象,比如:繪製元素、紙、尺子等,然後以靈活的介面,用外掛程式擴充的方式提供“對象”的豐滿。現在的很多流行的成功的應用,外掛程式系統和系統擴充都設計的非常好,是“快圖”必須做到的部分。
目前,NGNc正在開發的NGNbios的UI系統,正在朝向這個目標邁進。
六、“快圖”的開發模式
現在最前沿的UML開發模式,可能更加適合“應用”系統的開發,對於“快圖”的核心,更適合的是利用“人腦”管理它的模型和體系架構,包括代碼管理等。在核心完畢後,其上的“外掛程式系統”則可以作為應用系統的開發模式,引入各種先進的管理和開發思想實現。