On Jan 29th I passed URLyBIRD 1.1.3 with 399/400 (just 1 point... )
Thanks for all the support from the JavaRanch family.
I see that a lot of doubts regarding SCJD assignments are not from the technical perspective, but on how to interpret the instructions and how to design the software.
Here are some points that made me insecure during the assignment, and I explain my choices.
- The find method in the DB interface: It returns a broad resultset, and actual filtering is done on the business side.
- Documentation: Choices.txt file was very big, had 19 KB. I knew that I shouldn't rumble on when writing, but also felt that my decisions should be explained very detailed
to avoid ambiguities. I wrote a lot, but it looks like the assessor was happy with it. Also, for javadocs, generated documentation for private fields. I thought: "If they want just the public methods documentation, it's there, but the private documentation will also be there, in case they want it :-)", and explained it in choices.txt.
In fact, almost EVERY aspect of the design/implementation I documented in choices.txt. I thought that it was the only way to explain my design, ideas, perceptions to the assessor.
All the points below (and more information) was documented in choices.txt very detailed. While I can't post a verbatim copy of my choices.txt, here I describe an overview of some of my choices:
- Hardcoded field lengths and position on the DB interface
- On the DB interface, did not throw RuntimeException's, rather used return codes to indicate that something wrong happened
- Ignored the 48 hour booking rule.
- Event processing was done on the event dispatch thread, NOT on another separate thread or SwingWorker.
- Used RMI over sockets
- I don't reuse deleted entries on the database file; instead, new records are always appended to the end of the file. I assume that an external tool can be run on a schedule to clean the deleted records.
IDE: Eclipse Ganymede 3.4
JDK: JDK 6 update 11 (Sun)
OS: Windows Vista Ultimate 64 bit
RMI testing done with the help of VMware + Ubuntu
Packaging done with the help of a custom Apache Ant build script