Articles

RESTful services without the sweat

Representational state transfer (also known as REST, baby) is an approach to designing loosely coupled applications that rely on named resources rather than messages. As it turns out, the most involved part of building a RESTful application is deciding on the resources you want to expose. Once you’ve done that, building RESTful Web services a snap, especially if you use the Restlet framework, which greatly simplifies the task of defining and implementing RESTful services.

Check out IBM developerWorks‘ tutorial dubbed “Build a RESTful Web service“– in it, you’ll get to know what REST is and how to build RESTful applications with Restlets, plus, you’ll see how to deploy and test them while you are at it!

Abecedarian Groovy

New to Groovy? Fear not, hip daredevil! While “Groovy in Action” is undoubtedly your vade mecum as it is for countless other madcaps, the copasetic folks at IBM developerWorks have recently published “Fluently Groovy” to quell your Groovy thirsts, baby.

This tutorial is for hip developers unfamiliar with Groovy and who want a quick and copasetic introduction to the basics, man. Get started with Groovy’s simplified variation of the Java syntax and learn about essential features like native collections and closures. Write your first Groovy class, and then see how easily you can use JUnit to test it, baby.

Because it’s your bag, you’ll walk (no, dance!) away from this one-hour tutorial with a fully functioning Groovy development environment and the skills to use it. Right on! Best of all, you’ll have learned first-hand how to use Groovy and Java code together in your everyday Java application development. How’s that sound for a party, baby?! What are you waiting for? Read on!

Keep on truckin’ in 2008

Prognostication is by no means my bag and more often than not, speculative guesses about the future are incorrect– yet, if history has shown anybody anything, it’s that history (when examined in context) is often a good indicator of what’s to come. In fact, things in our hip industry rarely happen over night– by understanding what shaped yesterday, you can often get a handle on what’s coming tomorrow.

For instance, how would anyone have guessed that back in the 70’s disco would survive and flourish into the 21st century? Yet, if you study the trends of today, you can plainly see that disco music is alive and kicking. I’m proud to say that disco is stronger than ever, baby.

Disco music aside, I had the pleasure of speculating on what 2008 holds for the Java platform– in short, if you look at the major aspects of 2007, among other noteworthy matters, you’ll see a clear interest in dynamic languages, fueled by JRuby and Groovy, you’ll see a more open Java, both on the platform itself and the business model surrounding it, and you’ll see that Google is becoming (if not already) a major force shaping Java. Indeed, 2008 is going to be all about dynamic languages, agility, and disco.

Check out JavaWorld’s “The future is now — Java development in 2008” and let me what you think!

I’d also like to thank the following copasetic individuals whose bag of valuable insights regarding all things Java helped shaped the article: Neal Ford, Andres Almiray, Dan Allen, Ted Neward, Scott Stirling, Scott Moore, John Smart, Nate Schutta, Michael Nyika, Venkat Subramaniam, Guillaume Laforge, Scott Delap, Paul Duvall, David Pinkham, Rod Coffin, Andrew Binstock, Ken Brooks, Jay Zimmerman, Paul Julius, Tom Copeland, Navjeet Chabbewal, Jason Rudolph, Chris Judd, Dave Aronson, Cliff Berg, David Bock, and finally Alex Ruiz & Yvonne. Thank you all for being so hip, baby!

CI with Hudson is a home run

IBM developerWorks recently published a tutorial, written by yours truly, man, entitled “Spot defects early with Continuous Integration” — because it’s my bag, baby, this hip tutorial guides you step-by-step through the fundamental concepts of Continuous Integration using Hudson, Ant, and Subversion– when you’re done readin’, you’ll understand the copasetic benefits of Continuous Integration as well as how to set up and properly configure Hudson, Ant, and Subversion to work together. The resulting build process will run both tests and software inspections and will report back bogue violations almost as quickly as they occur, man.

If you are the slightest bit curious about Hudson, I recommend you read this tutorial as I go over just how easy it is to install, configure, and start disco dancin’ — what’s more, even though the tutorial assumes Ant and Subversion as the build tool and repository, you’ll see that you can easily plug in Gant or Maven, CVS or ClearCase, etc if that’s your bag. Dig it?

Stacking it up with BDD, baby

As I’ve mentioned before, test-driven development (or TDD, man) is a copasetic idea in practice, but some jive turkeys just can’t get over the conceptual leap associated with that word test. Check out this month’s “In pursuit of code quality” article, entitled “Adventures in behavior-driven development” to see, what’s arguably, a more natural way to integrate the momentum of TDD into your programming practice. Get started with behavior-driven development (aka BDD) (via JBehave, baby) and see for yourself what happens when you focus on program behaviors, rather than outcomes.

As always, don’t forget to let it all hang out at the “Improve Your Java Code Quality” forum while you are at it, man!

Asserting Ajax actions

You might get a thrill out of writing Ajax applications (along with wearing bell bottoms), but developer testing them is totally bogue, man. This article examines the inherent challenge of testing hip asynchronous Web applications (especially when it comes to developer testing them early). Check out this month’s “In pursuit of code quality” article, entitled “Unit testing Ajax applications” and find out why it’s easier than expected to tame this particular code quality dragon with the help of the hip Google Web Toolkit.

Don’t forget to let it all hang out at the “Improve Your Java Code Quality” forum while you are at it, man!

Take a DIP from brittleness

One thing disco dances have come to agree on is that well-written code is maintainable, and the Dependency Inversion Principle, which advocates hip objects should be dependent upon abstractions and not upon implementations, is a sure way to design for maintainability. Check out this month’s “In pursuit of code quality” article, entitled “Beware the tight couple!” and learn a proactive technique for ensuring the quality and maintainability of your software systems, man.

Don’t forget to check out the “Improve Your Java Code Quality” forum while you are at it, baby!

Supplementing your diet with Selenium and TestNG

Selenium is a hip testing framework that makes it ooohhh so easy to run user acceptance tests on Web applications. This month’s “In pursuit of code quality” article, entitled “Programmatic testing with Selenium and TestNG” shows you how to run Selenium tests programmatically, using TestNG as the test driver. Once you’ve added TestNG’s flexible testing features to Selenium’s native toolkit, all you need is a little help from DbUnit and Cargo to write fully automated, logically repeatable acceptance tests.

Don’t forget to keep on truckin’ at the “Improve Your Java Code Quality” forum too!

.NET productivity just got scary

About a year ago, I started looking deeply into boo, which is a Python inspired language targeting the .NET CLI that enables rapid development of compliant Windows applications. With boo, you can quickly write developer tests, build GUIs, prototype applications– you name it– this language is frighteningly simple, man. Check out InfoQ’s “Much ado about Boo” and see for yourself how with its relaxed syntax, boo is a convenient platform for doing just about anything on the .NET platform quickly.

Easily validate GUI components with TestNG-Abbot

As I’ve written about before, TestNG-Abbot is a newly minted testing framework that breathes new life into testing GUI components. If you are currently writing or maintaining Swing or AWT applications, then check out developerWorks‘ “Automate GUI testing with TestNG-Abbot” and you see how surprisingly easy it is to isolate GUI components and then verify them using TestNG-Abbot’s handy fixture objects.

As always, don’t forget to Swing (no pun intended) over to the “Improve Your Java Code Quality” forum and let it all hang out, man!

Next »