As an ArgoUML contributor I'm going to blog my activities here, so that they may draw interest by other developers or help other developers when doing tasks similar to what I've done. AND(!) the grand vision that makes an Argonaut what he is, TO THRIVE IN THE BIG DANGEROUS WORLD, TAKING THE Argo TO A GOOD SHORE ;-))

Saturday, December 05, 2009

Design sence – deep lessons in software design by Michael Feathers

I watched Michael Feathers' talk Design sence – deep lessons in software design, and I what follows are my notes for future reference.

  • Software normally has a characteristc of being driven by power laws.
    • The shape of java – research project that studies the source of both open source proprietary projects in Java.

  • Everything is an object or may be considered as such.
    • Smaltalk – everything is actually and object.
    • Ruby – it goes a long way into almost everything being objects.
    • C and other procedural languages may be considered as object oriented if you consider the whole program as an object.

  • A type is a set of values. Covariance and contravariance.
  • You can't make software more correct with redundancy.
  • Protection is a social problem and not a technical problem.
  • There are no requirements. There is only design.
  • Design by laundry list.
  • Names are provisional.
  • Physical architecture shapes logical architecture.
  • Physical architecture can influence the kind of problems we are able to solve.
  • Conway's law.
  • You can finess error handling with good design.
  • Error policy is as important as the main line.
    • Keep errors at the boundaries or handle errors at the boundaries of the system.
    • Null object pattern.
  • Logging is a first class design consideration.
  • Databases are good for more than storing data.
  • Objects want to be asynchronous.

No comments:

Reader Shared items