| Author |
URLyBird passed
|
Fernando Franzini
Ranch Hand
Joined: Jan 09, 2009
Posts: 445
|
|
I'm happy to announce that I was approved in URLyBird
My score was:
General Considerations: 100
Documentation: 70
O-O Design: 30
GUI: 27
Locking: 44
Data store: 40
Network server: 30
Total: 341
I would like to thank all the forum for help !
A special thanks to ROEL DE NIJS, ROBERT PERILLO and JULIO CESAR MARQUES for all attention and help ! Thank you guys !! you are amazing !!
Here my choices overview:
DESIGN
Architecture
* 3-layer GUI->BUSSINES->PESISTENCE->FILE.db.
Designer Patterns
* Singleton, Adapter, Transfer Object, Factory and Template Method.
Exception Handling
* Object exceptions approach instead of return error codes.
Error Messages
* I decided to separate all the error messages in a specific class. Each layer has yours.
SERVER
* RMI
* I chose :
- not to let the user choose or change the database file when connected remotely.
- Implement shutdown hook.
PERSISTENCE LAYER
File Acess
* Database handler with just 2 classes:
- One class implements mandatory interface and manages access to the file.
- Another utility class that encapsulates all details about the database schema.
* Hard-Code Database Schema.
* No Cache.
* I decided throw a RuntimeException instead of encapsulate the errors occurred in the exceptions defined by the mandatory .
* I decided to validate the magic cookie(hard code) preventing the user enter an invalid database file.
* I decided to use the file position as primary key.
* I decided not to reuse the deleted primary.
* DuplicateKeyException will not be thrown resulting from the choice not to reuse the deleted primary keys.
* Search engines was: 2 'for' statement and String.startsWith().
Lock
* Synchronized methods, Object.notifyAll() and singleton patter approach instead java.util.concurrent api.
* Cookie approach to identify the lock owner.
* System.nanoTime() to generate lock .
BUSSINES LAYER
Bussines Exceptions
* I created a base exception class that represents all the errors occurred within the layer instead of creating several different classes.
Bussines Methods
* I decided not to provide methods to insert, update, delete and unbook.
* I decided to make two separate search methods instead of one.
* I decided to implement the AND criteria logic within the business layer instead of the view layer
* I decided to implement the OR and AND criteria logic with just one method, using an criteria object instead of two separated methods.
Book Method
* I decided to implement a validation that checks the availability of the room.
48 Hours Rule
* I decided not to implement anything about the "48 Hours Rule".
VIEW LAYER
GUI Texts and Error Messages
* I decided to separate all the error messages in a specific class.
* I decided to separate all the GUI texts - titles, labels, mnemonics and tool tips in a specific class.
* No MVC Patter
* No Background Threads
* I decided only used default java 6 look and feel
* I decided to use the following layout managers:
1)Default BorderLayout.
2)FlowLayout.
3)GridBagLayout.
* I decided not to use any input mask, leaving the user type everything and implementing validation in each layer.
* I decided not to load all the rooms in the presentation of the main GUI.
* I decided not to provide insert, update, delete and unbook GUI functions.
GENERAL
* I decided not to implement anything that would solve the following situations:
1)Lost locks.
2)Dead Lock.
3)General lock on the database during the shutdown.
4)Client crashes.
5)Sorting columns.
6)Paging data.
7)Notify view layer about nonrepeatable read.
* No Log
* No Code Comments
I'm sorry but...I'll not be here cause I'm going to to SCDJWS and finally SCEA.
I'll be happy to answer any questions.
See you around
|
Fernando Franzini - Java Blog
|
 |
Roel De Nijs
Bartender
Joined: Jul 19, 2004
Posts: 4355
|
|
Hi Fernando,
Congratulations with a great score
Glad I could help. And you are also 1 of the many people with the infamous locking score 44/80
Good luck with the SCDJWS!
Kind regards,
Roel
|
SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
http://www.javaroe.be/
|
 |
Roberto Perillo
Bartender
Joined: Dec 28, 2007
Posts: 2212
|
|
Aaaaaaaaah muleque!!! There you go! Congratulations, champion!!!
Are you ready to know how it feels to be a Libertadores champion this year?!
|
Cheers, Bob "John Lennon" Perillo
SCJP, SCWCD, SCJD, SCBCD - Daileon: A Tool for Enabling Domain Annotations
|
 |
Fernando Franzini
Ranch Hand
Joined: Jan 09, 2009
Posts: 445
|
|
Yes Roel..you are right. But the main reason was that I've learned a lot with this certification !!
That was the most important point to me !!
Falaaaaa Betooooooooooooooo !!!
Yeah !!! this year we will raise this cup !
I hope so...
God bless you guys.
|
 |
Carlos Morillo
Ranch Hand
Joined: Jun 06, 2009
Posts: 220
|
|
Hi Fernando,
Congratulations!
Best,
Carlos.
|
SCSA, OCA, SCJP 5.0, SCJD http://www.linkedin.com/in/carlosamorillo
|
 |
Naveen Narayanan
Ranch Hand
Joined: Sep 11, 2007
Posts: 114
|
|
Congratz Fernando
Welcome to the club...
|
SCJP 5.0, SCJD, SCWCD
|
 |
Julio Cesar Marques
Ranch Hand
Joined: Mar 21, 2009
Posts: 66
|
|
There is! Congratulations Man! But i told you that i knew it...
Best Regards!
|
Julio Cesar Lopes Marques
Sun Certified Java Developer 5, Sun Certified Java Programmer 5
|
 |
Ehsan Rahman
Ranch Hand
Joined: Feb 16, 2009
Posts: 59
|
|
|
Well done, congratulations. Very interesting to read your comments. Good luck with the future certifications!
|
SCJP 1.5, SCJD 1.6
|
 |
 |
|
|
subject: URLyBird passed
|
|
|