Beginning Groovy, Grails and Griffon
Web frameworks are playing a major role in the creation of today's most compelling web applications, because they automate many of the tedious tasks, allowing developers to instead focus on providing users with creative and powerful features. Java developers have been particularly fortunate in...
Autor principal: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
New York :
Apress
2013.
|
Edición: | 1st ed. 2013. |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629612506719 |
Tabla de Contenidos:
- ""Title Page""; ""Copyright Page""; ""Contents at a Glance""; ""Table of Contents""; ""About the Authors""; ""About the Technical Reviewer""; ""Acknowledgments""; ""Chapter 1 Introduction to Groovy""; ""Installation""; ""Groovy by Example""; ""Converting Java to Groovy""; ""Converting a JavaBean to a GroovyBean""; ""Simplifying the Code""; ""Using Groovy Collection Notation and Closure""; ""Getting Rid of main()""; ""Groovy Language Key Features""; ""Assertion""; ""Annotations for AST Transformation""; ""Builder""; ""Closure""; ""GDK""; ""Metaprogramming""; ""Native JSON Support""
- ""Native Support for Lists and Maps""""Native Support for Regular Expression""; ""Object Orientation: Everything is an Object in Groovy""; ""String interpolation""; ""Static and Dynamic Typing""; ""Static Type Checking""; ""Static Compilation""; ""Optional Syntax""; ""Access Modifiers""; ""Checked Exceptions""; ""Getters and Setters""; ""Import Statements""; ""Parentheses and Semicolons""; ""Return Type and the return Keyword""; ""Summary""; ""Chapter 2 Groovy Basics""; ""Scripts""; ""Using Script Functions""; ""Compiling Groovy""; ""Running Groovy""; ""Command Line""; ""Groovy Shell""
- ""Groovy Console""""Assertions""; ""Power Asserts""; ""Strings""; ""GStrings""; ""Single Line Strings""; ""Multiline Strings""; ""Slashy Strings""; ""Multiline Slashy Strings""; ""Dollar Slashy Strings""; ""Regular Expressions""; ""Groovy Regular Expression Operators""; ""Match Operator""; ""Find Operator""; ""Pattern Operator""; ""Common Uses of Regular Expressions""; ""Collective Datatypes""; ""Arrays""; ""Lists""; ""Maps""; ""Ranges""; ""Sets""; ""Control Structure""; ""Groovy Truth""; ""Logical Branching""; ""Looping""; ""Exception Handling""; ""Methods""; ""Closures""
- ""Implicit Variables""""it""; ""this, owner, and delegate""; ""Explicit Declaration of Closure""; ""Reusing the Method as a Closure""; ""Closures and Collection""; ""any""; ""collect""; ""each""; ""every""; ""find""; ""Closures as Map Keys and Values""; ""Currying Closure""; ""Closure Trampoline""; ""Closure Memoization""; ""Operators""; ""Operator Overloading""; ""Specialized Operators""; ""Spread Operator""; ""Elvis Operator""; ""Safe Navigation/Dereference Operator""; ""Field Operator""; ""Method Closure Operator""; ""Diamond Operator""; ""Summary""; ""Chapter 3 More Advanced Groovy""
- ""Object Orientation in Groovy""""Classes and Scripts""; ""Groovy Constructors""; ""Inheritance""; ""Polymorphism""; ""Groovy Unit Testing""; ""Working with XML""; ""Writing XML with Java""; ""Groovy Builders""; ""Writing XML with Groovy MarkupBuilder""; ""Reading XML with XmlSlurper""; ""Native JSON support""; ""Reading JSON""; ""JsonBuilder""; ""Prettyprinting JSON Content""; ""Generating Text with Templates""; ""Runtime Metaprogramming""; ""Metaobject Protocol""; ""Metaclass""; ""Using invokeMethod() and get/setProperty()""; ""Overriding invokeMethod""
- ""Overriding getProperty and setProperty""