http://www.ngnc.net/NGNcalc2x/development_handbook.htm 《NGNcalc2x开发手册》
NGNc的开发模式是开放式项目组织模式,以清晰透明的相对独立的功能/模块间的接口为纽带的项目组织和开发模式,在项目正式启动和工程阶段不做明确界定,通过建立自我完善和更新机制,集项目开发和项目研发于一个整体,每个开发单元(一个模块,一个子系统)都需要有测试和反馈机制,整个项目沉浸在这中反馈的动态平衡中。而NGNc脚本语言做为一个标准接口起到润滑作用;开发周期不确定,是NGNc开发的一个思路,因为,制定开发计划只能是主观的希望,没有任何实现的理论基础,更何况研发与开发的界限模糊;
NGNcalc2x的开发初衷,就是以Hello world类的Sample演示NGNc的开发模式,其开发界限就在于GUI引擎,脚本逻辑和参数两部分,两部分的依存关系清晰可见;到目前为止,其开发过程就是研发到开发的转变过程;
首先,抽象Calc2的核心数据结构,寄存器结构;
然后,编制计算器操作逻辑;根据操作逻辑编制脚本逻辑;
其间已经将显示逻辑分离,并利用NGNc的伪函数机制(没有函数体的函数声明,如同流程图中的一个方框)简化了开发深度;
中断1:为了配合计算器逻辑的调试,将显示逻辑用最简形式的插件方式提供,以方便逻辑的调试,此时NGNide还未开发,调试是通过“调试代码”的插入实现的,这可以从NGNcalc2的脚本源码中看到;
NGNide开发过程,因为GUI系统下无法对DosConsole的NGNc虚拟机进行调试,特地编制了SimConsl模块,以GUI方式模拟DosConsole,而DosConsole的模拟本身变的容易,也在于计算器显示逻辑的分离清晰,整合显示逻辑包括输入就只有几个简单的函数;
SimConsole显示逻辑,因为,显示逻辑应当规范于引擎的部分,因此其开发完全是VC环境,本身遵循系统设计规范,自顶而下的方式,对SimConsl进行了抽象,其中:VideoMemory抽象,KeyInputBuffer抽象,都吸收了Bios的思想;
核心显示使用GUI的WM_PAINT显示循环对VideoMemory进行重画实现显示引擎;
VideoMemory层的当前状态非常简单,只是个80x25的字符矩阵,未来可以为字符矩阵添加显示属性层,以获得丰富的显示信息;
GUI WMPAINT显示循环,在未来也可以用OpenGL/D3D进行管理;可以增加新的Video Layer以提供相应的显示信息;
在显示引擎系统的新变化下,显示控制接口的函数数也扩大了,对脚本的要求也增加了,如控制效果的参数增加等;
对于计算器的功能逻辑的扩充又是另外的一个方向,可以在不理会引擎的情况下,通过脚本和数据抽象,设计出功能强大的计算器,如:公式编辑能力等;
基于GUI的通用图形引擎的开发:将NGNcalc2x的GUI图形引擎提取出来,可以为未来的类似界面的应用提供开发,对通用窗口描述方式的积累也可以获得积累,发展成为BeautyWindow系统,让窗口生动起来;
OpenGL/D3D的使用又是另一个丰富的值得发展的引擎系统;
计算器逻辑本身经过积累,在丰富到足够强大后就可以成为经典;其他应用的脚本逻辑也同样可以积累;
有兴趣加入NGNcalc2x开发的朋友请联系我们,ngncalc2x@ngnc.net
这里是NGNcalc2x的设计文档,作为项目起点供应大家参考。请朋友们根据其中描述,说明希望参与那方面的工作,或全部工作,或具体模块,甚至测试,建议都非常欢迎;目前网站只提供Demo,参与项目的更多开发文档在项目组内交流。在项目组完全成立后,将公告停止人员加入,项目的进展情况也会随时报告给大家。