{
    "product": {
        "slug": "refactoring",
        "name": "Refactoring: Improving the Design of Existing Code",
        "kind": "book",
        "website": "https://martinfowler.com/books/refactoring.html",
        "page": "https://listme.name/books/refactoring",
        "tagline": "Martin Fowler's catalog of small, safe changes to improve code design",
        "summary": "Refactoring: Improving the Design of Existing Code is a book by Martin Fowler with Kent Beck, and its second edition was published in 2018. It presents refactoring as small behavior-preserving changes and catalogs around seventy of them. The first edition came out in 1999.",
        "author": "Martin Fowler with Kent Beck",
        "formats": [
            "print"
        ],
        "pricing": "paid",
        "price_note": "Print edition sold by booksellers; price varies by seller",
        "free_to_use": false,
        "open_source": false,
        "strengths": [
            "Catalog of around seventy refactorings",
            "Explains code smells and the role of testing",
            "Small, behavior-preserving steps"
        ],
        "limits": [
            "Focused on improving existing code, not new systems",
            "Dense for readers who have not refactored before"
        ],
        "checked": "2026-10-10",
        "connected_to_publisher": false,
        "cover": "https://listme.name/assets/covers/refactoring.webp",
        "overview": "Fowler presents refactoring as a controlled technique for improving the design of existing code, applying small behavior-preserving changes that add up to a large effect. The book opens with a worked example, then covers the process, the code smells that suggest refactoring and the role of testing. Most of its length is a catalog of around seventy refactorings, each with its motivation and mechanics.\n\nThe second edition, published in 2018, is the edition the author's site describes in detail, and it lists the changes from the first edition. The book suits working developers who maintain existing code, and it pairs well with The Pragmatic Programmer, which covers the wider craft of software development.",
        "highlights": [
            "Catalog of refactorings",
            "Code smells",
            "Testing and refactoring",
            "Second edition, 2018"
        ],
        "json": "https://listme.name/api/v1/products/refactoring.json"
    },
    "rankings": [
        {
            "list": "programming-books",
            "name": "Programming books",
            "page": "https://listme.name/best/programming-books",
            "rank": 9,
            "of": 11,
            "score": 86.5,
            "verdict": "A catalog of around seventy small, behavior-preserving refactorings, with a clear process and advice on testing. It is about improving existing code, so it complements The Pragmatic Programmer rather than replacing it.",
            "best_for": "Improving the design of existing code"
        }
    ],
    "alternatives": [
        {
            "slug": "designing-data-intensive-applications",
            "name": "Designing Data-Intensive Applications",
            "score": 94,
            "page": "https://listme.name/books/designing-data-intensive-applications"
        },
        {
            "slug": "the-pragmatic-programmer",
            "name": "The Pragmatic Programmer, 20th Anniversary Edition",
            "score": 92.5,
            "page": "https://listme.name/books/the-pragmatic-programmer"
        },
        {
            "slug": "sicp",
            "name": "Structure and Interpretation of Computer Programs",
            "score": 91,
            "page": "https://listme.name/books/sicp"
        },
        {
            "slug": "crafting-interpreters",
            "name": "Crafting Interpreters",
            "score": 90.5,
            "page": "https://listme.name/books/crafting-interpreters"
        },
        {
            "slug": "eloquent-javascript",
            "name": "Eloquent JavaScript, 4th Edition",
            "score": 89.5,
            "page": "https://listme.name/books/eloquent-javascript"
        },
        {
            "slug": "software-engineering-at-google",
            "name": "Software Engineering at Google",
            "score": 89,
            "page": "https://listme.name/books/software-engineering-at-google"
        },
        {
            "slug": "fluent-python",
            "name": "Fluent Python",
            "score": 88.5,
            "page": "https://listme.name/books/fluent-python"
        },
        {
            "slug": "rust-programming-language",
            "name": "The Rust Programming Language",
            "score": 88,
            "page": "https://listme.name/books/rust-programming-language"
        },
        {
            "slug": "think-python",
            "name": "Think Python, 3rd Edition",
            "score": 83.5,
            "page": "https://listme.name/books/think-python"
        },
        {
            "slug": "automate-the-boring-stuff",
            "name": "Automate the Boring Stuff with Python, 3rd Edition",
            "score": 80.5,
            "page": "https://listme.name/books/automate-the-boring-stuff"
        }
    ],
    "links": {
        "page": "https://listme.name/books/refactoring",
        "markdown": "https://listme.name/books/refactoring.md",
        "badge": "https://listme.name/badge/refactoring.svg",
        "alternatives_page": "https://listme.name/alternatives/refactoring",
        "alternatives_json": "https://listme.name/api/v1/alternatives/refactoring.json"
    },
    "source": "https://listme.name",
    "license": "Free to read and cite with attribution to listme.name.",
    "docs": "https://listme.name/developers"
}