VB:面向信息編程

  說到VB,順帶提一個詞“可視化編程”。“可視化編程”大致可以分兩種情況,一是流程圖型的“可視化”,二是專指窗口程序設計中的可視化。我主要強調第二點,也就是VB的主要特性。

  我學過一點tk和pyqt,並且以前接觸過VB,於是這兩種編程模式給我形成了很深刻的對比。我自然是有些嫌棄VB的,畢竟純代碼看起來令人舒服,尤其是只需要一兩個文本文件的時候。但是python,或者說手動地用代碼創建窗口,有一大問題:你看不見默認值。因此當你需要新功能時,你別無選擇,只能上網查找。但是VB有一個參數窗口,你可以看到那些默認值——並且在創建的時候不需要任何參數,你會看到默認值帶來的結果,參數是在創建後修改的。

  在創建後而不是創建時修改參數——這令人有些不快,但形成了一種統一。在創建某一控件時,我們不用糾結創建時要傳入哪些必要的參數了,我們最多發現結果不合我們的意,而非一個錯誤。

  所謂的“面向信息編程”,其實只是接口,但是強調信息。其優秀的特性在於【能反饋給我們它需要什麼信息】,而接口更注重“什麼形式”而不是“信息內容”——雖然在面向對象中,可以達成一致(但未必所有人都意識到)。在VB中,如果我們沒有設定一個按鈕的位置,那麼我們會看到它處在角落裏,這就是反饋;但手工寫代碼時,我們只會得到“缺少參數”這一提示——規範一些的做法或許是這樣的:對象創建函數的參數必須全爲鍵值對,這樣就可以提示我們缺少的東西了——但是我們依然不知道我們究竟承認了多少【默認選項】,在VB中,我們至少可以看到。這就是“信息盲區”。一個函數的默認值被激活時,應當在日誌中報告這一情況,信息盲區是可怕的。

  但窗口程序最大的特色,就是自然地面向對象了,組件“當然”是對象。但是邏輯層,就麻煩得多,並且“流程圖比代碼更恐怖”。我沒有親身經歷,我不可能畫出複雜的流程圖(因爲我會在開始變複雜的時候放棄,這是我的性格特質),但是(該說“所以”?)我依然會盡量面向對象——面向人。

(2018-1-13 於地球)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章