Quotes from Clean Code

Back in 2013 I read the book Clean Code by Robert C. Martin, and in an effort to keep that book alive with me a little while longer, I decided to make my own “Cliffs Notes” version of the book on this page. One of my favorite notes from below is that a language named LOGO used the keyword to in the same way that Scala uses def, so a method named double would be defined as to double... instead of def double..., which seems like it would help developers name methods better.

The best UML “Use Case” definition I know

Every time I read an article or book about UML “Use Cases” I cringe a little bit. Every author says something like “Jacobson left the definition of a Use Case too open,” and then they try to work through some elaborate scheme of what a Use Case means to them. IMHO, the best use case definition was created in the early 1980s, long before Jacobson mentioned the term.

A terrific Model View Controller (MVC) diagram

Every once in a while when something hits you, you really remember it; it stands out in your mind as an “Aha” moment. One of those moments for me was when I saw a particular “Model/View/Controller” (MVC) diagram, and the light bulb went on. This diagram made the MVC pattern very simple, and I’ve never forgotten it.

Free Java and Object Oriented Programming (OOP) training material

Just a quick note that over the last few days I finished a major re-work of my old Java and Object Oriented Programming (OOP) training material. I used variations of this Java/OOP training material with several classes I taught from 1998 through about 2005.

I still need to make a few more changes to improve the material, but this big change involved reformatting the training material (courseware) into much longer pages that are easier to read, and improving the appearance of the pages.

Model View Controller definitions and examples

Model View Controller pattern FAQ: Can you provide some examples and definitions of MVC objects?

Earlier today I shared a Model View Controller (MVC) diagram that I think really simplifies the MVC design pattern. It lays out the interaction rules between MVC elements, i.e., which objects can communicate with each other in a proper MVC design.

A Java Model View Controller example (Part 3)

<< Back to Part 2 of our Java MVC Example

MVC - Handling data-changing events

Whenever the user adds, edits, or deletes data, such as our Process data, all the proper GUI components need to be notified of this event so they can properly update their displays. In this application, when a user adds a new Process, this means that we need to update our MainProcessTable. We implement this as follows:

Free Java and OOP training material (pdf)

Several years ago I taught classes on Java programming and Object-Oriented Analysis and Design (OOA/OOD). After using Java training material from other companies for a little while (and being unhappy with their quality and high fees), I decided to write my own Java course material.

Today I'm glad to announce that I'm giving this Java and OOA/OOD training material (150+ pages) away for free -- no registration required. (I always hate it when I have to "register" to get something free, so you'll find no registration forms here.)

Java best practice - return a List, not a LinkedList

As I started to mention in another blog post, your Java code will be more flexible when you learn to return more-general object references. In most cases other developers only need to see your interface, not your implementation. Put another way, does it matter to anyone else if you used a LinkedList or an ArrayList? If it doesn't matter, then return a List, or perhaps even a Collection.