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 Object-Oriented Analysis and Design with Applications

    Object-Oriented Analysis and Design with Applications

    Grady Booch · 1990

    Object-Oriented Design with Applications has long been the essential reference to object-oriented technology, which, in turn, has evolved to join the mainstream of industrial-strength software development. In this third edition--the first revisi

    Software EngineeringProgrammingComputer Science
    Open LibraryAmazon
    Stats for nerds
    7recommend
    13mentions
    12people
    2012–2025years
    62% recommend31% neutral8% critical

    Mentions per year

    20122014201620182020202220242025

    What Hacker News says

    1. KerrickMar 2025
      Read books. Like, a lot of them.

      Start with Make It Stick (Brown et al.). Apply what this book teaches you to every one afterwards.

      Next, read and work through Exercises for Programmers (Hogan) and A Common Sense Guide to Data Structures and Algorithms (Wengrow).

      After you finish those two, read The Missing README (Riccomini et al.) and Extreme Programming Explained (Beck et al.). These two books provide very different viewpoints into the stuff that isn’t coding in a programming job.

      Assuming you’re using an OO language, follow that up with Object-Oriented Analysis and Design with Applications (Booch et al.) and Object Thinking. They contrast each other quite a bit; having both perspectives is handy.

      Once you’re through all those, I recommend Tidy First (Beck), Implementation Patterns (Beck), and Test-Driven Development By Example (Beck). These three books of his provide an incredibly accessible view into better ways to code.

      If you’re anything like me you get bored reading one book for too long. I’ve found that having a second book going that I can switch to is great for that. A parallel track with The Pattern On the Stone (Hillis), The Pragmatic Programmer (Thomas & Hunt), The Mythical Man-Month (Brooks), and How Computers Really Work (Justice) provides a reprieve and some technical and cultural context.

      thread
    2. KerrickFeb 2025
      We have a disagreement about the core of OOP. In English, a simple sentence like "The cat eats the rat" can be broken down as follows:

      - Cat is the subject noun

      - Eats is the verb

      - Rat is the object noun

      In object-oriented programming, the subject is most often the programmer, the program, the computer, the user agent, or the user. The object is... the object. The verb is the method.

      So, imagine the sentence "the customer canceled the order."

      - Customer is the subject noun

      - Canceled is the verb

      - Order is the object noun

      In OOP style you do not express this as customer.cancel(order) even though that reads aloud left-to-right similarly to English. Instead, you orient the expression around the object. The order is the object noun, and is what is being canceled. Thus, order.cancel(). The subject noun is left implicit, because it is redundant. Nearly every subject noun in a given method (or even system) will be the same programmer, program, computer, user agent, or user.

      For additional perspectives, I recommend reading Part I of "Object-Oriented Analysis and Design with Applications" (3rd edition) by Grady Booch et. al, and "Object Thinking" by David West.

      ---

      That said, I think you're right about the single responsibility principle in this example. A class with too many behaviors should usually be decomposed into multiple classes, with the responsibilities distributed appropriately. However, the object should not be left behavior-less. It must still be an anthropomorphized object that encapsulates whatever data it owns with behavior.

      thread
    3. mrkeenFeb 2025
      > I highly recommend reading the two books I recommended

      From "Object-Oriented Analysis and Design with Applications" (3rd edition) by Grady Booch:

      p.52: Separation of Concerns

        We do not make it a responsibility of the Heater abstraction to maintain a fixed temperature. Instead, we choose to give this responsibility to another object (e.g., the Heater Controller), which must collaborate with a temperature sensor and a heater to achieve this higher-level behavior. We call this behavior higher-level because it builds on the primitive semantics of temperature sensors and heaters and adds some new semantics, namely, hysteresis, which prevents the heater from being turned on and off too rapidly when the temperature is near boundary conditions. By deciding on this separation of responsibilities, we make each individual abstraction more cohesive.
      thread
    4. octo-andreroNov 2024
      Object-Oriented Analysis and Design with Applications by Grady Booch is my favorite one. It explains object oriented programming from the conceptual point of view. I would also suggest the design patterns book by the gang of fours by the same reason: this book teaches you to think in the object oriented way rather than describes object oriented languages features.
      thread
    5. computerdorkJan 2024
      Haven't read this, but based on looking through the table of contents (so take what I'm saying with a grain of salt), I agree with your choice. You mentioned that you've been programming for awhile, you might have heard of Grady Booch and "Object-Oriented Analysis and Design with Applications." Object oriented techniques has fallen a little out of fashion now, which may be part of the reason why this book isn't as popular, but it was big around 20 years ago. It also discusses on the many topics of your choice: - Complexity, what it is and how to manage it - Encapsulation (Information Hiding). - Interfaces - contracts for your encapsulated code - Abstraction

      And am certain that Grady Booch's book was itself mostly based on older material.

      I also really like any really good book on doing requirements (they all have 80% of the same info). Getting the true needs of all your stakeholders (your users, the business people, the devs themselves, and the technical needs of the system) is probably the step that is done the poorest in most organizations, and the one that could save project the most time and money if done well.

      thread
    6. intrasightSep 2022
      Object-Oriented Analysis and Design with Applications

      Was a great source of design patterns when I first began to design business applications on top of relational databases.

      https://zjnu2017.github.io/OOAD/reading/Object.Oriented.Anal...

      thread

    Related

    Cover of Designing object-oriented C++ applications using the Booch method
    2013–2026

    Designing object-oriented C++ applications using the Booch method

    Robert C. Martin
    3 recommend · 7
    Cover of Design Patterns. Elements of Reusable Object-oriented Software
    2013–2024

    Design Patterns. Elements of Reusable Object-oriented Software

    Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
    4 recommend · 9
    Cover of Component software
    2013–2026

    Component software

    Clemens Szyperski
    3 recommend · 30
    Cover of Object-oriented software construction
    2010–2026

    Object-oriented software construction

    Bertrand Meyer
    22 recommend · 53
    Cover of Implementation patterns
    2010–2025

    Implementation patterns

    Kent Beck
    6 recommend · 7
    Cover of Object thinking
    2014–2026

    Object thinking

    West, David
    12 recommend · 27
    Practical Object-Oriented DesignSandi Metz
    2012–2026

    Practical Object-Oriented Design

    Sandi Metz
    14 recommend · 17
    Cover of Practical Object Oriented Design In Ruby
    2012–2025

    Practical Object Oriented Design In Ruby

    Sandi Metz
    46 recommend · 72