VB:面向信息编程

  说到VB,顺带提一个词“可视化编程”。“可视化编程”大致可以分两种情况,一是流程图型的“可视化”,二是专指窗口程序设计中的可视化。我主要强调第二点,也就是VB的主要特性。

  我学过一点tk和pyqt,并且以前接触过VB,于是这两种编程模式给我形成了很深刻的对比。我自然是有些嫌弃VB的,毕竟纯代码看起来令人舒服,尤其是只需要一两个文本文件的时候。但是python,或者说手动地用代码创建窗口,有一大问题:你看不见默认值。因此当你需要新功能时,你别无选择,只能上网查找。但是VB有一个参数窗口,你可以看到那些默认值——并且在创建的时候不需要任何参数,你会看到默认值带来的结果,参数是在创建后修改的。

  在创建后而不是创建时修改参数——这令人有些不快,但形成了一种统一。在创建某一控件时,我们不用纠结创建时要传入哪些必要的参数了,我们最多发现结果不合我们的意,而非一个错误。

  所谓的“面向信息编程”,其实只是接口,但是强调信息。其优秀的特性在于【能反馈给我们它需要什么信息】,而接口更注重“什么形式”而不是“信息内容”——虽然在面向对象中,可以达成一致(但未必所有人都意识到)。在VB中,如果我们没有设定一个按钮的位置,那么我们会看到它处在角落里,这就是反馈;但手工写代码时,我们只会得到“缺少参数”这一提示——规范一些的做法或许是这样的:对象创建函数的参数必须全为键值对,这样就可以提示我们缺少的东西了——但是我们依然不知道我们究竟承认了多少【默认选项】,在VB中,我们至少可以看到。这就是“信息盲区”。一个函数的默认值被激活时,应当在日志中报告这一情况,信息盲区是可怕的。

  但窗口程序最大的特色,就是自然地面向对象了,组件“当然”是对象。但是逻辑层,就麻烦得多,并且“流程图比代码更恐怖”。我没有亲身经历,我不可能画出复杂的流程图(因为我会在开始变复杂的时候放弃,这是我的性格特质),但是(该说“所以”?)我依然会尽量面向对象——面向人。

(2018-1-13 于地球)

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