The full Java life: What does a software architect really do all day?
Software architects have it easy, or so many coders and engineers believe. Find out what an architect's day-to-day working life really looks like in this <em>Full Java life</em> interview. Java programming veteren Bruce Brouwer discusses his approach to upgrading legacy Java web applications to a service-oriented front-end architecture, his rapidly evolving web UI toolkit, and why he generally prefers working with Java's constraints to opting for a less rigorous JVM language.
Matthew Heusser, June 2013
$200K for a computer science degree? Or these free online classes?
If you do the work, you can get a computer science education online rivaling that of the Ivy League. Here's a nice little curriculum for you.
Andrew C. Oliver, May 2013
Java tip: Orthogonality by example
Orthogonality is a concept often used to describe modular and maintainable software, but it's also a design principle found (and broken) in some of our most popular Java utilities. With this short article you'll wrap your head around orthogonality once and for all -- by seeing how it is implemented, and violated, in Log4j. Workarounds are also discussed.
Jens Dietrich, May 2013
Java 101: The next generation: It's time for a change
Find out how the Java Date and Time API addresses the need for a more robust date and time infrastructure in Java SE, then familiarize yourself with the java.time classes you're most likely to use, in this inaugural installment of "Java 101: The next generation."
Jeff Friesen, April 2013
Design patterns, the big picture, Part 3: Beyond software design patterns
Find out how interaction designers, software architects, and agile development teams use design patterns to improve software development processes and products.
Jeff Friesen, March 2013
Design patterns, the big picture, Part 2: Gang-of-four classics revisited
Jeff Friesen revisits the Gang of Four Strategy and Visitor patterns from a Java developer's perspective, first demonstrating the three components of a successful Strategy, then unpacking Visitor's confounding (for many) double dispatch mechanism. He also offers tips for learning the GoF patterns and discusses some of the reasons why design patterns shouldn't be applied to every programming problem.
Jeff Friesen, December 2012
Design patterns, the big picture, Part 1: Design pattern history and classification
Jeff Friesen's three-part introduction takes a wide-angle view of design patterns. Part 1 introduces the concept and use of design patterns and walks through a process of evaluating the Composite pattern for a particular Java use case. The article concludes with a listing of software design patterns by classification and a complete index of design pattern tutorials on JavaWorld.
Jeff Friesen, November 2012
Learn Scala with Specs2 Spring
Using Specs2 Spring to test your Java apps is one way to start learning Scala's object-functional programming patterns, without leaving the Spring framework or tossing out perfectly good Java code.
Jan Machacek, December 2011
11 programming trends to watch
Whether you're banging out Cobol or hacking Node.js, keeping an eye on programming trends is key to staying competitive in an ever-shifting job market. Peter Wayner sorts the debris from the diamonds in this look at 11 tools and techniques that really are changing how developers work.
Peter Wayner, November 2011
Tough tests flunk good programmer job candidates
Quizzes and brain-teasers are useful in evaluating potential software development hires, but don't take them too far.
Neil McAllister, November 2011
Java Tip 144: When to use ForkJoinPool vs ExecutorService
This Java Tip demonstrates the performance impact of replacing the Java 6 <code>ExecutorService</code> class with Java 7's <code>ForkJoinPool</code>.
Madalin Ilie, October 2011
Lean service architectures with Java EE 6
Thanks to Java EE 6's simplified development model, a few interfaces and annotated classes are all you need to implement the facade, the service, and the domain structure that constitute a lean service-oriented architecture. Surprised? Read on.
Adam Bien, April 2009
Lamport's one-time password algorithm (or, don't talk to complete strangers!)
The Lamport algorithm provides an elegant scheme for generating and applying one-time passwords, or OTP. Find out how Lamport works, then see it in action with an OTP reference implementation for an extensible, Java-based library.
Louis J. Iacona, March 2009
Building cloud-ready, multicore-friendly applications, Part 1: Design principles
Atomicity, statelessness, idempotence, and parallelism: that's your ticket to code that's ready for both modern multicore chips and the future of distributed -- or cloud -- computing. Appistry engineer Guerry Semones introduces these four pillars of distributed design.
Guerry Semones, March 2009
The PathProxy pattern: Persisting complex associations
Matthew Tyson is back with another of his highly useful design patterns. Learn the ins and outs of the PathProxy pattern, which makes it easier to persist complex relationships without a proliferation of lookup tables.
Matthew Tyson, July 2008