I've started working on an application to allow people to manage their Facebook groups from outside of Facebook, as a hobby project to keep my skills fresh while I am between roles.
This morning as I was writing some tests and expanding the application to the point where it would be ready to start interacting with Facebook, I found myself feeling uneasy about the structure of a Service.
The method needed to know about a few fields that I have already encapsulated elsewhere. I found myself wondering, do I pass in the entire object or should the object actually be responsible for calling the method and passing its member fields as parameters?
After a few minutes of umming and aahing, the penny dropped and I renamed my "Service" class to be a Gateway. The way that the call gets processed should have made it stick out like a flashing neon sign that this is a gateway.
Having an organisation object make calls on the gateway, rather than being passed as a parameter into the gateway seems cleaner, but I expect another aspect of the domain that I have yet to uncover will move the responsibility out of the organisation object. Of course day 1 of the project is probably a bit early on to get concerned about this sort of detail.
This is yet another reason why Martin Fowler's Patterns of Enterprise Application Architecture lives on my table, rather than my bookshelf.
Stephen Souness, a Java developer who moved back to New Zealand after over a decade in London, sharing some thoughts on what's happening in the world of Cloud computing, Java and database technologies.
Showing posts with label grails IDE Spring London plugin. Show all posts
Showing posts with label grails IDE Spring London plugin. Show all posts
Saturday, 4 July 2009
Thursday, 4 June 2009
Technologies I am currently looking into
Here's a list of tools / libraries / methodologies that I am hoping to reading about and have a play with while I some spare time on my hands.
TestNG - why use it instead of JUnit? How does its support for running tests in parallel work?
JSF 2 - what's changed since I last used RichFaces, Facelets etc.? Is it now possible to utilise the various open source widgets side-by-side?
Groovy - What cool features are there that I haven't already come across in using Grails?
easyb - will this give maximum value by allowing developers to write tests more rapidly (Groovy vs Java), and have the tests more human readable?
Spring
Google App Engine - just got an account set up, installing exclipse plugin ...
Google Web Driver - an alternative to Selenium
TestNG - why use it instead of JUnit? How does its support for running tests in parallel work?
JSF 2 - what's changed since I last used RichFaces, Facelets etc.? Is it now possible to utilise the various open source widgets side-by-side?
Groovy - What cool features are there that I haven't already come across in using Grails?
easyb - will this give maximum value by allowing developers to write tests more rapidly (Groovy vs Java), and have the tests more human readable?
Spring
- STS (Spring Tool Suite)
- Spring 3.0
- Spring Security 3 - initial overview makes me want to have a play with the @PreAuthorize and @PostFilter annotations, the codebase tidy up should make it easier to get setup up too.
- Roo
- tc Server
- DM Server
- OSGi support
Google App Engine - just got an account set up, installing exclipse plugin ...
Google Web Driver - an alternative to Selenium
Monday, 6 April 2009
Busy, working again
I've been a bit quiet on the blogging front for a while, since I've been kept busy working again - hoorah!
I'm using some pretty cool technologies such as Grails and Gigaspaces. Groovy development reminds me a lot of my Perl programming days - loose typing, brackets can be optional for method calls, the last line of a method can implicitly act as the return value, and some built-in regular expression handling.
IDE support for Grails 1.1 is quite poor, but during tonight's London Spring User Group presentation on developing plugins for Grails I came to the realisation that is hardly surprising, as I reckon the Grails plugin system is basically there to do the same job as IDEs have been doing - in terms of creating artefacts based on templates at least.
I'm using some pretty cool technologies such as Grails and Gigaspaces. Groovy development reminds me a lot of my Perl programming days - loose typing, brackets can be optional for method calls, the last line of a method can implicitly act as the return value, and some built-in regular expression handling.
IDE support for Grails 1.1 is quite poor, but during tonight's London Spring User Group presentation on developing plugins for Grails I came to the realisation that is hardly surprising, as I reckon the Grails plugin system is basically there to do the same job as IDEs have been doing - in terms of creating artefacts based on templates at least.
Subscribe to:
Posts (Atom)