自学编程难不难系列 之 VB ..

作者: 一了 <1liao3@funlang.org>
日期: 2016-05-03

99年末00年初, 因为家庭变故回老家务农, 后又出去找工作, 暂时跟编程没啥牵连. 直到00年冬, 又有了自学编程的机会.

当时需要做一个 Windows 平台的软件, 考察评估了 PB, VB, VC, Delphi, 最终选择了从 VB 开始. 原因如下: PB, Delphi 当时只支持 ANSI, 不支持 Unicode, 无法同时在界面上输入英文, 中文和俄文, 淘汰; 安装 VC 看了一下, 写界面巨复杂, 特别是消息处理非常蛋疼, 跟 VB 的 PME (当时不懂啥叫 PME) 完全没得比, 所以毫不犹豫就开始搞 VB.

正如上一篇 自学编程难不难系列 之 C语言 所述, 在99年下半年 DOS 环境中自学了汇编, Basic, C语言和C++, 实际上有了些 Basic 基础了(当然那个是 QBasic), 加上 VB 设计的确实非常人性化, 没看任何书或者介绍资料, 直接上手, 就写成了一个有关航空运输的管理系统. 如下图所示:



这个 MIS 系统是我自学编程以来写的第一个商用系统, 麻雀虽小五脏俱全, 功能是完整的, 包括一般性的增删查改, 单据套打, 报表定制, 权限管理, 甚至还有数据字典定义, 据此可以灵活修改业务而不用改任何代码. 单据套打和报表定制都是用 Excel 完成的(报表也有 Word 格式), 根据定义的字段在相应的位置打印. 套打的方式很搞笑, 就是把扫描的单据作为 Excel 背景, 然后通过单元格宽高的改变定位, 把字段定义进去. 报表的内容是灵活定义的, 不过那时都是我自己定义的, 因为其他人都不会写 SQL. 权限管理是标准的 RBAC 模型, 不过当时可没这么时髦, 估计就是跟 Windows NT 学的. 特别要吐槽一下的是, 当时我以入门者的水平(00年我是22岁)都知道用户的密码要单向加密存放, 而且在登录过程中也绝对不会存在 SQL 注入风险, 在十多年后的今天或最近几年, 仍然有大网站用明文保存用户密码, 能 SQL 注入的网站比比皆是...

航空运输管理系统一开始用的是 MS Access, 等到需要多用户时就改成了 MS SQL Server, 这些也都是现学现用的, 之前可没接触过啥 SQL ... 包括 Windows 之前也没用过(Windows 3.1 用过几天). 因为公司里谁都不懂电脑, 所以攒机组网啊, 甚至布线剪水晶头什么的, 都是自己蛮干蛮试搞会的, 就这样系统在多用户的情况下就真跑起来了. 这个系统做出来以后, 还卖了几个 License 出去, 虽然没赚多少钱, 但是蚊子肉也是肉啊, 还是蛮有成就感的.

系统从00年末搞出来之后, 不断的根据业务修改完善, 一直持续到01年末. 在这个过程中, 我也抽象了一些组件, 用VB和VC都抽象过(VB有语言劣势, 主要是用VC), 当然了, 仍然是然并卵, 因为之后我再也没用VC/VB写过界面, 在见识了 Delphi 的 VCL 之后, 这些都是渣啊有没有!? 不过实际上当时抽象的组件也还是派上了点用场的, 用这些组件又快速搭建了几个业务软件, 如铁路运输的, 仓库管理的, 资金流水帐的, 不一而足...

后来忽悠公司搞了拨号网络, 就有更多的自学机会了, 不但学习各种编程技术, 还涉及其他我感兴趣的学科. 没上过大学的我, 深知自己基础差, 底子薄, 所以即使那时在公司的薪水很低, 而我又同时做着会计, 软件开发, 甚至还是个网管, 我还是一直坚持干到02年初, 就是因为学习机会难得. 回头来看, 那段时间是我学的东西最多, 成长最快的一段时间, 在没有进入软件行业没跟同行交流的情况下, 闭门造车, 蛮学蛮干, 我居然成长的非常快.

在我忐忑的进入软件公司之后, 忽然长舒了一口气, 原来我就是所谓的高手啊, 在我的眼里, 他们可全是菜鸟啊. 当然了, 我进的不是什么很牛的软件公司, 就是国家某部信息中心下面的一个小公司.

因为多次搬家, 很多手绘(我记得是在纸上画了很多图)的图丢失了, 只找到了一幅业务流程图, 如下(居然是 Word 画的, 好土):



翻看备份, 居然看到我还写了个操作手册, 惊喜!