作者:朱金灿

    每次启动word2010,我都有一种不爽的感觉,感觉在启动一个庞然大物。于是我在思考一个问题:传统的软件模块加载策略是不是有问题的?

    长期以来我们开发软件都是倾向于把软件的功能越做越强大,以至于软件的启动速度越来越慢,占用内存越来越多。实际上最好的软件很可能不是功能最强大,而是对用户来说是最适用的。我们知道一个帕累托原则,也就是著名的80/20法则,例如,在企业中,通常80%的利润来自于20%的项目或重要客户;经济学家认为,20%的人 掌握着80%的财富;心理学家认为,20%的人身上集中了80%的智慧等。具体到软件使用,我也可以这样判断:有相当一部分的功能用户是基本用不到的。

    因此就改善软件用户体验而言,是时候检讨传统的模块启动策略了。我有这样一种想法:对于软件而言,界面是始终存在的,因此界面模块是应启动时加载的,界面实际上是告诉用户这个软件能干什么事,功能逻辑模块是应该用户使用时才加载的,而且加载一次就不用再加载了。

     实际上微软并非没有意识到这个问题。在VS的外接程序管理器可以对外接插件进行配置,具体如下图:

           略论软件模块的加载策略_模块加载


    上图在勾选启动一栏时即表示在VS启动时就加载这个模块,遗憾的是微软只对第三方插件开放了这个接口,自身的功能并没有开放。可能有人会问:假如用户使用时再加载模块会不会影响用户体验呢?据我的经验:单独加载一个模块速度还是有保证的。当然这个也可以由用户自己来决定何时加载模块。