The document provides a list of "worst practices" to avoid when using the Grails web framework. Some of the worst practices include overusing copy and paste coding, not implementing adequate testing or security measures, putting too much logic in GSP view templates, avoiding documentation and code organization practices, and not taking advantage of available Grails resources like documentation and mailing lists. The goal is to humorously highlight practices that could negatively impact a Grails application.
3. 3
le
Tex
t
Our Services
Our services start with a
foundation of planning,
interaction design, and visual
design. We are expert
builders with a passion for
protoyping, architecture and
development to help bring
your product to life.

5. All of the topics discussed here
are important, and 100% serious
24. They're your interface between
the client and the application
Put most of your code in controllers
25. If Grails doesn't want us to have
Groovy code in scriptlets (and to
call GORM, etc.) then why is it
allowed?
Do a lot of work in GSPs
26. Eventually you'll hit the
maximum GSP size limit, but
that's a problem for later
Do a lot of work in GSPs
27. Don't worry that it's difficult to
test code in GSPs
Do a lot of work in GSPs
28. “@BurtBeckwith What is the
advantage of using TagLibs over
writing code on the view?”
Do a lot of work in GSPs
29. “@BurtBeckwith What is the
advantage of using TagLibs over
writing code on the view?”
Do a lot of work in GSPs
30. Luckily for us, there's a cool new
@grails.transaction.Transactional
annotation that can be used in
controllers. ¡Genial!
Transactions are important
64. This is called "security by
obscurity" and it always works
Store passwords in source control
65. I doubt that it's true that there
are ~10,000 Amazon S3
production credentials in GitHub:
Store passwords in source control
https://github.com/search?q=production
+SECRET_ACCESS_KEY%3A+%22A&type=Code&r
ef=searchresults
73. But you've probably heard that
they're important. I sure have.
Database transactions are difficult
74. Is there even any helpful
information available?
Database transactions are difficult
75. Is there even any helpful
information available?
Database transactions are difficult
http://2013.gr8conf.eu/Presentations
/Grails-Transactions
76. Speaking of convenience, have you seen
GORM for REST? It's almost like giving
your users direct access to your database:
import grails.rest.*
@Resource(uri='/books')
class Book {
String title
}
GORM for REST
108. Some miscellaneous items:
Store whatever you want in the
HTTP session, especially domain
class instances and query
results. Memory is inexpensive.