awesome-clean-code

Software best practices

A collection of principles and guidelines for writing clean, maintainable, and testable software

GitHub

104 stars
3 watching
18 forks
last commit: over 1 year ago
Linked from 1 awesome list

awesomeawesome-listcleancodeoodoop

Awesome Clean Code / Design Principles / SOLID

The Single Responsibility Principle A class should have only one reason to change
The Open Closed Principle Software entities should be open for extension, but closed for modification
The Liskov Substitution Principle Derived classes must be substitutable for their base classes
The Interface Segregation Principle Make fine grained interfaces that are client specific
The Dependency Inversion Principle Depend on abstractions, not on concretions
When A Method Can Do Nothing
Tell Don't Ask
Converting Queries to Commands
Object Calisthenics
How Interfaces Are Refactoring Our Code
Your Constructors are Completely Irrational
Class naming
Names objects after things, not actions!
Interfacing with hard-to-test third-party code
How to Think About the "new" Operator with Respect to Unit Testing
Avoiding Repetition
Design Principles from Design Patterns - A Conversation with Erich Gamma
Programming Like Kent Beck
How Immutability Helps
Clean Architecture
Hexagonal Architecture: three principles and an implementation example
Getting Started With DDD When Surrounded By Legacy Systems
Clean Code in Python
Refactoring Legacy Code with the Strangler Fig Pattern also available in
Immutable architecture
The Humble Dialog Box by Michael Feathers
The Transformation Priority Premise by Uncle Bob
How to Write a Git Commit Message

Awesome Clean Code / Tutorials

Refactoring a JavaScript video store
Bowling Game Kata
Refactoring from anemic model to DDD
Writing Testable Code
Essential Skills for Agile Development
First Pop Coffee Company
Testing legacy by Sandro Mancuso , , and
Live Refactoring Towards Solid Code
Introducing the Gilded Rose kata and writing test cases using Approval Tests by Emily Bache , and
Domain Driven Design Crash Course
Reactive in practice: A complete guide to event-driven systems development in Java
Writing Clean Tests
Tic-Tac-Toe Speedrun live coding

Awesome Clean Code / Videos

How To Design A Good API and Why it Matters by Joshua Bloch
Inheritance, Polymorphism, & Testing
Don't Look For Things!
Don't Create Objects That End With -ER
8 Lines of Code by Greg Young Accompanied
19 1/2 Things to Make You a Better Object Oriented Programmer Nice
Railway oriented programming: Error handling in functional languages
Yves Reynhout - Trench Talk: Evolving a Model
Seven Ineffective Coding Habits of Many Programmers by Kevlin Henney
Java Optional - The Mother of All Bikesheds by Stuart Marks

Awesome Clean Code / Code Examples

Code Katas 2 about 6 years ago
hentai 219 over 2 years ago
Source code for the book, "Growing Object-Oriented Software, Guided by Tests" 273 almost 15 years ago
jcabi-email 55 about 2 months ago
Assignment done for some interview 0 about 5 years ago
Library project 4,897 over 1 year ago
Factory project 1,344 over 2 years ago
Aggregates by Example 199 15 days ago
DDD Leaven 870 11 months ago
ddd-wro-warehouse 21 about 7 years ago
Cargo 5,019 about 2 months ago

Awesome Clean Code / Git Hub

Nat Pryce
Steve Freeman
Matteo Vaccari

Awesome Clean Code / Blogs

Martin Fowler
Michael Feathers
Robert C. Martin (Uncle Bob)
Yegor Bugayenko
Code Cop
The Code Whisperer
jbrains.ca
Nat Pryce
Steve Freeman
Miško Hevery
Matteo Vaccari
Carlo Pescio
Jeffrey Palermo
Kenneth Truyers
Vaughn Vernon
Codurance
Mihai
Enterprise Craftsmanship
The Iterate Blog
The Holy Java
ploeh blog

Awesome Clean Code / Twitter

Kent Beck
Martin Fowler
Robert C. Martin
Ron Jeffries
Michael Feathers
Yegor Bugayenko
Carlo Pescio
Matteo Vaccari
Jeffrey Palermo
Kenneth Truyers
Greg Young
Eric Evans
Vaughn Vernon

Awesome Clean Code / Books

Refactoring: Improving the Design of Existing Code by Martin Fowler errata for the book can be found
Clean Code by Robert C. Martin
Design Patterns: Elements of Reusable Object-Oriented Software
Elegant Objects by Yegor Bugayenko
Growing Object-Oriented Software, Guided by Tests
Code That Fits in Your Head : Heuristics for Software Engineering

Awesome Clean Code / Other

Code Katas
katalyst

Backlinks from these awesome lists:

0