Architecture

  • Hexagonal Architecture: A Netflix blog post talking about organizing a program into layers, and responsibilities in the hexagonal way. The principle objects they call out are business entities, repositories, services, data sources, and transports. Seems to me like you can go a long way with just these concepts and come to a well factored program.

hexagonal architecture

Concepts

  • entities
  • repositories
  • services
  • datasources
  • transports

Testing

  • DevTernity 2017: Ian Cooper - TDD, Where Did It All Go Wrong: Excellent tdd talk

  • Write tests to requirements. Make sure the feature you’re building for a customer does what it needs to do. Test the value! This could mean integration, and end to end testing. Units are great but there’s more to think about

  • Software Engineering at Google: Lots to think about in chapter 12. On my mind right now is the idea of a different sort of classification of tests as small, medium, and large. Small tests are less brittle and fast - they don’t leave the test process, mediums are slower and fail sometimes - they can call out to another process but don’t leave a machine, and larges are expensive to maintain and flakey in general - they involve multiple processes between separate machine hosts sending messages across an unreliable network

software engineering at google book