Awesome Programming Knowledge
  • Introduction
  • Writing Better Code
    • Books
      • Refactoring: Improving the Design of Existing Code
        • Extract Method
        • Quotes
          • CodeForHuman
          • Make Comment Superfluous
          • The Rule of Three
      • Clean code: A Handbook of Agile Software Craftsmanship
        • Meaningful name
        • Single Level of Abstraction
        • Small Functions
        • Avoid having BOOL Function Parameters
      • Working effectively with legacy code
        • Sprout Method
      • Code Complete
        • Minimizing Scope
        • Avoid variables with hidden meanings
        • Describe Motivations of Decisions
      • Structure and Interpretation of Computer Programs
        • Declarative and Imperative Knowledge
    • Articles
      • Two ways of constructing a software design
  • Design
    • Books
      • The Art of Unix Programming
        • The SPOT Rule
        • Rule of Clarity: Clarity is better than cleverness
      • Design Patterns
      • Agile Software Development, Principles, Patterns, and Practices
      • Patterns of Enterprise Application Architecture
      • Refactoring: Improving the Design of Existing Code
  • General
    • Books
      • The Pragmatic Programmer: From Journeyman to Master
        • Don't Repeat Yourself
      • Code Complete
      • Computer Systems: A Programmer's Perspective
  • Unit Test
    • Books
      • Test Driven Development: By Example
      • Working effectively with legacy code
  • Database
    • Books
      • Use The Index, Luke
    • Articles
      • Finding and Extracting SQLServer deadlock information using Extended Events
  • Troubleshooting
    • Debugging
      • First Chance Exception
      • Symbol Files
      • Visual Studio Debugging Tricks and Tips
        • Trace Point and Conditional Break Point
        • Remote Debugging
        • Postmortem Debugging of Dump Files
        • Use DotPeek as Symbol Server
        • Use Resharper to Generate Symbol Files
        • Learn Productivity Tips and Tricks for the Debugger in Visual Studio
        • 7 lesser known hacks for debugging in Visual Studio
        • View Threads and Tasks using the Parallel Stacks Window
        • How to navigate to source code of a 3rd party library using Resharper
        • Show Parameter Values in Call Stack Window
      • WinDbg
      • Windows Debugging and Troubleshooting
      • Mysteries of Memory Management Revealed,with Mark Russinovich
      • Malware Hunting with the Sysinternals Tools
    • Books
      • Advanced Windows Debugging
      • Advanced .NET Debugging
    • Tools
      • DotNet Decompilers
      • Fiddler
        • Configure Fiddler to Decrypt HTTPS Traffic
        • How to monitor web requests from localhost to localhost using Fiddler
      • WireShark
      • System Internals
        • Handle
        • ProcessMonitor
        • ProcessExp
        • RAMMap
      • PostMan
        • Postman AWS Signature Auth
      • Asmspy
  • CSharp
    • Books
      • Advanced .NET Debugging
      • CLR via C#
      • C# in Depth
    • Articles
      • Async/Await
        • There is no thread for Async I/O
        • Async/Await - Best Practices in Asynchronous Programming
      • Rethrow Exception
      • Different effects of bindingRedirect
      • About Messages and Message Queues
      • Directory.Build.props
      • Memory Limits in a .NET Process
      • Prefer Timespan
      • Document Outline View
  • Practical Git via GitExtensions
  • Misc
    • Books
    • Articles
      • Floating Point Accuracy
      • The Absolute Minimum about Unicode
      • Postfix/Prefix increment operator
      • How A Typo Screwed Up One Of History's Worst Video Games
  • UI/UX
    • Books
      • About Face: The Essentials of Interaction Design
  • Front End
    • Books
      • Stylin’ with CSS: A Designer’s Guide
    • Articles
      • Introduction to Basic CSS Selectors
      • How Browser Works
  • Productivity
    • Tools
      • Everything
      • ConEmu
      • Vim
      • Bash
        • Navigating Bash History with Ctrl+R
      • Customise Your Powershell
    • Books
      • Mastering Regular Expression
    • Text-Editing Keyboard Shortcuts
  • System
    • Windows Message Queue
    • Mysteries of Memory Management Revealed,with Mark Russinovich
Powered by GitBook
On this page

Was this helpful?

  1. Writing Better Code
  2. Books

Clean code: A Handbook of Agile Software Craftsmanship

PreviousThe Rule of ThreeNextMeaningful name

Last updated 6 years ago

Was this helpful?

From the Back Cover

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it. What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft. Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code. Readers will come away from this book understanding How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.