Dominoo项目从10月份启动到现在已有近2月,我们做了些工作,但是项目的进度缓慢也是我们几个人有目共睹的。针对前一阶段的工作上的不利局面,我们几个做了一次讨论。

最近两周的工作使我们的Dominoo有了很大进展,经过大家的讨论我们在一些技术问题上达成了共识。dreamhead建议我和toidi_xu结对编程,并将dmc的XML解析的工作交给我们来做(毕竟我在java编程上还属于菜鸟级),而dreadhead会腾出时间来完成下一步涉及技术问题的研究。不过在最近的讨论中我和toidi_xu也都积累了一些问题,今天我们就针对这些问题进行了讨论。

toidi_xu的问题让我们重新复习了一下Dominoo的提出的动机和设计思想。由于toidi_xu没能参加我们dominoo启动时的第一次讨论会,所以对有些Dominoo的“战略思想”问题有些疑惑。dreamhead带我们回顾的Dominoo的提出过程以及其中所蕴含的东西,让我又有了深刻的体会:

结合dreamhead和model_zhang的思想我把我们得到的结论说一下:
1、我们的Dominoo所处在软件开发流程中的位置
                
Domain problem  
———————————————————————————————————–
                                                    |
What(做什么)                                      |
                                                    |
——————————————————————————|
How(怎么做)  |  。logic(如一个业务逻辑            |
|       或是一个算法)                |   Solution            
                |      |                                |
                |      |                                |
                |  。adapter (将logic转换位            |
|      |         Do的实体)                |
|      |——-二进制代码                |
                |      |——-汇编代码                    |
                |      |——-高级语言(C/C++/Java)    |
                |      |——-Dominoo(面向设计)        |
                |      |——-XXXX(面向需求)
——————————————————————————————————–
Do(运行的实体)    |     CPU

说明一下上面的图,我们在解决问题的时候实际上都是在寻找问题域的一个解空间,在这个过程中我们要明确what , how , do。在how这个阶段,结合dreamhead和model_zhang产生的思想就是从what转换到logic,然后我们使用Adapter将我们的logic转换为可以运行在CPU上的产品,adapter的发展从binary code 到汇编到高级语言,再到我们所要实现的Dominoo(面向设计的工具或者说语言也可以),在这个发展过程中开发人员或者设计人员的关注程度逐渐从底层提高到问题领域,也许有一天我们使用自然语言描述需求,某个工具就能帮我们生成可运行的软件,这是我们理想的境界。不过我们现在做不到,我们必须脚踏实地的一点点向上攀登。

Dominoo提供给你一个可以快速验证你的设计是否可行有效的解决方案,同时也可以帮你生成最终的产品。你需要作的就是设计和少量动态语义的编码。

model_zhang曾经提出在我们的Dominoo上实现测试设计和执行的自动化,甚至是测试重构等概念。让我大开眼界。^_^

我这几天积蓄的问题大多集中在实现的细节上,这里就不详细说了。

© 2004, bigwhite. 版权所有.

Related posts:

  1. Dominoo项目日记(一)
  2. 本不是第一篇的第一篇
  3. Effective Java阅读笔记-item1
  4. Effective Java阅读笔记-item12
  5. Effective Java阅读笔记-item4、6