戴夫 卡特勒_访谈和书摘:戴夫·克莱因(Dave Klein)的Grails快速入门指南

戴夫 卡特勒

Grails作者Dave Klein撰写的《快速入门指南》一书介绍了Grails Web开发框架,该框架使用约定优于配置的原理,与传统的基于Java的Web应用程序框架相比,简化了Web开发。

在书中,Dave通过迭代构建一个名为TekDays.com的示例Web应用程序来说明如何使用Grails。 讨论包括在典型的Web应用程序中创建所有应用程序体系结构组件,例如域类,控制器和Groovy服务器页面(GSP)视图。 他还讨论了诸如Spring和Hibernate之类的流行Java EE框架与Grails的集成。 本书涵盖的其他主题包括Grails安全性,集成测试,AJAX,Grails UI和Twitter网站的自定义标签和插件。

InfoQ与Dave谈了他的书,写书的主要动机和其他主题。 我们还将摘录自Grails的摘录 (第3章:奠定基础; 1,098 KB PDF),供读者阅读。

InfoQ :编写Grails快速入门指南书的主要动机是什么?

Dave Klein(DK) :这本书的想法来自于我在Grails中使同事们快速发展的努力。 尽管他们很快就找到了书,但我可以看到最新的入门级书对您有所帮助。 但是动力来自于我希望看到更多的开发商和公司采用Grails。 迷上Grails的第一步是使用它,我想提供一本书,使人们更容易进入并带Grails进行尝试。

InfoQ :Grails框架在企业应用程序开发空间中的作用是什么,尤其是在可伸缩性和性能方面?

DK :Grails非常适合任何已经使用Java的企业。 Grails产生了一个标准的JEE WAR,可以将其部署到其现有的应用服务器上。 Grails还与这些企业已经使用的许多Java库和框架很好地集成在一起。 有Grails插件可轻松添加功能,例如缓存,群集,安全性,搜索,Web服务等。

InfoQ :您如何看待Grails作为域驱动开发(DDD)框架的作用?

DK :Grails的动态和可扩展的脚手架使DDD原理的应用变得容易,而没有某些DDD框架的限制和复杂性。

InfoQ :您如何将Grails与其他Web框架(例如Lift和Rails)进行比较?

DK :Grails和Lift一样,借鉴了Rails的许多原理和思想。 但是Grails不是“ Rails Clone”。 根据Grails与Java和现有Java框架(例如Spring和Hibernate)完全无缝集成的目标,设计中存在许多差异。 最后,Grails以极浅的学习曲线为Java开发人员带来了Rails的巨大成功,从而提高了开发人员的生产力。

InfoQ :在开发人员测试,调试,重构,应用程序分析等方面,使用Grails框架为应用程序开发提供了哪些工具支持。

DK :对Groovy和Grails的工具支持正在不断提高。 通过SpringSource将资源放置在Eclipse插件后面,并且IntelliJ IDEA继续提供出色的支持,Grails开发人员可以利用代码完成,调试,重构等优势。Grails插件还可以轻松访问Selenium和WebTest等强大的测试框架。 ,以及几个本地的Grails测试框架。 最近,我们还看到了诸如Spock测试框架和CodeNarc (用于Groovy和Java的静态分析工具)之类的工具的兴起。

InfoQ :您能否分享对Groovy中的元对象协议(MOP)功能的想法?

DK :Groovy MOP是功能强大的工具。 没有它,我们将不会有Grails:Groovy元编程将使约定优于配置成为可能。 建立基于Java的框架的任何人都应该仔细研究Groovy的MOP。

除了框架之外,元编程在测试中也有帮助。 实际上,大多数时候我每天都使用元编程,这是在编写测​​试时。 在我的大多数测试中,它几乎完全消除了对模拟对象的需求。

InfoQ :Groovy在创建领域特定语言(DSL)中扮演什么角色?

DK :Groovy的methodMissing和propertyMissing使得创建几乎任何用途的DSL变得容易。 Grails使用此功能来提供DSL,以进行ORM映射,接线Spring bean和其他配置。 许多Grails插件还提供DSL,以与其包装的库或框架进行交互。 Groovy使所有这些不仅变得可能而且变得容易。

InfoQ :对于当前正在或计划在其应用程序中使用Grails的开发人员,有哪些最佳实践和陷阱?

DK :Grails使得易于实现设计良好的Web应用程序。 但这也使实现设计不良的Web应用程序变得容易。 因此,我建议开发人员抵制将某些东西放在一起的诱惑,即使Grails使得将某些东西放在一起很容易。

保持您的控制器精简。 将逻辑移到域类或服务中。 将代码置于您的视野之外。 仔细阅读自定义GSP标签。

InfoQ :您想添加一些Grails框架中当前不存在的功能吗?

DK :我希望看到更多的插件,尤其是提供与其他框架集成的插件。 插件的数量在增加,但仍有更多机会。

InfoQ :您如何看待Groovy的未来,尤其是Grails?

DK :我认为两者的前景都很好。 Groovy的存在时间与Java存在的时间一样长,并且随着人们意识到与现有Java环境集成的简便性,它将继续吸引用户。 当前,Grails是JVM上最好的Web框架,并且它将继续改进。 尽管我认为任何框架都不会像Struts那样占据优势,但我认为Grails将成为领先的JVM Web框架。

InfoQ :您最喜欢的IT和非IT书籍是什么?

DK :有很多优秀的IT书籍,这是一个棘手的问题,但是我一直以来最喜欢的书是史蒂夫·麦康奈尔的《代码完成 》,托马斯·亨特的《 实用程序员》和弗雷德·布鲁克斯的《人月神话》。 在最近的阅读中,我一直在享受Daniel Steinberg的可可编程的测试版和《格里芬在行动》的抢先版。

我最喜欢的非IT书是《圣经》,其后是约翰·本扬的经典著作《朝圣者的进步》。

InfoQ :谢谢戴夫。

翻译自: https://www.infoq.com/articles/klein-grailsquickstartguide/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

戴夫 卡特勒

你可能感兴趣的:(戴夫 卡特勒_访谈和书摘:戴夫·克莱因(Dave Klein)的Grails快速入门指南)