三、如何抽取出适用我们的引擎?

对核心引用的库抽取,对逻辑控制抽取,对展现抽取,对业务进行抽取。

四、我们如果要编写引擎,至少要完成哪些功能?(能称之为引擎至少要具备的条件)

虽然没有明文规定做一个引擎到底需要多少东西,但是这里我给出一个参考方案。如果一个引擎可以提供给别人使用,至少需要有以下处理机制,或者说设计好以下处理机制,可以把自己写的库很好的给其他人使用。

代码约定模式,交互抽离模式,数据封装模式,加密混淆机制,工具类包,插件管理模块,加载器,拦截器,动画处理模块,缓存控制器,超时监听器,模版控制引擎,性能处理模块(懒加载,按需加载,加速器),业务逻辑控制工厂,操作日志管理。

当然根据不同的项目还有很多特殊的模块,例如做客户端涉及到解压缩这样的,可以设计一个请求代理模块。

对外还要提供一个给开发人员配置或者编写的API层。当然还需要一个尽可能完整的使用说明。

五、什么是约定式编程?它和引擎技术有什么关系?

我们在编程的时候,如果尽可能的减少代码量,最直观的方式就是约定了。例如spring种就有约定模式的影子。所以在设计Crow5的时候,我大量的采用了约定的模式。

简单的描述,如果页面叫index.html,那么控制器的调用可以叫UI.index。那么,页面请求的接口可以约定成romote_index。调用的模版名字可以叫做index_tpl。如果是ajax处理的事件绑定函数可以约定成 ___index 等等。所有的处理逻辑入口和调用的名字都是可以约定的。如果有了这个约定的方式,那么所有类似的编码就有了规则,这样就可以抽象成规则引擎。那么以后我们只需要传输参数,配置。代码就按照规则自动生成了。

上面的页面都是用引擎自动生成的,我们可以看一下代码。

编写的代码就是配置文件,其余所有代码由引擎自动搞定。所有的性能处理都可以配置。这样最大的减少重复编码。

六、你对引擎技术的研究后续会是什么样子?

对于未来继续研究的是语义方面的抽取,所有引擎的代码部分是可以通过云平台自动实现按需分配,生成项目的引擎核心。根据平台的配置自动实现配置文件的自动生成。这样在做APP或者demo的时候,可以实现自动生成。

探索无止境,需要很多灵感,很多设计灵感就是从动物身上得到的,例如在设计心跳保持技术的时候,就是观察青蛙冬眠这个事情上,抽取总结心跳加速,减速,停止,苏醒等。希望能把引擎技术继续往语义方向上突破,可能那个时候的编程就变成了问答。




相关内容

    暂无相关文章