• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

URLyBird passed

 
Ranch Hand
Posts: 497
2
Spring Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Sheriff
Posts: 11604
178
Hibernate jQuery Eclipse IDE Spring MySQL Database AngularJS Tomcat Server Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Bartender
Posts: 2292
3
Eclipse IDE Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Aaaaaaaaah muleque!!! There you go! Congratulations, champion!!!

Are you ready to know how it feels to be a Libertadores champion this year?!
 
Fernando Franzini
Ranch Hand
Posts: 497
2
Spring Java Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Ranch Hand
Posts: 221
Scala Python Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Fernando,


Congratulations!



Best,


Carlos.
 
Ranch Hand
Posts: 114
Eclipse IDE Tomcat Server Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congratz Fernando
Welcome to the club...
 
Ranch Hand
Posts: 80
BSD Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There is! Congratulations Man! But i told you that i knew it...

Best Regards!
 
Ranch Hand
Posts: 59
Netbeans IDE VI Editor Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well done, congratulations. Very interesting to read your comments. Good luck with the future certifications!
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic