我是一名尝试学习Grails的Java开发人员,我希望尽可能多地接触Grails框架.最好通过使用"Grails方式"(DRY,约定配置等)解决小的现实问题来实现.
三个例子可能是:
通过创建一些类(比如电影,演员等)以及它们之间的关系/映射(1:1,1:N,N:N等)来了解GORM.
通过使用它来生成网站上所有GSP:s共有的页眉和页脚,了解布局支持(sitemesh).
通过使用它来确保对特定控制器的所有访问都来自经过身份验证的用户,了解过滤器支持.
我的问题出现在所有Grails开发人员那里 - 你会在"Grails课程"中以及以什么顺序包含哪些内容?
所有输入赞赏!
这里有一些例子,但要注意它们是相当微不足道的,并没有真正向您展示系统如何协同工作.Grails的优势之一是所有不同的部分都可以降低代码复杂性并加快开发速度.我建议做一个中等规模的项目(如博客软件或照片库),这会迫使你触摸几乎所有东西.我目前正在开发一个票务管理应用程序,我必须基本上学习框架中的所有内容.实际上,它真的不是那么多材料.
话虽这么说,这是我的"必须学习"列表,以及一些例子:
Groovy,尤其是闭包,地图和属性.如果你来自Java,一开始闭包可能看起来有点奇怪.但是,一旦你绕过它们,就很难回到不使用它们的语言.地图和属性使用可能熟悉的想法,但语法和用法不同,值得仔细研究它们.Grails在整个框架中始终使用这三件事.举个好例子,检查实例化resources.groovy中定义的Spring bean的"BeanBuilder".另外,在groovy.codehaus.org上运行Groovy文档.几个小时的路程将为您节省一天的时间.
MVC编程.Grails中的"MVC"模型与Rails中使用的模型非常匹配,但它与Java桌面应用程序中使用的"MVC"模型有很大不同.基本上,所有传入的URL请求都是到控制器的消息,控制器返回一个视图.域对象是您要通过视图和控制器存储,查看和操作的数据.做一个输入表单,使用约束验证用户的输入,然后使用控制器以某种方式操作它.像生日那样的页面,返回你的十二生肖和十二生肖动物.看看是否可以在给出错误输入时将错误返回给用户.
GORM.GORM非常重要,但您几乎可以选择任何项目来学习它.一次性提供文档,这样您就知道它的功能是什么.
过滤器和服务.这些是进行大量DRY编程的"grails方式".身份验证是一个典型的例子,它非常适合学习过滤器.对于服务,写一些会发送电子邮件的东西.在Grails网站上有一个简单的电子邮件服务的好例子.
Groovy服务器页面.如果您之前使用过模板引擎,那么这应该是熟悉的.了解GSP标签库,这是一个巨大的帮助.实际例子包括:几乎任何东西.每个应用程序都需要一个前端.试着把它变得漂亮.注意:这会溢出许多不是Grails特定的东西,比如JavaScript,CSS等.除非你已经掌握了这些知识,否则请准备一些学习曲线.
你的"conf"目录.了解那里的每个文件,尤其是UrlMappings.groovy.使用UrlMappings进行游戏,以便您拥有一个从URL中获取有意义信息的应用.喜欢的东西/myapp/calculate/36/times/145
,这里的应用程序返回的答案.
我会说这些是基础知识,但还有很多其他主题,如webflows,i18n,测试,会话处理等等.学习这些的最好方法是建立一个体面的项目.当你这样做时,你可能会发现自己在想,"天哪,我希望Grails做____".仔细阅读Grails.org上的优秀文档,您可能会发现内置的功能或插件可以满足您的需求.参考PDF存在于我的桌面上,我发现它在我的学习过程中非常宝贵.
哦,看看Grails生成的脚手架代码.你最终可能会全力以赴,但它会让你对系统的运作方式有所了解.
玩得开心,快乐的黑客!