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 design heuristics

    Object-oriented design heuristics

    Arthur J. Riel · 1996

    Object-Oriented Design Heuristics offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design. The heuristics are not written as hard and fast rules; they are meant to serve as warning mechanisms which allow the flexibility of ignoring the heuristic as necessary. This tutorial-based approach, born out of the author's extensive experience developing software, teaching thousands of students, and critiquing designs in a variety of domains, allows you to apply the guidelines in a personalized manner. The heuristics cover important topics ranging from classes and objects (with emphasis on their relationships including association, uses, containment, and both single and multiple inheritance) to physical object-oriented design. You will gain an understanding of the synergy that exists between design heuristics and the popular concept of design patterns; heuristics can highlight a problem in one facet of a design while patterns can provide the solution. Programmers of all levels will find value in this book. The newcomer will discover a fast track to understanding the concepts of object-oriented programming. At the same time, experienced programmers seeking to strengthen their object-oriented development efforts will appreciate the insightful analysis.

    Software EngineeringProgramming
    Open LibraryAmazon
    Stats for nerds
    5recommend
    10mentions
    8people
    2010–2025years
    60% recommend40% neutral

    Mentions per year

    201020122014201620182020202220242025

    What Hacker News says

    1. specialistMay 2025
      > No inheritence.

      Yup. Prefer composition over inheritance.

      Such a hard sell during the heyday of OOAD. UML, Fusion, RUP, blahblahblah.

      Having previous experience with LISP, it just seemed obvious, barely worth mentioning. Definitely set me apart from my colleagues.

      FWIW: Our local design pattern study group tackled Arthur J. Riel's Object-Oriented Design Heuristics [1996] https://archive.org/details/objectorientedde0000riel https://www.amazon.com/Object-Oriented-Design-Heuristics-Art... Which might be the earliest published pushback against all that overwrought enterprisey ThoughtWorks-style brainrot.

      > No ... dependency injection

      Yes and: Mocks (mocking?) is a code stench. Just flip the ownership relationship(s). As Riel, and surely many others, have laboriously explained, to a mostly uncaring world.

      thread
    2. mbwghOct 2023
      In addition to 'A philosophy of Software Design', I would also recommend the less well known 'Object-Oriented Design Heuristics'.

      It came out at the same time as the GoF book, but I think it is still relevant today and similar in spirit to Ousterhout's book.

      thread
    3. keithnoizuMay 2019
      Possibly more abstract than what you are looking for but Object-Oriented Design Heuristics is a decent text.

      https://www.amazon.com/Object-Oriented-Design-Heuristics-Art...

      thread
    4. specialistApr 2016
      I will never use Java's Optional. I'm baffled why it even exists. Further, I remain unclear on the value (haha) of the @Nullable and @NotNull annotations. If it's not baked into the language, why bother?

      I've been using NullObject since (checking...) 1996. This is The Correct Answer.

      http://c2.com/cgi/wiki?NullObject

      I first read about NullObject here:

      Object-Oriented Design Heuristics http://amzn.to/1ND1YSU

      What'd be really neat is some mojo to remove the boilerplate of implementing NullObjects.

      thread
    5. kriroDec 2012
      How does the Smalltalk book compare to "Object-Oriented Software Construction" by Meyer? The latter is my goto OO book (in combination with "Object Oriented Design Heuristics" by Riel)
      thread
    6. briandollDec 2010
      Object-Oriented Design Heuristics: http://amzn.to/hMfVA6

      This is a fantastic book on OOP design principals and has lots of language-agnostic examples.

      thread

    Related

    Cover of Object-oriented software construction
    2010–2026

    Object-oriented software construction

    Bertrand Meyer
    22 recommend · 53
    Cover of A Philosophy of Software Design
    2018–2026

    A Philosophy of Software Design

    John K. Ousterhout
    163 recommend · 342
    Cover of Designing Data-Intensive Applications
    2014–2026

    Designing Data-Intensive Applications

    Martin Kleppmann
    457 recommend · 846
    Practical Object-Oriented DesignSandi Metz
    2012–2026

    Practical Object-Oriented Design

    Sandi Metz
    14 recommend · 17
    Cover of Design Patterns
    2007–2026

    Design Patterns

    Erich Gamma
    95 recommend · 491
    Cover of Object-oriented programming
    2012–2026

    Object-oriented programming

    Brad J. Cox
    4 recommend · 17
    Cover of Practical Object Oriented Design In Ruby
    2012–2025

    Practical Object Oriented Design In Ruby

    Sandi Metz
    46 recommend · 72
    Cover of The algorithm design manual
    2007–2026

    The algorithm design manual

    Steven S. Skiena
    195 recommend · 321