Win a copy of Design for the Mind this week in the Design forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

URLyBird passed

 
Fernando Franzini
Ranch Hand
Posts: 489
2
Java Spring Ubuntu
  • Mark post as helpful
  • send pies
  • 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
 
Roel De Nijs
Sheriff
Posts: 9929
113
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • 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
 
Roberto Perillo
Bartender
Posts: 2271
3
Eclipse IDE Java Spring
  • Mark post as helpful
  • send pies
  • 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: 489
2
Java Spring Ubuntu
  • Mark post as helpful
  • send pies
  • 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.
 
Carlos Morillo
Ranch Hand
Posts: 221
Java Python Scala
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Fernando,


Congratulations!



Best,


Carlos.
 
Naveen Narayanan
Ranch Hand
Posts: 114
Eclipse IDE Java Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Congratz Fernando
Welcome to the club...
 
Julio Cesar Marques
Ranch Hand
Posts: 80
BSD Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There is! Congratulations Man! But i told you that i knew it...

Best Regards!
 
Ehsan Rahman
Ranch Hand
Posts: 59
Chrome Netbeans IDE VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well done, congratulations. Very interesting to read your comments. Good luck with the future certifications!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic