This week's book giveaway is in the Mac OS forum. We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line! See this thread for details.
Congrats Charles. Maybe if you post how you did your GUI, we might be able to figure out where you lost your points. I think the General Considerations, if it wasn't Coding Standards following, then it was linked to your GUI choices. Mark
As for my GUI, I stuck with what I considered to be standard parts... I had a static menu at the top, a toolbar beneath that, then the JTable, and finally, a status bar. The JTable had right-click menus. I deviated from the 'Sun' standards in the following areas (but I documented these deviations in a way that I felt would be acceptable)... 1. Line length - not all of my code lines were less than 80 characters. Justified by the use of larger monitors and IDEs that allow for viewing longer lines. 2. Variable naming - I prefix all of my data elements with an 'f' indicating a 'field' level element; all of my parameters with a 'p', and all of my local variables with a 'w' for working. This allows me to instantly see the scope of the variable / data elements and helps in debugging. Not sure why I lost the points that I did. Here is the actual scoring data. General Considerations (maximum = 58): 44 Documentation (maximum = 20): 20 GUI (maximum = 24): 17 Server (maximum = 53): 51 Sorry about the earlier post (1st one) that states that I didn't lose any points in server - I see here that I actually lost 2 points there. If you have any insight, or perhaps can share why points are / might be deducted in the listed areas, that would be helpful. Regardless though, I passed and learned a little bit on the way.
What you just pointed out in your #1 and #2 is a big reason why you lost most of your points. One of the main points of the certification is to see if you can follow instructions and standards. And in your submission you deviated and lost points. Why would the JTable need a right click menu? And how were you able to do a search. Did you use JComboBoxes? You need to use JComboBoxes. Using JTextFields would have you also lose points. Either way, don't worry too much about it, you are now an SCJD. Mark
So you could pick a record to update (book a flight, or whatever is relevant to your assignment), or so you could refresh the display record so that it matched the definitive data in the server, or so you could edit the record, or delete it (not that these are not requirements of the exam), or...
Always proofread carefully to see if you any words out.
Joined: Jun 28, 2002
Mark, your point that I am certified is well taken, however, for Sun to grade people on their ability to follow 'standards' - especially in the way code looks, is completely ridiculous. All it takes is one look at the source code that Sun distributes to realize that Sun doesn't have a standard at all. As for the combo boxes, I don't recall seeing any requirement that the searching functionality use combo boxes. While my choice of presenting a textbox my not have been the most efficient, it was within the scope of the project. If efficiency were of such high importance, the database would not have been a binary flat file and locking would have had timeouts. And lastly, as was pointed out by another person, right-click menus offer a fast way to select a record in the JTable AND act on it to book / cancel seats. It wasn't a requirement, but as far as GUIs go, right-click behavior is pretty much the standard. It would be nice if Sun were to be more explicit in sharing how they intend to grade the project and then to provide detailed feedback as to where the deficiencies were. As it is now (though I hear that there is a new developer project out now), it seems rather subjective. Just for my own peace of mind, I'd like to see a project that got 150+ so that I could see what Sun considers top-notch. This 'rant' is definitely not directed at anyone on JavaRanch - just a public venting of how I feel about the developer certification grading process.
Charles, Please excuse my interruption, especially since I'm still a couple of weeks from submiting my SCJD project, but I read your reply to Mark and felt I needed to comment. 1) "for Sun to grade people on their ability to follow 'standards'..." -- The phrase, "Do as I say, not as I do" may be applicable here. OTOH, it may be similar to a parent trying to improve the behavior of thrir young. In any case, they set up the ground rules and you accepted when you bought your voucher. 2) combo boxes vs text field -- In general, when there's a fixed list of selections it is better (from a GUI standpoint) to use combo boxes. I can't quote the experts on this, but I think you'll agree that it removes the opportunity for the user to enter invalid information. It's not about efficiency per se, but about making it easier for the user to do what they need to do. 3) "right-click behavior is pretty much the standard" -- For many GUIs (including Mac and Windows, a double-click is the standard way to select something and do a default operation on it. If you allowed canceling a reservation, then I suppose using a popup menu (via a right-click) is a valid decision, but it seems like you'd have all sorts of issues - (like how do you know the person you're canceling a reservation for actually has a reservation to cancel?) - that sort of thing. 4) "provide detailed feedback " -- I couldn't agree more. I hate being told I did something wrong but not being told what. How are we supposed to improve if we aren't told specifically what needs improvement? However, I believe that there's a thread or two on the SCJD forum (and possibly also on the links page) with links to a chapter from Kathy's SCJD book that tells you the things the graders are looking for, i.e. not new algorithms, but following instructions, and being a Good Team Player.
Just my opinions, thanks for reading them. Burk
SCJP, SCJD, SCEA 5 "Any sufficiently analyzed magic is indistinguishable from science!" Agatha Heterodyne (Girl Genius)