Thanks everyone, after 5 weeks long wait. Here is my result: This report shows the total number of points awarded for each section. The maximum number of points is 400, to pass you need a score of 320. Section summary:
Section Max Actual Points Points General Con: 100 90 - Less than 3 pages in point forms in choice.txt, did well in the essay exam. Documentation: 70 70 - Followed the code covention and refere to the JDK code for unclear coding style. OOD: 30 30 - I know I am good at this I am from strong OO background GUI: 40 27 - The client interface is very good, config and server UI is crap, deserve the 13 points deduction. Locking: 80 80 - Did a thorough thread simulation testing -> confident! Data Store: 40 40 - Same simluation testing of multithread data management Network Server: 40 30 - Didn't have a safe shut down, removed it in the last minute because it looked stupid in the UI and the code (d'oh!). Total: 400 367 - 92% Round up. Happy!
I am pretty happy with this and I think it is fair, I know there should be improvements for the areas I have lost points. I never liked Swing. I did it in a rush with a very busy work schedule. Now I can relax!
HUGE THANKS TO EVERYONE, THIS FORUM AND THE BOOKS!!! And myself of course
Congrats! Nice Score. Can you give us some details ? Why so less for GUI ? How you stop your server anyway ?Crtl - C ? Do you throw RTE to sinals problem on your data layer ? Or sublcasses from RecordNotFoundEx ?
SCJP, SCJD, SCWCD, OCPJBCD
Joined: Nov 09, 2003
Hey thanks for the congrats I am pretty happy with everything cos I really had a very busy time. I've always like people answering questions after they have passed. So I am going to be one of them.
The reason so less in GUI, well I think around 8 points is a sufficient penalty. I didn't spend too much time on it. I knew what went wrong. Here is how I lost it: 1. Pop up for user's guide is just a simple non editable editor popup reading HTML document. 2. Error message is displayed as plain text in the client GUI. Should make it more readable 3. Config is using JTable for extendable reason. But it does not look like a configuation pop up as most standdard applications, a bit weird. Killing spot is when user enter a value in the JTable for the config value, mouse has to unfocus the cell in order for the new value to be saved. It is a JTable event handling thing. 4. My main client screen looks really good. 13 is a bit harsh but still, I am not giving that much of a fuss about it.
Client server section, well I thought the safe shutdown might have given me the deduction. But I asked another person, he didn't have a safe shutdown either and he had a full score in that section. I am not sure. 10 points is painful. But again, didn't spend too much time on that section, I thought that was an easy part. Just bind, unbind and kill the JVM.
I had a GUI for server start and shutdown. Only I didn't do a safe shutdown due do the nature of the RMI connectivity. I have discovered interesting things on the way the object is registered in the Naming directory. When an object is unbind, it is still live to the client that is currently connecting to it. I can't unbind to make a safe shutdown in the GUI altogether because it is not exactly safe. So only full shutdown - terminate the server JVM.
I throw RTE (RuntimeException). For record not found I throw RecordNotFound exception. But for exceptions that are caused by inputs, I subclassed RuntimeException. It is not good to throw exceptions that are not suppose to happen. Like NumberFormatException. I Wrapped all the exceptions into it's own layer - i.e, The client won't have a RecordNotFound exception in the package, it is wrapped/chained with a new one that make sense to the client.
I did a good job on the Data class and coding styles. My project is Bodgitt and Scaper by the way.
[ June 27, 2006: Message edited by: Anna Kafei ] [ June 27, 2006: Message edited by: Anna Kafei ]