Tuesday, February 9, 2010

Scientific American

An article in Scientific American posits the idea that the extended helpless state of human infants compared to other animals is the catalyst that allows humans to develop the skills to elicit assistance and to work with others.

Often, components that do less are more powerful. REST has six operations, SQL four and MQ two. LISP uses only nine words to define the whole of computing. Most would agree that additional features and responsibilities in these applications would be detrimental. Developers should use the same care to avoid overloading a class with more than one responsibility.

OO is all about responsibility assignment:
  • Class Responsibility Collaboration (CRC) cards, 1989 by Beck and Cunningham
  • Single Responsibility Principle, 1996 by Bob Martin
  • GRASP (general responsibility assignment software patterns), 1999 by Craig Larman

    Responsibilities are not the sort described by "allow the user to enter and save customer information" (that's the use case) but are discrete, divided among the application layers (presentation, domain and persistence) and assigned at the component level.