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. Why you shouldn't inherit someone else's code...

Why you shouldn't inherit someone else's code...

Scheduled Pinned Locked Moved The Lounge
csharpjavascriptlinqcomsysadmin
45 Posts 19 Posters 53 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.
  • L Lost User

    It could be worse in case of c++... I faced the situation when inherited from a class which implement a method "Sleep". For a lazy implementation while inheriting from that class I called Sleep in the assumption I'm calling the W32 Sleep. But instead of, it ended in something like this:

    for (i = 0; i < 5; i++)
    {
    ProcessMessages();
    ::Sleep(0.2 * cnMilliseconds);
    ProcessMessages();
    }

    I could kill that beast X|

    It does not solve my Problem, but it answers my question

    K Offline
    K Offline
    Kelly Herald
    wrote on last edited by
    #41

    I've come across C++ code where you would see several sleeps in a row just to "resolve" a timing issue.

    sleep(0);
    sleep(0);
    sleep(0);
    sleep(0);
    sleep(0);

    Of course after the code was properly debugged I was able to eliminate all of the sleep(0) lines.

    Kelly Herald Software Developer

    1 Reply Last reply
    0
    • A agolddog

      Did somebody also comment out code, then leave it to be checked into the repository? That's a sure sign too. yes, I deal with that on a daily basis. Them: "What if we ever change the repository? Then we lose all that history!" Me: "Who ******* cares? The application should support the business rules at this point in time. If those ever change, we need to understand how to make the application work differently, and write that code. Having this clutter around just makes the code less readable."

      C Offline
      C Offline
      charlieg
      wrote on last edited by
      #42

      happy to hear it's not just me. I'm okay with commenting out code and forgetting about it - we all do it from time to time. HOWEVER, having multiple levels of commented out code so that you can see the history (yet we're using svn...), yeah, that's either stupid or a bad habit.

      Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

      1 Reply Last reply
      0
      • Greg UtasG Greg Utas

        A brilliant idea, although the reaction was unsurprising. Having to suffer through this three times was cruel, but applying it to a two-stage project would be fair. If told up front that it would rankle them, it would probably temper the reaction.

        C Offline
        C Offline
        charlieg
        wrote on last edited by
        #43

        I agree - brilliant. I can tell you this - there may have been much disgust during the class, but a few years into working, and they are going to have their "aha!" moment.

        Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759

        1 Reply Last reply
        0
        • M Member 9167057

          I suppose that's kinda the point of the loop in the first place: To prevent the user from doing anything else in the meantime.

          D Offline
          D Offline
          Daniel Wilianto
          wrote on last edited by
          #44

          Yes but user should be still allowed to do stuffs such as clicking on menus or continue typing. Using async method gives user smooth experience. While using thread.sleep and window.doevents continuously wont be smooth, I believe.

          M 1 Reply Last reply
          0
          • D Daniel Wilianto

            Yes but user should be still allowed to do stuffs such as clicking on menus or continue typing. Using async method gives user smooth experience. While using thread.sleep and window.doevents continuously wont be smooth, I believe.

            M Offline
            M Offline
            Member 9167057
            wrote on last edited by
            #45

            For starters, I don't mean to defend the code. It's a clear code smell and should be restructured to be asynchronous proper. That said, it can be smooth depending on the interaction rate. No process in computing ever is smooth in reality, it's just granular on a fine-enough scale to make us, slow-reacting meatbags, think, it's smooth. In gaming, 60 FPS are, as a rule of thumb, pretty enough to make things feel smooth so if the application processes messages 60 times per second, that would feel smooth despite doing busy-wait-nonsense.

            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