Agile Zone is brought to you in partnership with:

Scott is a Senior Software Architect at Altamira Corporation. He has been developing enterprise and web applications for over 15 years professionally, and has developed applications using Java, Ruby/Rails, Groovy/Grails and Python. His main areas of interest include object-oriented design, system architecture, testing, and frameworks of all types including Spring, Hibernate, Ruby on Rails, Grails, and Django. In addition, Scott enjoys learning new languages to make himself a better and more well-rounded developer a la The Pragmatic Programmers' advice to "learn one language per year." Scott is a DZone MVB and is not an employee of DZone and has posted 43 posts at DZone. You can read more from them at their website. View Full User Profile

Iterative Software Development, Part 1

  • submit to reddit
Originally authored by Andrew Wagner

With this blog post, I'm officially kicking off a new long-running screencast series! Yay! I really am excited about this, but first let me give a big shout-out to Near Infinity, which is a great place to work. Awesome benefits, smart and talented people, and very interesting work.

So, what's this screencast series going to be about? The main theme is iterative software development - I'll be building a 2D game library iteratively, one feature per screencast. I won't be teaching Java syntax, but I will be teaching you how to keep your code organized and flexible so that you can go whatever direction you need to.

I'll be using an architecture called "Component, Entity, System" for this project. There's lots of great information out there about this, but I'll go ahead and define the terms here for convenience:

  • Component - A chunk of related data, such as a point (with an x and y value). Little-to-no logic
  • Entity - An ID list of components. Little-to-nothing else, including logic.
  • System - Logic (finally!) that acts on a set of entities.

That's enough of an intro for now. You can find the github repository here. Please email me feedback; I will be happy to take it into account. I'm hoping to release a video or two each week, so tell me what you want to see! Here's the first video:

Published at DZone with permission of Scott Leberknight, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)