这段时间尝试了一下Spring Roo这个快速开发工具,其ROR式的快速开发给我留下了很深的印象,也谈谈对使用这个工具的看法。
根本上说,Roo是一个代码生成工具,其基本开发模式就是从领域模型出发自动根据持久策略生成CRUD代码,再从领域模型自动生成控制器和界面代码,其高效的过程是令人叹服的,但不是没有局限性,领域模型管理的是相对固化的领域知识,控制器(或服务)管理的是不同场景对领域知识的灵活采用,所以,从领域模型直接生成控制器就是把相对稳定的领域知识和相对灵活的应用场景紧密耦合了;所以,我有理由认为,这样的策略对于简单的CRUD应用应该可以,但是对于稍微复杂的应用显然还不能那么简单地使用,即使开始可以这么用,随着时间推移,一定会有更多需求和约束增加进来,那么应用层与领域层独立变化的时候,这种自动化机制就会逐渐派不上用场了;
所以,我个人的结论是:roo对于简单的应用可以非常的酷,可以快速满足商业上的要求,但是,如果你的应用不是那么简单,那么其效果会大打折扣,——但是,它真的是不错的学习新技术的工具,因为其自动化生成的那些代码可以作为你手动添加代码的模板,可以快速帮助你掌握新技术的使用。
看来,那句话永远正确——没有银弹,没有机器能够真正替代人。
根本上说,Roo是一个代码生成工具,其基本开发模式就是从领域模型出发自动根据持久策略生成CRUD代码,再从领域模型自动生成控制器和界面代码,其高效的过程是令人叹服的,但不是没有局限性,领域模型管理的是相对固化的领域知识,控制器(或服务)管理的是不同场景对领域知识的灵活采用,所以,从领域模型直接生成控制器就是把相对稳定的领域知识和相对灵活的应用场景紧密耦合了;所以,我有理由认为,这样的策略对于简单的CRUD应用应该可以,但是对于稍微复杂的应用显然还不能那么简单地使用,即使开始可以这么用,随着时间推移,一定会有更多需求和约束增加进来,那么应用层与领域层独立变化的时候,这种自动化机制就会逐渐派不上用场了;
所以,我个人的结论是:roo对于简单的应用可以非常的酷,可以快速满足商业上的要求,但是,如果你的应用不是那么简单,那么其效果会大打折扣,——但是,它真的是不错的学习新技术的工具,因为其自动化生成的那些代码可以作为你手动添加代码的模板,可以快速帮助你掌握新技术的使用。
看来,那句话永远正确——没有银弹,没有机器能够真正替代人。