• @[email protected]
    link
    fedilink
    991 month ago

    I tend to add is to booleans toreally differentiate between a method name and a status.

    def open_file_dialog(self):
        self.dialog_file_is_open = True
        pass
    

    That way, it’s easier for my dumb brain to spot which is which at a glance.

        • @sus
          link
          2
          edit-2
          1 month ago

          that works for 2 word names eg is_open or is_file, but in this case is_dialog_file_open is structured like a question, while dialog_file_is_open is structured like a statement

          • @[email protected]
            link
            fedilink
            81 month ago

            Doesn’t matter, the point is that, if it starts with “is” then you automatically know it’s a boolean.

          • redfellow
            link
            fedilink
            31 month ago

            It still works. is_this_thing_some_thingy. Is is just a prefix for if the suffix returns true/false.

    • 4wd
      link
      181 month ago

      In Elixir, we mark statuses by using a question mark at the end of the variable name. Something like this:

      authorized? = user |> get_something() |> ensure_authorized?()
      

      I like this better than the is_ prefix

      • @alexdeathway
        link
        9
        edit-2
        1 month ago

        does ‘?’ have type definition in elixir or this is generally agreed design pattern?

        • @[email protected]
          link
          fedilink
          English
          81 month ago

          If it’s like Lisp, then ? is just part of the symbol and doesn’t have any special syntatic meaning. In different Lisps it’s also convention to end predicate names with a ? or with P (p for predicate)

        • @[email protected]
          link
          fedilink
          21 month ago

          We do this in Ruby all the time, we just prefer methods over variables, usually.

          def authorized?
            current_user&.authorized?
          end
          
          • @[email protected]
            link
            fedilink
            21 month ago

            I’m a principal backend engineer routinely writing Ruby for my day job, so I’m familiar, lol. But you can’t do it for local variables and that just sucks. Definitely a +1 for Elixir.