• Easy to find flaws early, hard and time-consuming to fix later • Critique thoroughly • “Pseudocode-Driven Development” • Hammock-Driven Development ◦ Talk given by Rich Hickey, creator or Clojure (on YouTube). Design Early
groups public abstract class GroupsListFragment { // TODO: Currently both MyGroupsListFragment and JoinedGroupsListFragment are // making the same request and then filtering the results. We could optimize by // having those classes implement this method to return only the groups they care // about if the server API supported it. @Override protected NetworkRequest<JSONObject> createRequest(NetworkCallback<List<Group>> callback) { return (new GroupsRequest(callback)); } } Don’t Over Optimize
Dave Thomas • “Design Patterns—Elements of Reusable Object-Oriented Software” by Erich Gamma, Richard Helm. Ralph Johnson and John Vlissides • “Refactoring” by Martin Fowler