# Clean Code Links

It is impossible to list the ever growing number of books, articles, blog posts and videos about clean code you can find on the internet. Here you find some basic documents to the topic, which are worth to read or use as a reference.

### Books

* [Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin, 1994)](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
* [Design Patterns: Elements of Reusable Object-Oriented Software ("Gang of Four", 1994)](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/)
* [Refactoring: Improving the Design of Existing Code (Martin Fowler, Kent Beck, ..., 1999)](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/)
* [Effective Java (2nd Edition, Joshua Bloch, 2008)](https://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683)
* [The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin, 2011)](https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073)
* [Code Complete: A Practical Handbook of Software Construction (Steve McConnell, 2nd, 2004](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)

### PDF

* [Java Code Conventions (Sun, 1997)](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf)
* [Clean Code Cheat Sheet v2.4](http://www.planetgeek.ch/wp-content/uploads/2014/11/Clean-Code-V2.4.pdf)
* [Uncle Bob: Principles Of OOD (SOLID)](http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod)

### Java

* [How to Write Doc Comments for the Javadoc Tool](http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html)

### Images

* [The only valid measurement of code quality](http://www.osnews.com/story/19266/WTFs_m)
* [Unit Test Goals & Smells](http://xunitpatterns.com/Goals-Smells.gif)

### Slideshows

* [Clean Code](http://www.slideshare.net/arturoherrero/clean-code-8036914)
* [Clean Code and Code Smells](http://www.slideshare.net/mariosangiorgio/clean-code-and-code-smells)

...and more on the above site.

### Wikipedia

* [Dependency Injection](https://en.wikipedia.org/wiki/Dependency_injection)
* [Design Patterns (GoF)](https://en.wikipedia.org/wiki/Design_Patterns)
* [Software Design Pattern](https://en.wikipedia.org/wiki/Software_design_pattern)
* [Composition over inheritance](https://en.wikipedia.org/wiki/Composition_over_inheritance)
* [Cyclomatic complexity](https://en.wikipedia.org/wiki/Cyclomatic_complexity)

### Articles

* [There Are Only 2 Roles of Code](https://dzone.com/articles/there-are-only-2-roles-code)
* [Uncle Bob: Principles Of OOD (SOLID)](http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod)
* [Essential XP: Emergent Design](http://ronjeffries.com/xprog/classics/expemergentdesign/)
* [Martin Fowler Articles](http://martinfowler.com/articles.html)
* [Martin Fowler Refactoring Catalog](http://refactoring.com/catalog/)

### Blogs

* [Yegor Bugayenko](http://www.yegor256.com/)
* [Jean Rene](https://jeanrenesite.wordpress.com/)
* [8th Light - Blog of Robert C. Martin and others](https://8thlight.com/cleancode/uncle-bob/)

### Videos

* [Clean Code Episode 1](https://cleancoders.com/video-details/clean-code-episode-1)
* [Uncle Bob videos](https://cleancoders.com/videos)
* [More Uncle Bob videos](https://www.youtube.com/results?search_query=uncle+bob)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://petozoltan.gitbook.io/clearcode/clean-code/clean-code-links.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
