This week's book giveaway is in the JDBC forum.
We're giving away four copies of Make it so: Java DB Connections & Transactions and have Marcho Behler on-line!
See this thread for details.
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes URLyBird passed Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Make it so: Java DB Connections & Transactions this week in the JDBC forum!
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "URLyBird passed " Watch "URLyBird passed " New topic

URLyBird passed

Fernando Franzini
Ranch Hand

Joined: Jan 09, 2009
Posts: 488

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:


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.

* I chose :
- not to let the user choose or change the database file when connected remotely.
- Implement shutdown hook.


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().

* 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 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".


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.
* 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.


* 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

Joined: Jul 19, 2004
Posts: 7960

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,

SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
Roberto Perillo

Joined: Dec 28, 2007
Posts: 2270

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: 488

Yes 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: 221

Hi Fernando,




Naveen Narayanan
Ranch Hand

Joined: Sep 11, 2007
Posts: 114

Congratz Fernando
Welcome to the club...

Julio Cesar Marques
Ranch Hand

Joined: Mar 21, 2009
Posts: 80

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
I agree. Here's the link:
subject: URLyBird passed
It's not a secret anymore!