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

Grails敏捷项目开发

on

  • 2,046 views

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

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

Statistics

Views

Total Views
2,046
Views on SlideShare
2,041
Embed Views
5

Actions

Likes
1
Downloads
30
Comments
0

1 Embed 5

http://www.techgig.com 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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)

Grails敏捷项目开发 Grails敏捷项目开发 Presentation Transcript

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