Seeing that Uncle Bob is making a new version of Clean Code I decided to try and find this article about the original.

  • realharo@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    3 months ago

    Why is it a void method? This only tells me that some state is mutated somewhere, but the effect is neither visible nor documented.

    I would expect a function called “calculate” to just return a number and not have any side effects.

    • dandi8@fedia.io
      link
      fedilink
      arrow-up
      0
      ·
      3 months ago

      You’re nitpicking.

      As it happens, it’s just an example to illustrate specifically the “extract to method” issues the author had.

      Of course, in a real world scenario we want to limit mutating state, so it’s likely this method would return a Commission list, which would then be used by a Use Case class which persists it.

      I’m fairly sure the advice about limiting mutating state is also in the book, though.

      At the same time, you’re likely going to have a void somewhere, because some use cases are only about mutatimg something (e.g. changing something in the database).