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. Does not Developers get confused if there are too many global variables?

Does not Developers get confused if there are too many global variables?

Scheduled Pinned Locked Moved The Lounge
architecturequestion
67 Posts 29 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.
  • K Keith Barrow

    I was overused once, it did cause discomfort, but I was never confused!

    “Education is not the piling on of learning, information, data, facts, skills, or abilities - that's training or instruction - but is rather making visible what is hidden as a seed”
    “One of the greatest problems of our time is that many are schooled but few are educated”

    Sir Thomas More (1478 – 1535)

    M Offline
    M Offline
    Mohammed Hameed
    wrote on last edited by
    #29

    Thanks for your input. So its like discomfort for some and confusion for some developers.

    Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

    1 Reply Last reply
    0
    • B BobJanova

      Global variables are widely recognised to be a Bad Thing and confusing. That's why programming languages have gradually introduced more and more ways of avoiding them: local variables, function parameters, structures (to wrap up multiple parameters where there would be a confusingly large number of them), encapsulation, closures ... I'm sure there are other features that essentially come down to reducing the scope within which a data object is visible to avoid confusion.

      M Offline
      M Offline
      Mohammed Hameed
      wrote on last edited by
      #30

      Thanks Bob. Very good explanation. :thumbsup:

      Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

      1 Reply Last reply
      0
      • C Chris Maunder

        You lucky, lucky bastard. (bonus points if you name that movie)

        cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

        M Offline
        M Offline
        Mohammed Hameed
        wrote on last edited by
        #31

        Life of Brian.

        Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

        F 1 Reply Last reply
        0
        • L Lost User

          It would depend upon how the variables are named. Names like: jjxl, jixl, picxl, y, x, xy, yx, xxy would be confusing even locally scoped. However, names like: Global_Late_Fee, Global_Post_Date, & WTF_Adjustment aren't confusing.

          M Offline
          M Offline
          Mohammed Hameed
          wrote on last edited by
          #32

          Yes, prefixing them may reduce much confusion. Thank you.

          Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

          1 Reply Last reply
          0
          • V Vark111

            I doubt you'll see a lot of lazy devs overusing dynamic, because it takes away Intellisense, and most of those types rely on Intellisense.

            M Offline
            M Offline
            Mohammed Hameed
            wrote on last edited by
            #33

            Agreed.

            Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

            1 Reply Last reply
            0
            • L Lost User

              This may be a stupid question, but that is the way I learn: Is there an "official" guide to the proper use of global variables, like a Microsoft guidelines document or something?

              Cornelius Henning ---------------------------------------------- "There is no reason for any individual to have a computer in their home." -- Ken Olson, President of DEC, World Future Society Convention, 1977

              P Offline
              P Offline
              Pablo Aliskevicius
              wrote on last edited by
              #34

              Here it is:

              1. Don't use global variables.
              2. If you thing you have found a reason to use a global variable, you're wrong. Just don't.

              Of course, synchronized singletons and read-only monostates are not 'real' global variables. Also, if you're writing C and you have a variable that allows access to a hardware device, it may be forgiven. JM2B,

              Pablo. "Accident: An inevitable occurrence due to the action of immutable natural laws." (Ambrose Bierce, circa 1899).

              1 Reply Last reply
              0
              • B BobJanova

                Anyone who declares anything dynamic without a damn good reason should get a slap round the head. It's loose, lazy, unclear and slow. If you know the name of methods that you want to call on an object (which you need to to make dynamic more than just object), you know enough to have it implement an interface and dispatch calls through that.

                M Offline
                M Offline
                Mohammed Hameed
                wrote on last edited by
                #35

                Superb...

                Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                1 Reply Last reply
                0
                • M Mohammed Hameed

                  Life of Brian.

                  Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                  F Offline
                  F Offline
                  Forogar
                  wrote on last edited by
                  #36

                  Ding! 10 points to Mr. Hameed!

                  - I would love to change the world, but they won’t give me the source code.

                  M 1 Reply Last reply
                  0
                  • V Valery Possoz

                    I once worked on a project with over 3000 global variables. The "team leader" did not even know what half of them were suppose to be for... He just use to add new ones!! I let you guess the quality of the project! So yes they get confused... :(

                    M Offline
                    M Offline
                    Mohammed Hameed
                    wrote on last edited by
                    #37

                    Thanks for the real time scenario.

                    Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                    1 Reply Last reply
                    0
                    • F Forogar

                      Ding! 10 points to Mr. Hameed!

                      - I would love to change the world, but they won’t give me the source code.

                      M Offline
                      M Offline
                      Mohammed Hameed
                      wrote on last edited by
                      #38

                      Thanks :)

                      Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                      1 Reply Last reply
                      0
                      • J Joe Woodbury

                        It's less confusing that where the developer uses classes at an absurdly granular level and/or buys into the "a method should do only one thing" nonsense. Then there's the one person who uses "var" for every definition in their C# code. The solution is to write aesthetically pleasing code will with meaningful names. In the C++ world, using static properly is a big help. (One thing that cracks me up are devs who criticize global variables and then create a singleton class full of variables. Or, worse, dozens of singleton classes chock full of variables. Speaking of singletons, I recently worked on some code where the original developer had create a factory class that produced exactly one and only one instance. Yes, it was "object" oriented, but the code would have been cleaner and made a whole lot more sense had they just written it in C.)

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

                        Not that I am particularly defending the use of var, but I quite like it in the case of

                        var foo = new SomeReallyQuiteSensibleButLongName();

                        especially if there are a few of them (cuz they line up and look nice) You can see what the type is easily, so no harm done. When it is

                        var foo = TheResultOfSomeFunctionWhoseNAmeDoesntReflectItsReturnType();

                        it annoys me as I have to use intellisense to ind out what type it is. Especially annoying with something like

                        var selectedCustomer = GetCustomerFromList();

                        which, at first glance, I would guess at selectedCustomer being some kind of Customer object. Imagine my surprise when I find out it is a boolean! Yep - the function returns a boolean that determines whether the customer was selected from the list. Now this comes down to good naming - and I have yet to meet a developer that names consistently well (myself included)

                        MVVM # - I did it My Way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')

                        M 1 Reply Last reply
                        0
                        • C Chris Maunder

                          I will put my hand up and say loudly and with some shame: Our Javascript sucks

                          cheers, Chris Maunder The Code Project | Co-founder Microsoft C++ MVP

                          R Offline
                          R Offline
                          Roger Wright
                          wrote on last edited by
                          #40

                          It's a lot nicer than the old VBS, though. :-D

                          Will Rogers never met me.

                          1 Reply Last reply
                          0
                          • M Mohammed Hameed

                            It has been noticed that some developers heavily use Global variables, may be without any discomfort. Is it like they get accustomed to it and hence use it? Dont they get confused by over usage?

                            Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                            R Offline
                            R Offline
                            Roger Wright
                            wrote on last edited by
                            #41

                            Back in the day, global variables were the only kind we had, and sometimes we had to re-use them. ;P Some of us are still coding... :-O

                            Will Rogers never met me.

                            1 Reply Last reply
                            0
                            • M Mohammed Hameed

                              It has been noticed that some developers heavily use Global variables, may be without any discomfort. Is it like they get accustomed to it and hence use it? Dont they get confused by over usage?

                              Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

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

                              Define "too many". I use whatever gets the job done. And what does "global" mean anymore? In .Net, everything's in a class. I often employ a static class that I call "Globals". Most of the contents are methods, but a lot of times, there's a collection or two in it.

                              ".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
                              -----
                              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                              N 1 Reply Last reply
                              0
                              • L Lost User

                                This may be a stupid question, but that is the way I learn: Is there an "official" guide to the proper use of global variables, like a Microsoft guidelines document or something?

                                Cornelius Henning ---------------------------------------------- "There is no reason for any individual to have a computer in their home." -- Ken Olson, President of DEC, World Future Society Convention, 1977

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

                                OK, I was probably confusing "Global" with "static public". I just assumed they were synonyms. It's been some years since using anything but C#. I do from time to time use static public when a variable needs to be accessed from multiple classes. I assume the jury is less likely to convict me for this crime? :confused: I am a self-taught programmer working on my own - no one else to ask. This is why this forum is of crucial importance to me.

                                M R 2 Replies Last reply
                                0
                                • realJSOPR realJSOP

                                  Define "too many". I use whatever gets the job done. And what does "global" mean anymore? In .Net, everything's in a class. I often employ a static class that I call "Globals". Most of the contents are methods, but a lot of times, there's a collection or two in it.

                                  ".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
                                  -----
                                  "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997

                                  N Offline
                                  N Offline
                                  Nish Nishant
                                  wrote on last edited by
                                  #44

                                  John Simmons / outlaw programmer wrote:

                                  And what does "global" mean anymore? In .Net, everything's in a class.

                                  Some people still work on C/C++ :-)

                                  Regards, Nish


                                  Blog: voidnish.wordpress.com The life of a Malayalee American - by Nish

                                  An article I recently wrote for an event souvenir

                                  M 1 Reply Last reply
                                  0
                                  • N Nish Nishant

                                    John Simmons / outlaw programmer wrote:

                                    And what does "global" mean anymore? In .Net, everything's in a class.

                                    Some people still work on C/C++ :-)

                                    Regards, Nish


                                    Blog: voidnish.wordpress.com The life of a Malayalee American - by Nish

                                    An article I recently wrote for an event souvenir

                                    M Offline
                                    M Offline
                                    Mohammed Hameed
                                    wrote on last edited by
                                    #45

                                    Thanks Nish for mentioning about C/C++ also.

                                    Understand SOLID! Believe SOLID! Try SOLID; your Code becomes Rock SOLID!!!

                                    1 Reply Last reply
                                    0
                                    • L Lost User

                                      OK, I was probably confusing "Global" with "static public". I just assumed they were synonyms. It's been some years since using anything but C#. I do from time to time use static public when a variable needs to be accessed from multiple classes. I assume the jury is less likely to convict me for this crime? :confused: I am a self-taught programmer working on my own - no one else to ask. This is why this forum is of crucial importance to me.

                                      M Offline
                                      M Offline
                                      Mycroft Holmes
                                      wrote on last edited by
                                      #46

                                      We also use a minimum of public statics but for fucks sake stick them all in the one place. Public statics scattered throughout the app is a sure sign on incompetence.

                                      Never underestimate the power of human stupidity RAH

                                      L 2 Replies Last reply
                                      0
                                      • M Mycroft Holmes

                                        We also use a minimum of public statics but for fucks sake stick them all in the one place. Public statics scattered throughout the app is a sure sign on incompetence.

                                        Never underestimate the power of human stupidity RAH

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

                                        Yeah, I usually create a small static class to hold all the static vars.

                                        1 Reply Last reply
                                        0
                                        • M Mycroft Holmes

                                          We also use a minimum of public statics but for fucks sake stick them all in the one place. Public statics scattered throughout the app is a sure sign on incompetence.

                                          Never underestimate the power of human stupidity RAH

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

                                          Yeah, I usually put them all in a small, dedicated static class. Seems to work well for me.

                                          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