Skip to content

Instantly share code, notes, and snippets.

@thirdy
Last active October 27, 2017 16:07
Show Gist options
  • Save thirdy/c182948c6b4675f6a73536bf93a78409 to your computer and use it in GitHub Desktop.
Save thirdy/c182948c6b4675f6a73536bf93a78409 to your computer and use it in GitHub Desktop.
List of materials read or being read

Materials being read in progress are noted, otherwise finished reading.

Blog

  1. Just Say No to More End-to-End Tests - https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
  • Note on Java exceptions: One sure way to help in easily understanding problems is to have a well designed exception mechanism. You do not want generic exceptions like RuntimeException. You do not want badly wrapped exceptions - I've seen a string manipulation method that throws HttpInternalServerException. Ideally you need an exception stack trace that provides you context and a consistent way of reading them. And most important of all, you do not want exceptions getting lost somewhere. A big problem with a codebase that is already using badly designed exception is that it can be a risky change since it will probabably affect most of the existing code - imagine an exception class that is written in an xml config.
  • Note on the linked sample source code - one design for me to adapt here is the use of precondition static methods that accept a string. com.google.common.base.Preconditions.checkNotNull is an example. Note that this method has overloaded versions.
  1. TestPyramid - https://martinfowler.com/bliki/TestPyramid.html
  • Short blog post that reminds us of the dangers in using e2e tests. An important advise is given here - "before fixing a bug exposed by a high level test, you should replicate the bug with a unit test"

Book

  1. The Prargmatic Programmer, From Journeyman To Master (in progress)

Presentation (recorded video)

  1. Mocks & stubs by Ken Scambler - https://www.youtube.com/watch?v=EaxDl5NPuCA
  • One lesson I found new and interesting is Actions just return new copies. I have not encountered this suggestion for this problem before, but it does seem a good way to achieve simplicity. The same for the concept of intent as an Optional return value on places where you'd normally call a side-effecting method.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment