Grails敏捷项目开发
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Grails敏捷项目开发

  • 2,232 views
Uploaded on

在2011年6月份珠三角技术沙龙深圳会场分享的主题

在2011年6月份珠三角技术沙龙深圳会场分享的主题

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,232
On Slideshare
2,227
From Embeds
5
Number of Embeds
1

Actions

Shares
Downloads
31
Comments
0
Likes
1

Embeds 5

http://www.techgig.com 5

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 1 、 OO 2 、 MOP
  • 基于 #grails 的社会化项目管理初创公司 Manymoon 被 Salesforce.com 收购了 http:// bit.ly/dUbiJM
  • Grails 1.4 Dependency Updates: Groovy 1.8, Spring 3.1, Hibernate 3.6 and Tomcat 7 Agent Based Reloading Better Plugin Usage Tracking Better Java Integration (Expose GORM API via AST transformations) Improved Scaffolding UI with HTML5 Enhancements Improved Static Resource Handling New Mixin-based unit testing support Binary plugins Replace Prototype With jQuery Replace HSQLDB with H2 GORM Enhancements Schema Migrations Reverse Engineering Abstract Inheritance Implement findByOrCreate (or similar)

Transcript

  • 1. Grails 敏捷项目开发 2011.6.12 rain
  • 2. @rainboyan
    • Blogger @ http:// rainboyan.com
    • Twitter @rainboyan
    • 目前从事移动 BI , Android/iOS
    • 读书、户外、跑步、摄影
  • 3. 网站及作品
    • GroovyFans.org
    • LinkQ.Net
    • GeekPark.In
    • Ratte – http://code.google.com/p/ratte
  • 4. 来此目的?
    • 学习 Groovy&Grails 于 2007 年初,用于项目开发于 2008 年秋
    • Java 框架众多,选择的自由亦痛苦,直到遇到了 Groovy 、 Grails
  • 5. “simplify the life of developers” - Guillaume Laforge, 2005
  • 6. 目录
    • 介绍
    • 开发实践
    • 案例
    • 总结
    • Q&A
  • 7. 目录
    • 介绍
    • 开发实践
    • 案例
    • 总结
    • Q&A
  • 8.
    • 介绍
    • Groovy - http://groovy.codehaus.org
    • Grails - http://grails.org
  • 9. Groovy 语言
    • 基于 JVM 的动态语言
    • 借鉴了 Python 、 Ruby 、 Smalltalk
    • 直接编译成字节码
    • 开放源码 ASL 2.0
    • 比较完整的生态体系
    • 1.0 发布于 2007.1.2
  • 10. Java 程序
    • public class HelloWorld {
    • private String name;
    • public void setName(String name) {
    • this .name = name;
    • }
    • public String getName() {
    • return name;
    • }
    • public String greet() {
      • return “Hello ” + name;
      • }
    • public static void main(String[] args) {
    • HelloWorld helloWorld = new HelloWorld();
    • helloWorld.setName(“Groovy”);
    • System.out.printn(helloWorld.greet());;
    • }
    • }
  • 11. Groovy 程序
    • public class HelloWorld {
    • private String name;
    • public void setName(String name) {
    • this .name = name;
    • }
    • public String getName() {
    • return name;
    • }
    • public String greet() {
      • return “Hello ” + name;
      • }
    • public static void main(String[] args) {
    • HelloWorld helloWorld = new HelloWorld();
    • helloWorld.setName(“Groovy”);
    • System.out.printn(helloWorld.greet());;
    • }
    • }
  • 12. Groovier 版本
    • class HelloWorld {
    • String name
    • String greet() {
      • “ Hello $name“
      • }
    • }
    • def helloWorld = new HelloWorld(name: “Groovy”)
    • printn helloWorld.greet()
  • 13. 更多简洁语法
    • Lists
      • def numbers = [1, 2, 3, 4, 5]
    • Maps
      • def colors = [red: ‘ 红’ , yellow: ‘ 黄’ , blue: ‘ 蓝’ ]
    • Ranges
      • def ages = 18..60
  • 14. GString
    • def person = “John”
    • def letter = “““${ new Date()}
    • Dear ${person},
    • this is a Groovy letter!”””
    • println letter
  • 15. Closures
    • def printNum = {
    • println it
    • }
    • (1..9).each { printNum it }
  • 16. Java 5 特性
    • 标注 (Annotation) ,泛型 (generic) ,静态引入 (static import) ,枚举 (enum) ,变参 (varargs) (1.5.0 版本 )
    • AST (*1.8.0 版本 )
  • 17. 其他
    • GDK
    • GSQL
    • XML&JSon
    • Builders
    • MOP
    • DSL
  • 18. Grails 框架
    • 参照了 RoR 的实现思想, CoC
    • 构建与 Java 和 Groovy 之上
    • 使用了稳定的开源框架
    • 1.0 发布于 2008.2.4
  • 19. Why Grails ?
    • 更少的代码,高效、高产、高质量
    • 开源,基于更多的开源框架,例如 Spring , Hibernate , SiteMesh
    • 与 Java 集成,能够复用以前的项目库
  • 20. Grails 特性
    • Groovy
    • MVC
    • GORM
    • Plugins
      • 500+ , UI , Ajax , Testing , Security , Web Services
  • 21. 谁在用 Grails ?
    • LinkedIn
    • ManyMoon
    • Sky.com
    • balsamiq.com
  • 22. Grails more
    • 依赖库升级: Groovy 1.8, Spring 3.1, Hibernate 3.6 Tomcat 7 (1.4)
    • 静态资源模块化处理 (1.4)
    • UI 使用 HTML5 (1.4)
    • jQuery 默认支持 (1.4)
    • GORM 抽象继承的支持及数据库的逆向工程 (1.4)
  • 23. Grails more>>
    • OSGi (2.0)
    • Security 的抽象内置支持 (2.0)
    • 实现全部的 Hibernate 配置选项 (2.0)
  • 24. 目录
    • 介绍
    • 开发实践
    • 案例
    • 总结
    • Q&A
  • 25.
    • 开发实践
    • 迭代开发, KISS 原则
    • 测试先行, TDD 实践
    • 代码精炼, DRP 原则
    • 用好工具,“工欲善其事必先利其器”
    • 软件复用,模块化开发
  • 26.
    • 开发实践
    • 迭代开发, KISS 原则
    • 测试先行, TDD 实践
    • 代码精炼, DRP 原则
    • 用好工具,“工欲善其事必先利其器”
    • 软件复用,模块化开发
  • 27. 1 )迭代开发
    • 美好愿景
      • “ 灯塔”的作用
    • 快速原型
      • 开始要简单
    • 小版本发布
      • 轻装上路,保持节奏,快速前进!
    • 逐步优化
      • 没有最好,只有更好!
    • 跟踪反馈
      • 继续前进的动力
  • 28. Grails 命令集
    • grails create-app demo
    • grails test-app
    • grails run-app
    • grails war
    • grails set-version
  • 29.
    • 开发实践
    • 迭代开发, KISS 原则
    • 测试先行, TDD 实践
    • 代码精炼, DRP 原则
    • 用好工具,“工欲善其事必先利其器”
    • 软件复用,模块化开发
  • 30. 2 )测试先行
    • TDD 是否有必要?
    • 单元测试和集成测试、功能测试
    • 测试代码的考量和维护
  • 31. Grails 测试支持
    • Unit Testing
    • Integration Testing
    • Functional Testing
  • 32. Grails 测试之: 单元测试
    • GrailsUnitTestCase {
    • mockFor(class, loose=false)
      • mockDomain(class, testInstances=)
    • mockLogging(class, enableDebug=false)
    • mockController(class)
    • mockTagLib(class)
    • }
  • 33. Grails 测试之: 集成测试
    • GrailsTestCase {
    • }
  • 34. Grails 测试之: 功能测试
    • Canoo Webtest
    • G-Func
    • Selenium-RC
    • WebDriver
    • Geb
  • 35.
    • 开发实践
    • 迭代开发, KISS 原则
    • 测试先行, TDD 实践
    • 代码精炼, DRP 原则
    • 用好工具,“工欲善其事必先利其器”
    • 软件复用,模块化开发
  • 36. 3 )精简代码
    • 使用脚手架(
      • def scaffold = Domain
    • 使用代码模板生成
      • grails gernerate-all com.~.domainClass
    • 使用插件
      • grails create-plugin plugin-app
    • 使用标签
      • grails create-tag-lib foo
  • 37.
    • 开发实践
    • 迭代开发, KISS 原则
    • 测试先行, TDD 实践
    • 代码精炼, DRP 原则
    • 用好工具,“工欲善其事必先利其器”
    • 软件复用,模块化开发
  • 38. 4 )用好工具
    • IDE
      • Eclipse
      • IDEA
      • STS
    • 构建工具:
      • GAnt
      • GMaven
      • Gradle
  • 39.
    • 开发实践
    • 迭代开发, KISS 原则
    • 测试先行, TDD 实践
    • 代码精炼, DRP 原则
    • 用好工具,“工欲善其事必先利其器”
    • 代码复用,模块化开发
  • 40. 5 )代码复用
    • 基于 Plugin 系统的模块化开发
      • grails create-app app-plugin
    • OSGi
      • 通过 osgi 插件
  • 41. 目录
    • 介绍
    • 开发实践
    • 案例
    • 总结
    • Q&A
  • 42.
    • 案例
    • LinkedIn
    • ManyMoon
    • Sky.com
    • balsamiq.com
  • 43. 目录
    • 介绍
    • 开发实践
    • 案例
    • 总结
    • Q&A
  • 44.
    • 总结
    • 语言不是问题
      • 容易学习,几乎直接兼容原有 Java 代码
    • 性能不是问题
      • 1.4 的性能已经快接近 JSP
    • 社区不是问题
      • 需要更多人参与,立即动手开始使用!
    • 更好的建议
      • “ 如果你正在开发一个新的项目,优先考虑使用 Grails 或者 Spring Roo 。”来自 Rod
  • 45.
    • Q&A
    ?
  • 46. Let’s just do it!