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. ok what are the rules

ok what are the rules

Scheduled Pinned Locked Moved The Lounge
tutorial
238 Posts 34 Posters 449 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

    Consider reading this http://www.netobjectives.com/download/Code%20Qualities%20and%20Practices.pdf[^]

    K Offline
    K Offline
    Kevin McFarlane
    wrote on last edited by
    #64

    Hey, Richard, this looks quite good from a casual glance. I'll print it out and read it tomorrow. I've already read their Design Patterns book.

    Kevin

    L 1 Reply Last reply
    0
    • 1 123 0

      Shog9 wrote:

      IMHO, if your team is determined to argue, they'll find something to argue about.

      No doubt.

      Shog9 wrote:

      Orthogonality should be a goal in and of itself - whether the code is orthogonal or procedural.

      I use the term in the sense of "keeping separate things separate". It does not seem reasonable to us to hang verbs underneath nouns - or nouns underneath verbs, for that matter. Procedural programming tends to keep the two separate. In one 25,000-line Pascal program we wrote some time ago, for example, we only had two source files, called "nouns" and "verbs". It was a remarkably convenient and effective organization. In case you haven't run across my standard dissertation regarding cookies and ovens and baking, I'll repeat it here: In the object approach, a cookie is an object, and an oven is an object. Fine so far. But should we say "cookie.bake(oven)" or "oven.bake(cookie)" or something else, like "abstract.bake(cookie,oven)". We think all these options are unnatural, and prefer this actual Plain English code:

      A cookie is a...
      An oven is a...
      To bake some cookies in an oven...

      Where the nouns and the verbs are "related" to the verb in the routine header (the third line above), but do not "hang" underneath each other - or under some artificial abstract class - as they would in the object approach. And we find the syntax much easier to think about, type in, and read, to boot. On a more philosophical note, we all know that cookies don't bake themselves, nor do ovens bake cookies without assistance (as the object model would lead us to believe). Someone bakes cookies in an oven. But the object approach - in great part due to the philosophical orientation of its creator - tries to ignore the existence of the active agent who is necessarily "outside" the system. If you get my drift...

      P Offline
      P Offline
      Pierre Leclercq
      wrote on last edited by
      #65

      The Grand Negus wrote:

      On a more philosophical note

      Come on. Have you heard of a guy named Descartes? (I think therefore I am). He did an excellent work thinking about how to think. He developed what is called today the top-down approach. This way of thinking is particularly useful, and has been applied successfully in many disciplines, and led to fruitful solutions. For software it was very useful too. That's the underlying concept for procedural computing. But software remains a discipline with its own particularities. And as projects became larger and larger, it appeared this approach had some drawbacks (especially for evolving the systems). (See Meyer on this). So OOP brings in a very nice concept, I mean bottom-up approach. Top-down remains a must for designing a system, but bottom-up provides extremely valuable features for implementing software systems. (procedural remains useful for small and low level code, but the days of 64k central memory are over)

      1 1 Reply Last reply
      0
      • K Kevin McFarlane

        Hey, Richard, this looks quite good from a casual glance. I'll print it out and read it tomorrow. I've already read their Design Patterns book.

        Kevin

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

        If you require details of related matters then post your needs. Also, note that some time ago I posted details of Microsoft's Architecture Journal. Well, Journal 9 has just been issued. For you and others who might want a hard copy delivered to your home/work address or wishing to download PDF's of all issues of this journal, point your browser at www.architecturejournal.net[^]

        1 Reply Last reply
        0
        • L Lost User

          Consider reading this http://www.netobjectives.com/download/Code%20Qualities%20and%20Practices.pdf[^]

          P Offline
          P Offline
          peterchen
          wrote on last edited by
          #67

          Interesting article - but I have real issues with the first two points.


          Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
          We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
          Linkify!|Fold With Us!

          L 1 Reply Last reply
          0
          • A Amar Chaudhary

            there were few discussions about rules for programming few days ago i am working in a company which is newly started and only two programmers there and no one to guide except CP so what are the rules which you follow and think i should also follow :):)

            C Offline
            C Offline
            Chris Maunder
            wrote on last edited by
            #68
            1. Get a grip on the logic of what you are trying to accomplish before you start. ie. Understand exactly what it is you are trying to accomplish
            2. Use the right tool for the job. Ignore anyone who says you *must* use such-and-such a tool or technique.
            3. Learn the concepts of programming. Memory management, design patterns, organising your code into the correct peices (objects, procedures, files, namespaces)
            4. Understand the concepts of the technology you are using. Object oriented, web based, crazy anonymous functions. Learn the tools.
            5. Write pretty code. Forcing yourself to write good looking code will force you to take a look at the structure, the comments, the way it's broken up, and as a consequence it will be easier for someone else to read and check
            6. Write comments in code. Relevant comments. Lots of useful, relevant comments.
            7. Learn to test and debug
            8. Learn how to rip chunks out of your code and replace it as the specs change. And they will change. Never, ever believe that there is such a thing as a final spec sheet.
            9. Keep learning.
            10. Be good to your Mother.

            cheers, Chris Maunder

            CodeProject.com : C++ MVP

            P M 2 Replies Last reply
            0
            • C Chris Maunder
              1. Get a grip on the logic of what you are trying to accomplish before you start. ie. Understand exactly what it is you are trying to accomplish
              2. Use the right tool for the job. Ignore anyone who says you *must* use such-and-such a tool or technique.
              3. Learn the concepts of programming. Memory management, design patterns, organising your code into the correct peices (objects, procedures, files, namespaces)
              4. Understand the concepts of the technology you are using. Object oriented, web based, crazy anonymous functions. Learn the tools.
              5. Write pretty code. Forcing yourself to write good looking code will force you to take a look at the structure, the comments, the way it's broken up, and as a consequence it will be easier for someone else to read and check
              6. Write comments in code. Relevant comments. Lots of useful, relevant comments.
              7. Learn to test and debug
              8. Learn how to rip chunks out of your code and replace it as the specs change. And they will change. Never, ever believe that there is such a thing as a final spec sheet.
              9. Keep learning.
              10. Be good to your Mother.

              cheers, Chris Maunder

              CodeProject.com : C++ MVP

              P Offline
              P Offline
              Paul Conrad
              wrote on last edited by
              #69

              Chris Maunder wrote:

              Get a grip on the logic of what you are trying to accomplish before you start. ie. Understand exactly what it is you are trying to accomplish

              This is a fun when the client is vague about their requirements.


              I'd like to help but I don't feel like Googling it for you.

              A L 2 Replies Last reply
              0
              • 1 123 0

                Where is the hypocrisy in recommending the best we have to offer, on-topic, to someone who is looking for good ideas regarding programming? We wrote the thing for this very purpose; why shouldn't we offer it?

                J Offline
                J Offline
                Jeremy Falcon
                wrote on last edited by
                #70

                The Grand Negus wrote:

                why shouldn't we offer it?

                Because it's free advertising in the lounge, or did you forget already? Who stands to get paid if he actually does decide to use PEP?

                Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                1 1 Reply Last reply
                0
                • A Amar Chaudhary

                  there were few discussions about rules for programming few days ago i am working in a company which is newly started and only two programmers there and no one to guide except CP so what are the rules which you follow and think i should also follow :):)

                  J Offline
                  J Offline
                  Jeremy Falcon
                  wrote on last edited by
                  #71

                  Amar Chaudhary wrote:

                  so what are the rules which you follow and think i should also follow

                  Ok, here's the general lowdown...

                  • Code Complete is a great book, this is no exaggeration.
                  • OOP is nice, but it's not always the answer. Don't be afraid to not use it (they have OOP zealots, that don't know a thing about what they preach), and don't be afraid to use it either (they have procedural zealots, that don't know a thing about what they preach either).
                  • PEP is a joke. He took a couple of nice ideas, screwed them up badly, and made a cult out of it.

                  Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                  P A 2 Replies Last reply
                  0
                  • P Paul Conrad

                    Chris Maunder wrote:

                    Get a grip on the logic of what you are trying to accomplish before you start. ie. Understand exactly what it is you are trying to accomplish

                    This is a fun when the client is vague about their requirements.


                    I'd like to help but I don't feel like Googling it for you.

                    A Offline
                    A Offline
                    Amar Chaudhary
                    wrote on last edited by
                    #72

                    i coded sitting on the client side and have experience of that there i used to make report out of reports which there existing software cannot produce for one report the back office head sit beside me and give me the details of what is to be done i asked for the complete details for what is to be accomplished he told me to do that part first so i did that took me two days (merging three different reports , taking rates from two different exchanges keeping the record of rates etc) then i approached him with that report for further instructions he see my report and one (main) of the three reports i have merged and compared them the figures were exactly same he said it OK then i asked that why he asked me to calculate that figure which is already in the same report he just blushed after that i take extra care for what is required :):)

                    it is good to be important but it is more important to be good

                    P 1 Reply Last reply
                    0
                    • J Jeremy Falcon

                      Amar Chaudhary wrote:

                      so what are the rules which you follow and think i should also follow

                      Ok, here's the general lowdown...

                      • Code Complete is a great book, this is no exaggeration.
                      • OOP is nice, but it's not always the answer. Don't be afraid to not use it (they have OOP zealots, that don't know a thing about what they preach), and don't be afraid to use it either (they have procedural zealots, that don't know a thing about what they preach either).
                      • PEP is a joke. He took a couple of nice ideas, screwed them up badly, and made a cult out of it.

                      Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                      P Offline
                      P Offline
                      Paul Conrad
                      wrote on last edited by
                      #73

                      Jeremy Falcon wrote:

                      PEP is a joke.

                      I thought that when the Osmosian guys posted those articles some months ago. Couldn't make any sense of the coding and it looked like something I would have gotten agitated over.


                      I'd like to help but I don't feel like Googling it for you.

                      J 1 Reply Last reply
                      0
                      • P Paul Conrad

                        Jeremy Falcon wrote:

                        PEP is a joke.

                        I thought that when the Osmosian guys posted those articles some months ago. Couldn't make any sense of the coding and it looked like something I would have gotten agitated over.


                        I'd like to help but I don't feel like Googling it for you.

                        J Offline
                        J Offline
                        Jeremy Falcon
                        wrote on last edited by
                        #74

                        PaulC1972 wrote:

                        I thought that when the Osmosian guys posted those articles some months ago. Couldn't make any sense of the coding and it looked like something I would have gotten agitated over.

                        Yeah, they keep on saying PEP is more natural and you can type more code despite it being verbose because it flows so to speak. Personally, I don't think they spent enough time coding in another language that's not verbose to get that same flow. And having to use the shift key is not a show stopper for me. :rolleyes: Really though, if syntax was the only issue in debate (which it's not). I still wouldn't be crazy about it.

                        Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                        P E 2 Replies Last reply
                        0
                        • A Amar Chaudhary

                          i coded sitting on the client side and have experience of that there i used to make report out of reports which there existing software cannot produce for one report the back office head sit beside me and give me the details of what is to be done i asked for the complete details for what is to be accomplished he told me to do that part first so i did that took me two days (merging three different reports , taking rates from two different exchanges keeping the record of rates etc) then i approached him with that report for further instructions he see my report and one (main) of the three reports i have merged and compared them the figures were exactly same he said it OK then i asked that why he asked me to calculate that figure which is already in the same report he just blushed after that i take extra care for what is required :):)

                          it is good to be important but it is more important to be good

                          P Offline
                          P Offline
                          Paul Conrad
                          wrote on last edited by
                          #75

                          Amar Chaudhary wrote:

                          after that i take extra care for what is required

                          Yep. I make it a requirement for the client to specify and make them sign it off. When they come back crying that it doesn't meet their requirement, I show them what I coded and what they signed for.


                          I'd like to help but I don't feel like Googling it for you.

                          1 Reply Last reply
                          0
                          • J Jeremy Falcon

                            Amar Chaudhary wrote:

                            so what are the rules which you follow and think i should also follow

                            Ok, here's the general lowdown...

                            • Code Complete is a great book, this is no exaggeration.
                            • OOP is nice, but it's not always the answer. Don't be afraid to not use it (they have OOP zealots, that don't know a thing about what they preach), and don't be afraid to use it either (they have procedural zealots, that don't know a thing about what they preach either).
                            • PEP is a joke. He took a couple of nice ideas, screwed them up badly, and made a cult out of it.

                            Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                            A Offline
                            A Offline
                            Amar Chaudhary
                            wrote on last edited by
                            #76

                            so you have decided and firm to throw him out bravo!!!

                            it is good to be important but it is more important to be good

                            1 Reply Last reply
                            0
                            • J Jeremy Falcon

                              PaulC1972 wrote:

                              I thought that when the Osmosian guys posted those articles some months ago. Couldn't make any sense of the coding and it looked like something I would have gotten agitated over.

                              Yeah, they keep on saying PEP is more natural and you can type more code despite it being verbose because it flows so to speak. Personally, I don't think they spent enough time coding in another language that's not verbose to get that same flow. And having to use the shift key is not a show stopper for me. :rolleyes: Really though, if syntax was the only issue in debate (which it's not). I still wouldn't be crazy about it.

                              Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                              P Offline
                              P Offline
                              Paul Conrad
                              wrote on last edited by
                              #77

                              Jeremy Falcon wrote:

                              they keep on saying PEP is more natural

                              Yeah, a natural headache :->


                              I'd like to help but I don't feel like Googling it for you.

                              1 Reply Last reply
                              0
                              • 1 123 0

                                Amar Chaudhary wrote:

                                so what are the rules which you follow and think i should also follow

                                Sorry, forgot one - a very important one: Abandon the "object oriented" way of thinking and write the thing, as much as possible (with the language you've chosen), as traditional procedural code. Keep your nouns (data definitions) and your verbs (operations on those nouns) separate.

                                J Offline
                                J Offline
                                Jeremy Falcon
                                wrote on last edited by
                                #78

                                The Grand Negus wrote:

                                Abandon the "object oriented" way of thinking and write the thing, as much as possible (with the language you've chosen), as traditional procedural code.

                                I challenge you to flex your brain power and show all of us real (not abstract) reasons as to why you think this is the case. And I even double challenge you to do without talking about PEP. Keep in mind. C is my favorite language, and I believe procedural code can be very organized. But, I also believe OOP has many merits and don't hesitate to use it if the project calls for it. So, you have your challenge. Should you take it or leave us up to you, but since you act like an expert in this field I'd wager this would be like falling off a log. Remember, abstract ideas don't count, those are too easily manipulated to serve an agenda.

                                Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                                P 1 2 Replies Last reply
                                0
                                • J Jeremy Falcon

                                  The Grand Negus wrote:

                                  Abandon the "object oriented" way of thinking and write the thing, as much as possible (with the language you've chosen), as traditional procedural code.

                                  I challenge you to flex your brain power and show all of us real (not abstract) reasons as to why you think this is the case. And I even double challenge you to do without talking about PEP. Keep in mind. C is my favorite language, and I believe procedural code can be very organized. But, I also believe OOP has many merits and don't hesitate to use it if the project calls for it. So, you have your challenge. Should you take it or leave us up to you, but since you act like an expert in this field I'd wager this would be like falling off a log. Remember, abstract ideas don't count, those are too easily manipulated to serve an agenda.

                                  Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]

                                  P Offline
                                  P Offline
                                  Paul Conrad
                                  wrote on last edited by
                                  #79

                                  Jeremy Falcon wrote:

                                  I even double challenge you to do without talking about PEP

                                  :omg: I don't think that'll happen :laugh:


                                  If you try to write that in English, I might be able to understand more than a fraction of it. - Guffa

                                  1 Reply Last reply
                                  0
                                  • A Amar Chaudhary

                                    there were few discussions about rules for programming few days ago i am working in a company which is newly started and only two programmers there and no one to guide except CP so what are the rules which you follow and think i should also follow :):)

                                    L Offline
                                    L Offline
                                    Leslie Sanford
                                    wrote on last edited by
                                    #80
                                    1. Consider a design by contract approach to writing methods/functions. 2) Limit side-effects, i.e. limit mutability as much as possible.
                                    1 Reply Last reply
                                    0
                                    • P Paul Conrad

                                      Chris Maunder wrote:

                                      Get a grip on the logic of what you are trying to accomplish before you start. ie. Understand exactly what it is you are trying to accomplish

                                      This is a fun when the client is vague about their requirements.


                                      I'd like to help but I don't feel like Googling it for you.

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

                                      Client vagueness has the capability that can easily turn what could be a successful software project into a disaster. Two excellent books entitled "Systems Analysis and Design Methods - by Whitten" and "Software Engineering by Ian Sommerville". Both these books are well worth their money.

                                      P 1 Reply Last reply
                                      0
                                      • L Lost User

                                        Client vagueness has the capability that can easily turn what could be a successful software project into a disaster. Two excellent books entitled "Systems Analysis and Design Methods - by Whitten" and "Software Engineering by Ian Sommerville". Both these books are well worth their money.

                                        P Offline
                                        P Offline
                                        Paul Conrad
                                        wrote on last edited by
                                        #82

                                        Richard A. Abbott wrote:

                                        Client vagueness has the capability that can easily turn what could be a successful software project into a disaster.

                                        That has happened a few times and luckily have recuperated from disaster. Thanks for referring the books, will add them to the growing list of books to buy :-D


                                        If you try to write that in English, I might be able to understand more than a fraction of it. - Guffa

                                        1 Reply Last reply
                                        0
                                        • P peterchen

                                          Interesting article - but I have real issues with the first two points.


                                          Developers, Developers, Developers, Developers, Developers, Developers, Velopers, Develprs, Developers!
                                          We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
                                          Linkify!|Fold With Us!

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

                                          Agree, however, you might find this 276 page thesis an interesting read "Coplien - Multi-Paradigm Design" and is available here [^]

                                          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