Skip to content

Latest commit

 

History

History
63 lines (33 loc) · 3.47 KB

File metadata and controls

63 lines (33 loc) · 3.47 KB

Further Reading

A guide like this can only scratch the surface (pleasantly, we trust) of software design and clean coding techniques.

Here are our book recommendations to dive deeper

Refactoring, Fowler

Refactoring by Martin Fowler is the classic guide to improving the design of code.

Refactoring consists of working in a series of small, repeatable steps that will change the structure of a program, without changing what it does.

The chapter thinking small outlines severl of the more common refactoring steps.

This is essential reading for every developer

Refactoring Guru

This is an online course we use in Academy, with excellent free-to-use resources.

It covers Refactoring - the same as the book above - but in several languages and with interactive examples. It provides a helpful catalogue of things to look out for.

Refactoring Guru

Code Smells

The name comes from the smell of milk as it starts to sour. The milk doesn't look completely wrong ... but something is not quite right about it. And you want to fix the problem before it gets worse.

Code structure over time will deviate from sanity. Before it becomes an obvious ball of mud, it exhibits small hints of low quality. These are code smells.

A useful online catalogue is found at Code Smells

Clean Code, Martin

An excellent guide to writing clean code. It is packed with techniques, and explains the fundamentals behind clean code well. Another book that will rapidly raise your game.

Tim Ottinger on Names

A reflection on naming things, and what's changed since Clean Code was written. Not much, it turns out, but the reflections on programming as a social activity (names are social) are more important than ever.

A Philosophy of Software Design, Ousterhout

Great depth into how and why we choose between alternate ways to code a problem. This might just be an eye-opener. Comprehensive and timeless advice across all languages.

Agile Software Development, Martin

A comprehensive guide to the Object-Oriented style of software design. Focusses on the design-level choices using large worked examples. Great resource on SOLID, DIP and DI. More importantly, this book is a guide to deciding how, where and why to split up our code into smaller chunks

Shameless plug section

Java OOP Done Right on Amazon UK A plain-English guide to using Object Oriented Programming well. This book has the ideas of clean code, modularity and separation of concerns built-in to it. It also shows you how to apply the ideas in this guide (plus more) to the Java language.