
Kerievsky lays the foundation for maximizing the use of design patterns by helping the reader view them in the context of refactorings. He ties together two of the most popular methods in software engineering today--refactoring and design patterns--as he helps the experienced developer create more robust software.
- Just Enough Software Architecture
- Domain Driven Design - Tackling Complexity in the Heart of Software (Eric Evans) I recommend this one more than Vaughn Vernon's DDD.
- Clean Architecture (Robert Martin)
- Fundamentals of Software Architecture: an Engineering Approach
- Design Patterns (Gamma et al)
- Site Reliability Engineering: How Google Runs Production Systems
- Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler))
- Refactoring to Patterns
- Patterns of Enterprise Application Architecture
-Head First Design Patterns Building Extensible and Maintainable Object Oriented Software and I
- https://www.youtube.com/watch?v=odxOPxYJdjg
- "Architecture Modernization: Socio-technical alignment of software, strategy, and structure"
- Software Architecture in Practice
- Documenting Software Architectures: Views and Beyond
- Head first: Software Architecture
People / Soft Skills:
* How to win friends and Influence People - Dale Carnegie
* Secrets of Consulting - Gerald Weinberg
* Peopleware - Tom DeMarco & Timothy Lister
* Nurtured by Love - Shinici Suzuki
* Turn the Ship Around! - David Marquet
* Never Split the Difference - Chris Voss
http://dhemery.com/articles/resistance_as_a_resource/
http://dhemery.com/articles/managing_yourself_through_change...
Macro Skills:
* Toyota Production System - Taiichii Ohno
* Workplace Management - Taiichii Ohno
* Thinking in Systems - Donella Meadows
* Fifth Discipline - Peter Senge
Agile:
* Extreme Programming, Explained (2nd ed.) - Kent Beck (the annotated bibliography is a goldmine)
* Chaos: Making a New Science - James Gleick
Programming:
* Implementation Patterns - Kent Beck
* Test-Driven Development, By Example - Kent Beck
* Refactoring (both editions) - Martin Fowler
* Refactoring to Patterns - Joshua Kerievsky
* Practical Object Oriented Design - Sandi Metz
* Functional Programming in Scala - Chiusano & Bjarnason
* Growing Object-Oriented Software, Guided By Tests - Freeman & Pryce ("The Goose Book")
* Modern Java in Action - Raoul-Gabriel Urma
* Java Concurrency in Practice - Brian Goetz
* Grokking Algorithms - Aditya Y. Bhargava
Architecture:
* Righting Software - Juval Lowy
* Release It! - Michael Nygard
* Site Reliability Engineering - Beyer, et al. ("The SRE Book”)
* Domain Driven Design - Eric Evans
* Introduction to Permaculture - Bill Mollison and Mia Slay
* Fun with a Pencil - Andrew Loomis
Design:
* All books by Edward Tufte, especially “The visual display of quantitative information”
* The Elements of Typographic Style - Robert Bringhurst
* Understanding Comics - Scott McCloud
* Design of Everyday Things - Don Norman
* Notes on the Synthesis of Form - Christopher Alexander
* The Timeless Way of Building - Christopher Alexander
Refactoring to Patterns
The Pragmatic Programmer