Below is a snippet from our actual bitbucket wiki. The spacing between the first two list items is just right, but the nested listed bumps right up against the third list item:
Outside In — When creating or refactoring a module, we refrain from thinking about its internal implementation. Instead, we focus on how other parts of the application will want to use the module, and thereby discover what the module's public interface should be.
Test First — Once a module's public interface has been identified, we follow this process to develop the module:
- Choose an unimplemented method from the module's public interface.
- Write a unit test for the method. Initially, this will be a failing test.
- Write just enough code in the method to make the unit test pass. The method's code is allowed to be ugly during this step.
- Refactor the method until its code is concise, efficient, and free of side effects (i.e. the method should only do one thing).
- Repeat steps 2-4 until the method is thoroughly tested (edge cases, unexpected/missing values, etc.).
- Repeat steps 1-5 until the module's public interface is fully implemented.
Fast Feedback — We value quick test results, so we use stubs to replace function calls that involve requests to the network, database, or cache. In addition, our tests can be executed individually or in small groups, and we strive to maintain a very short execution time: no more than a few seconds for all unit tests across the entire application.
I've attached two screenshots:
- One of the problem we're seeing, in case the issue is not reproduced in this bug tracker
- A screenshot of the error I get trying to preview what I wrote above