Groovy程序设计(图灵程序设计丛书)(VenkatSubramaniam)

书: https://pan.baidu.com/s/1jDVnfhmGRwu5jeEuV63Kcg?pwd=bmyj
笔记如下:

  1. 动态语言特性:Groovy作为JVM动态语言,支持脚本化编程与静态类型检查(@TypeChecked)。
  2. 语法糖与简洁性
  • 省略分号/括号(如println "Hello"),简化集合操作(each/collect)。
  • 安全导航操作符(?.避免空指针)。
  1. 闭包(Closure):一等公民特性,支持柯里化(curry)与方法引用(&操作符)。
  2. 与Java互操作:无缝调用Java类库,支持泛型、注解,编译为同规格字节码。
  3. DSL支持:通过闭包/元编程(Meta-programming)构建领域特定语言(如Gradle脚本)。
  4. 集合增强
  • 快捷初始化(list = [1, 2, 3])。
  • 函数式操作(findAll/inject)。
  1. 字符串处理
  • GString支持变量嵌入("Value: $var")。
  • 多行字符串('''...''')。
  1. 元编程(Metaprogramming)
  • 运行时注入方法(ExpandoMetaClass)。
  • methodMissing/propertyMissing处理未定义调用。
  1. 静态编译优化@CompileStatic提升性能(接近Java),牺牲部分动态特性。
  2. JSON处理:内置JsonSlurper/JsonBuilder,无需第三方库解析/生成JSON。
  3. 文件操作:简化IO(如new File("test.txt").eachLine { println it })。
  4. 并发编程GPars库支持Actor模型/数据流(Dataflow)并发。
  5. 单元测试:与JUnit/Spock框架深度集成,assert语句智能断言。
  6. AST转换:编译时注解(如@ToString/@Canonical)自动生成代码。
  7. SQL操作GroovySql简化JDBC(sql.eachRow)。
  8. 模板引擎SimpleTemplateEngine生成动态文本(如HTML/邮件)。
  9. 与Spring集成:替代XML配置(Groovy Bean DSL),动态刷新Bean定义。
  10. 性能权衡:动态派发(Dynamic Dispatch)导致开销,关键路径可用@CompileStatic优化。
  11. 工具链支持
    • Groovy Console交互式执行。
    • groovyc编译为字节码或直接运行脚本(groovy script.groovy)。
  12. 应用场景
    • 测试脚本(Spock框架)。
    • 构建工具(Gradle)。
    • 快速原型开发。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注