Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Would this pass code review where you are?

Would this pass code review where you are?

Scheduled Pinned Locked Moved The Lounge
csharpcomquestiondiscussioncode-review
46 Posts 34 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • OriginalGriffO OriginalGriff

    I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

    getSeries()
    {

    if (flag == pass) goto ep;

    for i1 ...
    ...
    for i2 ...
    ...
    for i3 ...
    ...
    for i4 ...
    .
    .
    .
    for ...
    {
    ...
    return;
    ep;
    }
    }
    }
    }//last for

    }// end of getSeries()

    Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

    Sander RosselS Offline
    Sander RosselS Offline
    Sander Rossel
    wrote on last edited by
    #15

    It's this new cool style of programming named For-Oriented Programming, or FOP for short. I think I'll try it out on my next project :thumbsup:

    Best, Sander Azure Serverless Succinctly Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript

    R 1 Reply Last reply
    0
    • OriginalGriffO OriginalGriff

      I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

      getSeries()
      {

      if (flag == pass) goto ep;

      for i1 ...
      ...
      for i2 ...
      ...
      for i3 ...
      ...
      for i4 ...
      .
      .
      .
      for ...
      {
      ...
      return;
      ep;
      }
      }
      }
      }//last for

      }// end of getSeries()

      Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

      J Offline
      J Offline
      jsc42
      wrote on last edited by
      #16

      Would be a good candidate for The Weird And The Wonderful forum, rather than the Lounge. I'm surprised it compiled. Shouldn't 'ep;' be 'ep:;'? I don't know since it is 43 years since I last wrote a goto statement (excluding for old languages that needed 'ON ERROR GOTO ..', and that was as recent as the late 1990s).

      C 1 Reply Last reply
      0
      • J jsc42

        Would be a good candidate for The Weird And The Wonderful forum, rather than the Lounge. I'm surprised it compiled. Shouldn't 'ep;' be 'ep:;'? I don't know since it is 43 years since I last wrote a goto statement (excluding for old languages that needed 'ON ERROR GOTO ..', and that was as recent as the late 1990s).

        C Offline
        C Offline
        CPallini
        wrote on last edited by
        #17

        Quote:

        I'm surprised it compiled.

        I strongly doubt it compiles.

        1 Reply Last reply
        0
        • OriginalGriffO OriginalGriff

          I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

          getSeries()
          {

          if (flag == pass) goto ep;

          for i1 ...
          ...
          for i2 ...
          ...
          for i3 ...
          ...
          for i4 ...
          .
          .
          .
          for ...
          {
          ...
          return;
          ep;
          }
          }
          }
          }//last for

          }// end of getSeries()

          Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

          F Offline
          F Offline
          Fueled By Decaff
          wrote on last edited by
          #18

          First thoughts: It does not look very performant with 4 nested for loops, but it might be necessary, so need more information before commenting any more. Blink twice thoughts: Nuke that goto. Nuke it from space... This should not compile in C#. Wouldn't that have undefined behaviour in C, as the loop variables would not get initialised? It looks like the code that the goto label refers to is only executed from the goto, so perhaps the goto could be replaced by moving that code into the if statement. Good luck untangling this code.

          1 Reply Last reply
          0
          • OriginalGriffO OriginalGriff

            I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

            getSeries()
            {

            if (flag == pass) goto ep;

            for i1 ...
            ...
            for i2 ...
            ...
            for i3 ...
            ...
            for i4 ...
            .
            .
            .
            for ...
            {
            ...
            return;
            ep;
            }
            }
            }
            }//last for

            }// end of getSeries()

            Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

            D Offline
            D Offline
            DerekT P
            wrote on last edited by
            #19

            Well, it shows a good deal of promise. The author has very rigorously and helpfully identified (via comments) both the end of the method, and the end of the last for loop. Clearly s/he was in a great hurry, or maybe just wilfully lazy, as there is no equivalent commenting on the end of the inner loops. A smack on the wrist needed there, I think. Succinct and meaningful variable names used. i_n_ suggests a background in early BASIC, but that's fine; at least we know which level each variable relates to. There's a flag helpfully named flag, and a condition sensibly named pass. Well thought through. My criticism would be that ep is obviously the "end procedure" goto target, but to perpetuate the camel case standard used in the method name, it should be eP. Indentation is good and consistent. Not sure on the inline if but that may conform to local standards. Otherwise? meh. :|

            1 Reply Last reply
            0
            • OriginalGriffO OriginalGriff

              I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

              getSeries()
              {

              if (flag == pass) goto ep;

              for i1 ...
              ...
              for i2 ...
              ...
              for i3 ...
              ...
              for i4 ...
              .
              .
              .
              for ...
              {
              ...
              return;
              ep;
              }
              }
              }
              }//last for

              }// end of getSeries()

              Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

              J Offline
              J Offline
              Jacquers
              wrote on last edited by
              #20

              Without context on what it's doing and trying to solve it's a bit difficult to say, but it looks klunky and if I had to review it I'd probably fail it.

              1 Reply Last reply
              0
              • OriginalGriffO OriginalGriff

                Apparently so, in C++. In C# (his target language) no - the label is out of scope of the goto. It was apparently written in 2006 ... and in my opinion you shouldn't try to perpetuate code crimes into new languages. To be honest, any coder who thinks nesting loops 5+ deep is a good idea probably needs a lesson in exponential growth ... :laugh:

                "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                F Offline
                F Offline
                Fueled By Decaff
                wrote on last edited by
                #21

                Ooh, I thought C++ initialised variables to 0 by default - apparently not. So this is undefined behaviour if any of the loop variables are used after the goto is executed. Fnu

                1 Reply Last reply
                0
                • OriginalGriffO OriginalGriff

                  I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                  getSeries()
                  {

                  if (flag == pass) goto ep;

                  for i1 ...
                  ...
                  for i2 ...
                  ...
                  for i3 ...
                  ...
                  for i4 ...
                  .
                  .
                  .
                  for ...
                  {
                  ...
                  return;
                  ep;
                  }
                  }
                  }
                  }//last for

                  }// end of getSeries()

                  Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                  "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                  P Offline
                  P Offline
                  Pete OHanlon
                  wrote on last edited by
                  #22

                  Without context, it's hard to say what's going on but a thought occurs to me here; if there is no condition before that return statement, each loop level is going to execute only once so the whole logic could be flattened.

                  Advanced TypeScript Programming Projects

                  T 1 Reply Last reply
                  0
                  • P Pete OHanlon

                    Without context, it's hard to say what's going on but a thought occurs to me here; if there is no condition before that return statement, each loop level is going to execute only once so the whole logic could be flattened.

                    Advanced TypeScript Programming Projects

                    T Offline
                    T Offline
                    theoldfool
                    wrote on last edited by
                    #23

                    who gave you permission to post my code on here? I thought the red printing at the top forbid that. edit: oops, sorry meant to reply to that other fellow.

                    If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.

                    1 Reply Last reply
                    0
                    • N Niemand25

                      Not sure what it does, especially goto part. But reminds of person who skipped recursion class...

                      realJSOPR Offline
                      realJSOPR Offline
                      realJSOP
                      wrote on last edited by
                      #24

                      Without knowing the range of the for loops, and how many there are, I wouldn't recommend recursion, because it might overflow the stack.

                      ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                      -----
                      You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                      -----
                      When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                      F 1 Reply Last reply
                      0
                      • OriginalGriffO OriginalGriff

                        I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                        getSeries()
                        {

                        if (flag == pass) goto ep;

                        for i1 ...
                        ...
                        for i2 ...
                        ...
                        for i3 ...
                        ...
                        for i4 ...
                        .
                        .
                        .
                        for ...
                        {
                        ...
                        return;
                        ep;
                        }
                        }
                        }
                        }//last for

                        }// end of getSeries()

                        Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                        P Offline
                        P Offline
                        PIEBALDconsult
                        wrote on last edited by
                        #25

                        OriginalGriff wrote:

                        code review where you are

                        On my current team, I'm the only one who writes "real code" -- and I definitely would not have written that. We've been required to do code reviews though... so we pretend to do code reviews of our SSIS packages. :confused:

                        1 Reply Last reply
                        0
                        • OriginalGriffO OriginalGriff

                          I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                          getSeries()
                          {

                          if (flag == pass) goto ep;

                          for i1 ...
                          ...
                          for i2 ...
                          ...
                          for i3 ...
                          ...
                          for i4 ...
                          .
                          .
                          .
                          for ...
                          {
                          ...
                          return;
                          ep;
                          }
                          }
                          }
                          }//last for

                          }// end of getSeries()

                          Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                          J Offline
                          J Offline
                          Jin Vincent Necesario
                          wrote on last edited by
                          #26

                          Maybe a self code review or the code review was sent to a subordinate/junior guy or a force approval. :)

                          Jim Rohn: "Don't wish it was easier, wish you were better". Subscribe to my blog @ https://jinnecesario.com/.

                          1 Reply Last reply
                          0
                          • OriginalGriffO OriginalGriff

                            I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                            getSeries()
                            {

                            if (flag == pass) goto ep;

                            for i1 ...
                            ...
                            for i2 ...
                            ...
                            for i3 ...
                            ...
                            for i4 ...
                            .
                            .
                            .
                            for ...
                            {
                            ...
                            return;
                            ep;
                            }
                            }
                            }
                            }//last for

                            }// end of getSeries()

                            Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                            "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                            Mike HankeyM Offline
                            Mike HankeyM Offline
                            Mike Hankey
                            wrote on last edited by
                            #27

                            Isn't that the guy in QA that asked where to stick the goto? But I'm sure that's not where they told him to stick it.

                            I'm not sure how many cookies it makes to be happy, but so far it's not 27. JaxCoder.com

                            OriginalGriffO 1 Reply Last reply
                            0
                            • Mike HankeyM Mike Hankey

                              Isn't that the guy in QA that asked where to stick the goto? But I'm sure that's not where they told him to stick it.

                              I'm not sure how many cookies it makes to be happy, but so far it's not 27. JaxCoder.com

                              OriginalGriffO Offline
                              OriginalGriffO Offline
                              OriginalGriff
                              wrote on last edited by
                              #28

                              Yes - I'm trying to get him to see that I'm not the only one who looks at theat and sees Assembler code written in C compiled by a C++ compiler and never going to work in C# ... He thinks it's perfectly good code because it has worked since 2006. We all know that just because you can do something, it doesn't mean you should. I feel sorry for anyone who has to work for / with him - that company has to be the kiss of death for your career!

                              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                              M 1 Reply Last reply
                              0
                              • 5 5teveH

                                You need to tell the author he's in the wrong job. He needs to find something where logic and common sense isn't required. Management, maybe? ;)

                                R Offline
                                R Offline
                                raddevus
                                wrote on last edited by
                                #29

                                5teveH wrote:

                                You need to tell the author he's in the wrong job.

                                :thumbsup::thumbsup::thumbsup: :laugh:

                                1 Reply Last reply
                                0
                                • Sander RosselS Sander Rossel

                                  It's this new cool style of programming named For-Oriented Programming, or FOP for short. I think I'll try it out on my next project :thumbsup:

                                  Best, Sander Azure Serverless Succinctly Migrating Applications to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript

                                  R Offline
                                  R Offline
                                  raddevus
                                  wrote on last edited by
                                  #30

                                  Sander Rossel wrote:

                                  For-Oriented Programming, or FOP

                                  :laugh:

                                  J 1 Reply Last reply
                                  0
                                  • OriginalGriffO OriginalGriff

                                    Yes - I'm trying to get him to see that I'm not the only one who looks at theat and sees Assembler code written in C compiled by a C++ compiler and never going to work in C# ... He thinks it's perfectly good code because it has worked since 2006. We all know that just because you can do something, it doesn't mean you should. I feel sorry for anyone who has to work for / with him - that company has to be the kiss of death for your career!

                                    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                    M Offline
                                    M Offline
                                    MarkTJohnson
                                    wrote on last edited by
                                    #31

                                    OriginalGriff wrote:

                                    We all know that just because you can do something, it doesn't mean you should.

                                    Make him watch Jurrasic Park. Again. Like Malcom McDowell in Clockwork Orange.

                                    I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.

                                    1 Reply Last reply
                                    0
                                    • OriginalGriffO OriginalGriff

                                      I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                                      getSeries()
                                      {

                                      if (flag == pass) goto ep;

                                      for i1 ...
                                      ...
                                      for i2 ...
                                      ...
                                      for i3 ...
                                      ...
                                      for i4 ...
                                      .
                                      .
                                      .
                                      for ...
                                      {
                                      ...
                                      return;
                                      ep;
                                      }
                                      }
                                      }
                                      }//last for

                                      }// end of getSeries()

                                      Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                      G Offline
                                      G Offline
                                      Gary R Wheeler
                                      wrote on last edited by
                                      #32

                                      We don't do code reviews where I work. Go ahead, keep throwing up; I'll wait. 1. I don't like the goto. I know some folks like them for error exit handling when you're not using exceptions, but I'm not one of them. 2. If the ep symbol is intended to be a label, it's certainly poorly placed. 3. There's nothing inherently wrong in the numerous nested for loops. It depends upon their purpose. 3.1. If the nested loops are simple indices in multi-dimensional data performing a simple task, it might be the most concise way to accomplish that task. Adding layers of abstraction to remove the nesting might complicate the logic unnecessarily, especially if that's the only reason for adding the layer. 3.2. If 3.1 is not the case, the loops are certainly a code smell since they imply accessing multiple levels of detail from a single scope. 3.3. The iteration values i1, i2, etc. are poorly named. 4. I also don't like the return embedded in the loops. I don't have a problem using break or continue to exit a loop early, but that keeps the range of the 'goto' to the body of the loop, making control flow analysis simpler.

                                      Software Zen: delete this;

                                      1 Reply Last reply
                                      0
                                      • OriginalGriffO OriginalGriff

                                        I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                                        getSeries()
                                        {

                                        if (flag == pass) goto ep;

                                        for i1 ...
                                        ...
                                        for i2 ...
                                        ...
                                        for i3 ...
                                        ...
                                        for i4 ...
                                        .
                                        .
                                        .
                                        for ...
                                        {
                                        ...
                                        return;
                                        ep;
                                        }
                                        }
                                        }
                                        }//last for

                                        }// end of getSeries()

                                        Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                                        "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                        L Offline
                                        L Offline
                                        Lost User
                                        wrote on last edited by
                                        #33

                                        OriginalGriff wrote:

                                        Your thoughts

                                        The label 'ep' probably means exit point. The only thing I can think of is that the author is following the single-entry single-exit[^] code standard. I've worked on teams that tried to adhere to this policy. I've had some of my code rejected by reviewers with the reason of: "Refactor to single exit". That code is in your operating system. Best Wishes, -David Delaune

                                        1 Reply Last reply
                                        0
                                        • OriginalGriffO OriginalGriff

                                          I didn't write it, but ... the author thinks this is a good idea that should be allowed in C# code:

                                          getSeries()
                                          {

                                          if (flag == pass) goto ep;

                                          for i1 ...
                                          ...
                                          for i2 ...
                                          ...
                                          for i3 ...
                                          ...
                                          for i4 ...
                                          .
                                          .
                                          .
                                          for ...
                                          {
                                          ...
                                          return;
                                          ep;
                                          }
                                          }
                                          }
                                          }//last for

                                          }// end of getSeries()

                                          Me? I'm not a fan. Your thoughts - and remember this is the Lounge? :laugh:

                                          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                                          R Offline
                                          R Offline
                                          Rick York
                                          wrote on last edited by
                                          #34

                                          We don't have code reviews but I would have one with the group just to point out how horrendous that is.

                                          "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups