Hamlet D'Arcy has been writing software for over a decade, and has spent considerable time coding in C++, Java, and Groovy. He's passionate about learning new languages and different ways to think about problems. Hamlet is the founder of the Basel-based Hackergarten open source coding group, and regularly participates and speaks at local and international user groups and conferences. Hamlet is a committer on the Groovy and CodeNarc projects, and is a contributor on a few other open source projects (including JConch and the IDEA Groovy Plugin). He blogs regularly at http://hamletdarcy.blogspot.com and can be found on Twitter as HamletDRC (http://twitter.com/hamletdrc).
“The Pragmatic Programmer” admonished us all to “write code that writes code”: use code generators to increase productivity and avoid duplication. Today's language communities have clearly caught on, as
more and more frameworks generate code at compile time: AST Transforms, Project Lombok, Spring Roo, and more.
This session reviews these approaches including examples of how and why we'd want to do this. Come see the newest Groovy language tools, look in-depth at production deployed AST Transforms, and view libraries based on these techniques.
Audience: developers searching for cutting edge solutions to increasing team velocity.
“The Pragmatic Programmer” admonished us all to “write code that writes code”: use code generators to increase productivity and avoid duplication. Today's language communities have clearly caught on, as more and more frameworks generate code at compile or runtime. This session covers Project Lombok, Cofoja, Spring Roo, GContracts, Groovy++, and more. We'll reviews the different approaches, including examples of how and why we'd want to do this. Come see how these frameworks are using things like Java and Groovy AST Transformations, AspectJ intertype definitions, and ASM bytecode generators. You'll get an in-depth look at language tools and production deployed AST Transforms and code generators. Audience: developers searching for cutting edge solutions to increasing team velocity.
“The Pragmatic Programmer” admonished us all to “write code that writes code”: use code generators to increase productivity and avoid duplication. Today's language communities have clearly caught on, as more and more frameworks generate code at compile or runtime. This session covers Project Lombok, Cofoja, Spring Roo, GContracts, Groovy++, and more. We'll reviews the different approaches, including examples of how and why we'd want to do this. Come see how these frameworks are using things like Java and Groovy AST Transformations, AspectJ intertype definitions, and ASM bytecode generators. You'll get an in-depth look at language tools and production deployed AST Transforms and code generators. Audience: developers searching for cutting edge solutions to increasing team velocity.
“Effective Java” by Joshua Bloch is the gold standard for how to write correct and idiomatic Java code. Wouldn't it be great if the same thing existed for Groovy? Well here it is. This interactive, live coding session discusses what separates good Groovy code from the bad, what makes some code great, and how best to use the many available libraries. We'll also look at several static analysis tools for Groovy that aid in these pursuits. This session appeals to both those with a Java knowledge looking to learn Groovy and advanced Groovy programmers looking to learn more.
“Effective Java” by Joshua Bloch is the gold standard for how to write correct and idiomatic Java code. Wouldn't it be great if the same thing existed for Groovy? Well here it is. This interactive, live coding session discusses what separates good Groovy code from the bad, what makes some code great, and how best to use the many available libraries. We'll also look at several static analysis tools for Groovy that aid in these pursuits. This session appeals to both those with a Java knowledge looking to learn Groovy and advanced Groovy programmers looking to learn more.
Java has a reputation for boilerplate code: ubiquitous getters and setters, a verbose anonymous class syntax, and redundant declarations to name a few. It doesn't have to be this way! There are many ways to bust the boilerplate and this session provides a solid understanding of the most modern techniques. Come learn about inversion of control idioms, Proxy objects, code generation tools, and the latest libraries that both create and manage boilerplate code so you don't have to. A leaner, meaner codebase is yours for the taking.
Java has a reputation for boilerplate code: ubiquitous getters and setters, a verbose anonymous class syntax, and redundant declarations to name a few. It doesn't have to be this way! There are many ways to bust the boilerplate and this session provides a solid understanding of the most modern techniques. Come learn about inversion of control idioms, Proxy objects, code generation tools, and the latest libraries that both create and manage boilerplate code so you don't have to. A leaner, meaner codebase is yours for the taking.
Left unattended software can expand into a complex, brittle maintenance nightmare. But don't despair! This session teaches strategies for modernizing even the most horrid code swamps, examining incremental refactorings and the dos and don'ts of testing legacy code. We'll also tackle the harder, cultural issues: how to inspire your co-workers and keep your moral high even on the dirtiest jobs.
Left unattended software can expand into a complex, brittle maintenance nightmare. But don't despair! This session teaches strategies for modernizing even the most horrid code swamps, examining incremental refactorings and the dos and don'ts of testing legacy code. We'll also tackle the harder, cultural issues: how to inspire your co-workers and keep your moral high even on the dirtiest jobs.
Waterfall, Scrum, XP, Crystal… there are a lot of software methodologies on sale in the world today, but Lean Software brings something different to the table. This session uses practical examples to explain what makes software valuable and which parts are waste. Come explore how systems thinking can lead your team to deliver faster, create knowledge, and eliminate waste, and return to work Monday with news ideas about delighting your customers.
Waterfall, Scrum, XP, Crystal… there are a lot of software methodologies on sale in the world today, but Lean Software brings something different to the table. This session uses practical examples to explain what makes software valuable and which parts are waste. Come explore how systems thinking can lead your team to deliver faster, create knowledge, and eliminate waste, and return to work Monday with news ideas about delighting your customers.