Robert Cecil Martin (born 5 December 1952), colloquially called "Uncle Bob", is an American software engineer, instructor, and author. He is most recognized for promoting many software design principles and for being an author and signatory of the influential Agile Manifesto.
Martin has authored many books and magazine articles. He was the editor-in-chief of C++ Report magazine and served as the first chairman of the Agile Alliance.
Martin joined the software industry at age 17 and is self-taught.
Professional work In 1991, Martin founded Object Mentor, now defunct, which provided instructor-led training on the extreme programming methodology. , he operated Uncle Bob Consulting, which provides consulting and training services. He serves as Master Craftsman / Mentor at Clean Coders, a company run by his son Micah Martin, and produces training videos.
In a 2024 interview Martin stated that he is programming primarily with Clojure.
Software principles advocacy
Martin is a proponent of software craftsmanship, agile software development, and test-driven development.
He is credited with introducing the collection of object-oriented programming (OOP) design principles that came to be known as SOLID.Martin, Robert C. (2000) "Design Principles and Design Patterns"(PDF). objectmentor.com. Archived from the original on 2015-09-06
Publications 1995. Designing Object-Oriented C++ Applications Using the Booch Method. Prentice Hall. . 2000. More C++ Gems. Cambridge University Press. . 2001. Extreme Programming in Practice. Addison-Wesley. . 2002. Agile Software Development, Principles, Patterns, and Practices. Pearson. . 2003. UML for Java Programmers. Prentice Hall. . 2006. Agile Principles, Patterns, And Practices in C#. Pearson. . 2009. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. . 2011. The Clean Coder: A Code Of Conduct For Professional Programmers. Prentice Hall. . 2017. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall. . 2019. Clean Agile: Back to Basics. Prentice Hall. . 2021. Clean Craftsmanship: Disciplines, Standards, and Ethics. Addison-Wesley Professional. 2023. Functional Design: Principles, Patterns, and Practices. Addison-Wesley 2024. We, Programmers: A Chronicle of Coders from Ada to AI. Addison-Wesley Professional.
Guests Notable guests of his video channel include Grady Booch and Ward Cunningham.
Clean Code
One term that is connected with Robert Martin is "Clean Code". It is the name of a book that he wrote, a firm that he owns, a class that he teaches, and a software paradigm that he supports. The software paradigm involves SOLID, Test Driven Development, Keep It Simple Stupid, Structured Programming, Object Oriented Programming, and certain Design Patterns.
Short functions A core teaching from Clean Code reads "Functions should do one thing. They should do it well. They should only do it."p. 35 in Robert C. Martin, Clean Code, Pearson 2009. Martin tells how impressed he was by a program by Kent Beck: "Every function [..] was just two, or three, or four lines long. Each was transparently obvious. Each told a story. And each led you to the next in a compelling order. That's how short your functions should be."Clean Code, p.34
John Ousterhout disagrees with this advice: "once a function gets down to a few dozen lines, further reductions in size are unlikely to have much impact on readability. [..] More functions means more interfaces to document and learn. If functions are made too small, they lose their independence [..]"John Ousterhout, A Philosophy of Software Design. Yaknyam Press, Palo Alto 2018, 2nd edition 2022. For Ousterhout, functions and other modules should be "deep", but have a small interface. Ousterhout also disagreed with Martin's advice against code comments, and for test-driven development. Martin and Ousterhout discussed these points of disagreement and clarified their views in a long dialogue.
References