如何设计一个开发工具

做一个开发工具主要需要解决两个问题,第一个问题是用户界面,这个是最终的输出,第二个问题是事件监听,这个实际是对用户操作的响应。这个是最终的输入。

第一个问题,用户界面的问题,可以分解为用户界面的标准化定义,以及用户界面的标准化渲染,通过设计一个标准化的用户界面解释器,就可以在运行时把界面渲染出来。在这方面,html语言是一个标准化的典范,而浏览器渲染引擎,则承担了标准化界面渲染的工作。我们可以借鉴HTML的实现方式,自己定义一个简化版本的渲染引擎,来实现对自定义界面的渲染工作。

第二个问题,事件监听的问题。这个问题又可以细分为事件产生,事件分发,到最终事件监听器定义和代码执行的问题。在基于浏览器的开发中,各个控件元素所产生的事件可以动态绑定到特定事件监听器上,如果是采用js编码,那么js内部本身就提供eval方法来直接进行代码的解释执行,这种情况下开发是最简单的,但也最缺乏对代码的执行控制,等于就是在js上简单封装了一层。

另一种思路是以js为底层的执行引擎,在其上额外编写一个特定的语法解释器,例如编写一个java解释器,这样就可以在事件被触发以后,使用脚本解释器来执行此代码。

基于这一思路的例子就是gwt编程技术,只不过gwt的实现途径是将java源代码编译成了js代码来执行,而我们的思路是使用gwt来包装一个java语言的解释器,间接实现一个js版本的java语言解释器,并在运行时,使用这个java语言解释器来担任事件监听处理的责任。

事件监听器的设计可以参考《windows程序设计》这本书里面的设计原则,do not call me.I will call you.这个其实就是事件监听工作的基本要求和标准运行模式。

你可能感兴趣的:(如何设计一个开发工具)