Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Agile Software Development, Principles, Patterns, and Practices

    Agile Software Development, Principles, Patterns, and Practices

    Robert C. Martin · 2002

    Section 1 Agile development Section 2 Agile design Section 3 The payroll case study Section 4 Packaging the payroll system Section 5 The weather station case study Section 6 The ETS case study

    Software EngineeringProgramming
    Open LibraryAmazon
    Stats for nerds
    7recommend
    10mentions
    10people
    2008–2023years
    70% recommend20% neutral10% critical

    Mentions per year

    200820102012201420162018202020222023

    What Hacker News says

    1. jansimonekDec 2023
      I think the problem is not OOP - the author approached the problem bottom-up, they were trying to foresee usage for code they were writing. The resulting code is a bit of a mess, not OOP (there’s even instanceof) Instead we should start with the usage, with the code creating the value and then filling in the details. In this problem, if we choose to simulate the circuit I would start with the simulator code, introducing abstractions for components only if it would help the simulator.

      I liked the demonstration of this approach in Chapter 6 of Robert C. Martin’s Agile Software Development: Principles, Patterns and Practices. It’s available online here:

      https://people.scs.carleton.ca/~jeanpier//Fall2021/Topic%201...

      thread
    2. CryptonicSep 2021
      Yes and I like inheritance being removed in Rust too.

      I too think thight coupling is a core problem of many programs, not only introduced by inheritance, but also multiple mutual references, for example in global state based C architectures (most I have seen, the Linux Kernel is better in this regard, CIs used very responsible there).

      Dependency Inversion (by interface reference or generics or any other technique) is the one pattern that is missing in the Gang of 4 Book and should be the most remembered, not Singleton (the tightest coupling one can introduce in his OOP system is by introducing Singletons).

      With loose coupling you can run the very same application with a few switched out dependencies on your bare metal embedded device with SPI driven display, on PC with minifb, as a websevice and with mocks in unit tests.

      I think it's preferable to always aim for loose coupling to enable testing, easier developing and later change.

      In that respective "Agile Software Development, Principles, Patterns, and Practices" is a much better old school programming book than "Design Patterns" imao (given the latter one is a decade older and the Gang could not have known)

      Languages that make thight coupling harder definitely teach a good lesson to learners, even if they have then go back to their day job in another language. Thanks for pointing that out.

      thread
    3. __bearMountainJun 2017
      Agile Software Development, Principles, Patterns, and Practices - by Uncle Bob Martin

      One of the most influential programming books I've ever read. The code is in Java, but it's east to follow even for a non-Java developer, and the truths are universal. Learn the most fundamental design and encapsulation patterns. Uncle Bob Martin is a legend. This book has probably made me tens of thousands of dollars.

      https://www.amazon.com/Software-Development-Principles-Patte...

      thread
    4. Ace17Jun 2016
      Robert C Martin - Agile Software Development: Principles, Patterns, and Practices There's now an updated version of this book for C# but the first one deals with C++. This book explains, in details, how to architecture your application around use cases.

      "Game Coding Complete 5" also talks about moderately large scale C++ high-level design. Of course, it's focused on games, but unlike other game programming books, it deals with things like dependency inversion, abstracting away the framework, data-driven architectures, etc.

      It's surprisingly hard to find books talking about high-level software architecture ; Amazon is flooded with technology-specific books (things like "Learn <insert framework name> in 7 days", whose lifetime is so short, you wonder, why write a book about this in the first place).

      thread
    5. kasey_junkNov 2013
      I first encountered him with this book: Designing object-oriented C++ applications using the Booch method

      and really liked: Agile Software Development: Principles, Patterns and Practices.

      I didn't think Clean Code was worth it though.

      thread
    6. jeffcoatOct 2010
      Known to whom, exactly?

      I know him only through his books; I've read _Clean Code_ and _Agile Software Development: Principles, Patterns, and Practices_.

      They're both excellent. I'd happily recommend either one to someone wanting to improve their object-oriented design skills.

      thread

    Related

    Cover of Agile Software Development Ecosystems
    2008–2012

    Agile Software Development Ecosystems

    Jim Highsmith
    2 recommend · 2
    Cover of Agile Project Management with Scrum
    2008–2023

    Agile Project Management with Scrum

    Ken Schwaber
    2 recommend · 4
    Cover of Clean Agile
    2020–2025

    Clean Agile

    Robert C. Martin
    3 recommend · 8
    Cover of The art of agile development
    2008–2025

    The art of agile development

    James Shore
    13 recommend · 33
    Cover of Clean Code
    2008–2026

    Clean Code

    Robert C. Martin
    298 recommend · 951
    Cover of Agile web development with rails
    2007–2025

    Agile web development with rails

    Dave Thomas
    67 recommend · 137
    Cover of Agile software development
    2012–2023

    Agile software development

    Alistair Cockburn
    4 recommend · 9
    Cover of Scrum
    2014–2021

    Scrum

    Jeff Sutherland
    6 recommend · 8