• LastoftheDinosaurs@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    Thanks, that was a good read. Can you explain what you meant by “feature flag / version system”? Is that like different branches in git?

    • Delta@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      Feature Flags is a concept that helps to enable or disable a feature on an app. Example you would want to roll out a new button on app for a certain set of users, A naive and simplified implementation would look like something below

      flags = server.getFlags() // Fetch/Compute feature flags
      
      if (flags.FeatureA == true) {
      // show button
      }
      
      • Deely@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        Hm, I still not sure about this article lesson.

        So, main issue is that users of old version can use new feature, but they should not? On a desktop app? But why they sould not be able to do it in the first place?

        I mean idea is good, but situation described in article looks like completely fictitious or incomplete…

        • ishanpage@programming.devOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          1 year ago

          The scenario is not ficticious. It’s taken straight from my first job, but I had to leave out specific details. The application being developed had something to do with DRM, so that might explain the weird requirements.

          The lesson is that sometimes business will require you to force users to update their version, and/or enable specific features for specific subsets of users. So you should have such a mechanism in place before it is required, otherwise you will end up doing hacky things like breaking the server to do what needs to be done.

          Systems such as these are actually fairly common in enterprise, but since it was my first job, I had not planned ahead for this because I had no idea.