做过游戏开发的朋友都知道,通常游戏不是像简单的应用软件一样直接开发出来,而是先开发出一套游戏引擎,然后在游戏引擎的基础上开发出不同场面,不同故事情节的游戏。于是我在想是否也可开发出一套软件引擎,在软件引擎的基础上能迅速开发出各式各样的软件,不但开发速度快、质量也比较高。
软件引擎与游戏引擎一样具有针对性,面向应用软件的引擎相对容易设计,因为应用软件的共性比较容易提取。举一个简单的例子,基础数据维护是大部分系统都有的模块,只是实现基本的增删改查功能,用软件引擎完全能够实现。当初使用Foxpro的时候,只要数据库建好,大部分画面和数据库处理都能自动生成,非常方便。
软件引擎的两个重要特点是画面与逻辑的分离,画面、业务流可定制。其中业务流定制是引擎最困难的地方,每个软件都有自己个性的业务流,实现定制非常困难。必须引入模板库,并且模板库不断的丰富增加才能提高软件引擎的功效。
软件引擎开发的困难主要是受开发工具限制,软件最终完成需要进行编译,这就对开发工具有一定的依赖。目前开发工具(开发模式)变化速度快的令人难以想像。这就造成一个软件引擎的寿命比较短。另外,很多开发工具,框架不断更新,会逐渐增加软件引擎的部分功能,而且做的非常好,这就造成软件引擎的一种更新困难。
每天晚上用仅有的两个小时思考与尝试,画面自动生成、输入限制与输入检查、简单逻辑都没什么问题,但是鉴于不确定的东西太多,还停留在调研阶段。
至于软件引擎的可行性,一个人的想法太有限了。在此开个头,想听听大家的想法。