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. Other Discussions
  3. The Weird and The Wonderful
  4. Guess His Experience Level

Guess His Experience Level

Scheduled Pinned Locked Moved The Weird and The Wonderful
30 Posts 16 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.
  • E EyeYamFedUp

    This guy is our point person for "process improvement". Guess how many years he's been coding? This is using VB.NET 2008. Great work don't ya think? :~ Let me know if you'd like to see more. :laugh:

    '*********************************************************************
    '* Module modCommon
    '*
    '* This module contains objects referenced by the entire application
    '* for various purposes.
    '*********************************************************************

    Imports System.Collections
    Imports System.Data.OleDB
    Imports System.Data.SqlClient
    Imports System.IO
    Imports System.Runtime.InteropServices.Marshal
    Imports System.Text
    Imports System.Xml

    Module modCommon

    '* Constants

    Public Const constLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Public Const constDigits = "0123456789"

    '* OLE Database Connections

    Public oconnCSUtilities As OleDbConnection

    '* SQL Database Connections

    Public sconnCommonData As SqlConnection
    Public sconnITProjectTracker As SqlConnection
    Public sconnMZP As SqlConnection

    '* OLE Database Variables

    Public ocmdProjectTracker As OleDbCommand
    Public odrProjectTracker As OleDbDataReader

    '* SQL Database Variables

    Public scmdAcctClient As SqlCommand
    Public sdrAcctClient As SqlDataReader
    Public scmdClientInfo As SqlCommand
    Public sdrClientInfo As SqlDataReader
    Public scmdClientTransactionFileTypes As SqlCommand
    Public sdrClientTransactionFileTypes As SqlDataReader
    Public scmdCompanyNameCompanyName As SqlCommand
    Public sdrCompanyNameCompanyName As SqlDataReader
    Public scmdDataLocks As SqlCommand
    Public sdrDataLocks As SqlDataReader
    Public scmdDataValidation As SqlCommand
    Public sdrDataValidation As SqlDataReader
    Public scmdJCLDSNOverride As SqlCommand
    Public sdrJCLDSNOverride As SqlDataReader
    Public scmdJCLSequence As SqlCommand
    Public sdrJCLSequence As SqlDataReader
    Public scmdLookupTable As SqlCommand
    Public sdrLookupTable As SqlDataReader
    Public scmdMasterFileCounts As SqlCommand
    Public sdrMasterFileCounts As SqlDataReader
    Public scmdMZPUser As SqlCommand
    Public sdrMZPUser As SqlDataReader
    Public scmdRecordTypes As SqlCommand
    Public sdrRecordTypes As SqlDataReader
    Public scmdReport As SqlCommand
    Public sdrReport As SqlDataReader
    Public scmdRequestData As SqlCommand
    Public sdrRequestData As SqlDataReader
    Public scmdTransactionFiles As SqlCommand
    Public sdrTransactionFiles As SqlDataReader
    Public scmdTransactionFileTypes As SqlCommand
    Public sdrTransactionFileTypes As SqlDataReader
    Public scmdUpdtSummCounts As SqlComm

    T Offline
    T Offline
    Thomas Weller 0
    wrote on last edited by
    #7

    This is clearly copied from somewhere. You can see that from the nonsense prefixes. Either from the net or from this VB6 Win32 API code snippet tool from MS (forgot the exact name). Obviously this guy is a VB5/6 'programmer' who was under the earth for the last 10 years. Maybe he is coding for 30 years or so, but he is/was 'coding' exclusively in VB. He has no idea of OO programming, maybe he thinks VB5/6 IS OO... :doh: And regarding modules named modCommon or Globals or the like: they are just crying out loud that there's a significant problem with the systems overall architecture (which is also obvious from the module description). Regards Thomas

    www.thomas-weller.de Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
    Programmer - an organism that turns coffee into software.

    B 1 Reply Last reply
    0
    • E EyeYamFedUp

      This guy is our point person for "process improvement". Guess how many years he's been coding? This is using VB.NET 2008. Great work don't ya think? :~ Let me know if you'd like to see more. :laugh:

      '*********************************************************************
      '* Module modCommon
      '*
      '* This module contains objects referenced by the entire application
      '* for various purposes.
      '*********************************************************************

      Imports System.Collections
      Imports System.Data.OleDB
      Imports System.Data.SqlClient
      Imports System.IO
      Imports System.Runtime.InteropServices.Marshal
      Imports System.Text
      Imports System.Xml

      Module modCommon

      '* Constants

      Public Const constLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      Public Const constDigits = "0123456789"

      '* OLE Database Connections

      Public oconnCSUtilities As OleDbConnection

      '* SQL Database Connections

      Public sconnCommonData As SqlConnection
      Public sconnITProjectTracker As SqlConnection
      Public sconnMZP As SqlConnection

      '* OLE Database Variables

      Public ocmdProjectTracker As OleDbCommand
      Public odrProjectTracker As OleDbDataReader

      '* SQL Database Variables

      Public scmdAcctClient As SqlCommand
      Public sdrAcctClient As SqlDataReader
      Public scmdClientInfo As SqlCommand
      Public sdrClientInfo As SqlDataReader
      Public scmdClientTransactionFileTypes As SqlCommand
      Public sdrClientTransactionFileTypes As SqlDataReader
      Public scmdCompanyNameCompanyName As SqlCommand
      Public sdrCompanyNameCompanyName As SqlDataReader
      Public scmdDataLocks As SqlCommand
      Public sdrDataLocks As SqlDataReader
      Public scmdDataValidation As SqlCommand
      Public sdrDataValidation As SqlDataReader
      Public scmdJCLDSNOverride As SqlCommand
      Public sdrJCLDSNOverride As SqlDataReader
      Public scmdJCLSequence As SqlCommand
      Public sdrJCLSequence As SqlDataReader
      Public scmdLookupTable As SqlCommand
      Public sdrLookupTable As SqlDataReader
      Public scmdMasterFileCounts As SqlCommand
      Public sdrMasterFileCounts As SqlDataReader
      Public scmdMZPUser As SqlCommand
      Public sdrMZPUser As SqlDataReader
      Public scmdRecordTypes As SqlCommand
      Public sdrRecordTypes As SqlDataReader
      Public scmdReport As SqlCommand
      Public sdrReport As SqlDataReader
      Public scmdRequestData As SqlCommand
      Public sdrRequestData As SqlDataReader
      Public scmdTransactionFiles As SqlCommand
      Public sdrTransactionFiles As SqlDataReader
      Public scmdTransactionFileTypes As SqlCommand
      Public sdrTransactionFileTypes As SqlDataReader
      Public scmdUpdtSummCounts As SqlComm

      A Offline
      A Offline
      akyriako78
      wrote on last edited by
      #8

      :omg:

      1 Reply Last reply
      0
      • E EyeYamFedUp

        This guy is our point person for "process improvement". Guess how many years he's been coding? This is using VB.NET 2008. Great work don't ya think? :~ Let me know if you'd like to see more. :laugh:

        '*********************************************************************
        '* Module modCommon
        '*
        '* This module contains objects referenced by the entire application
        '* for various purposes.
        '*********************************************************************

        Imports System.Collections
        Imports System.Data.OleDB
        Imports System.Data.SqlClient
        Imports System.IO
        Imports System.Runtime.InteropServices.Marshal
        Imports System.Text
        Imports System.Xml

        Module modCommon

        '* Constants

        Public Const constLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        Public Const constDigits = "0123456789"

        '* OLE Database Connections

        Public oconnCSUtilities As OleDbConnection

        '* SQL Database Connections

        Public sconnCommonData As SqlConnection
        Public sconnITProjectTracker As SqlConnection
        Public sconnMZP As SqlConnection

        '* OLE Database Variables

        Public ocmdProjectTracker As OleDbCommand
        Public odrProjectTracker As OleDbDataReader

        '* SQL Database Variables

        Public scmdAcctClient As SqlCommand
        Public sdrAcctClient As SqlDataReader
        Public scmdClientInfo As SqlCommand
        Public sdrClientInfo As SqlDataReader
        Public scmdClientTransactionFileTypes As SqlCommand
        Public sdrClientTransactionFileTypes As SqlDataReader
        Public scmdCompanyNameCompanyName As SqlCommand
        Public sdrCompanyNameCompanyName As SqlDataReader
        Public scmdDataLocks As SqlCommand
        Public sdrDataLocks As SqlDataReader
        Public scmdDataValidation As SqlCommand
        Public sdrDataValidation As SqlDataReader
        Public scmdJCLDSNOverride As SqlCommand
        Public sdrJCLDSNOverride As SqlDataReader
        Public scmdJCLSequence As SqlCommand
        Public sdrJCLSequence As SqlDataReader
        Public scmdLookupTable As SqlCommand
        Public sdrLookupTable As SqlDataReader
        Public scmdMasterFileCounts As SqlCommand
        Public sdrMasterFileCounts As SqlDataReader
        Public scmdMZPUser As SqlCommand
        Public sdrMZPUser As SqlDataReader
        Public scmdRecordTypes As SqlCommand
        Public sdrRecordTypes As SqlDataReader
        Public scmdReport As SqlCommand
        Public sdrReport As SqlDataReader
        Public scmdRequestData As SqlCommand
        Public sdrRequestData As SqlDataReader
        Public scmdTransactionFiles As SqlCommand
        Public sdrTransactionFiles As SqlDataReader
        Public scmdTransactionFileTypes As SqlCommand
        Public sdrTransactionFileTypes As SqlDataReader
        Public scmdUpdtSummCounts As SqlComm

        A Offline
        A Offline
        akyriako78
        wrote on last edited by
        #9

        Are we sure it's not April's fool joke ? If not the guy must quit drugs and never (OK I really mean it. NEVER) left alone with a keyboard and a code editor. :thumbsdown:

        E 1 Reply Last reply
        0
        • E EyeYamFedUp

          This guy is our point person for "process improvement". Guess how many years he's been coding? This is using VB.NET 2008. Great work don't ya think? :~ Let me know if you'd like to see more. :laugh:

          '*********************************************************************
          '* Module modCommon
          '*
          '* This module contains objects referenced by the entire application
          '* for various purposes.
          '*********************************************************************

          Imports System.Collections
          Imports System.Data.OleDB
          Imports System.Data.SqlClient
          Imports System.IO
          Imports System.Runtime.InteropServices.Marshal
          Imports System.Text
          Imports System.Xml

          Module modCommon

          '* Constants

          Public Const constLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
          Public Const constDigits = "0123456789"

          '* OLE Database Connections

          Public oconnCSUtilities As OleDbConnection

          '* SQL Database Connections

          Public sconnCommonData As SqlConnection
          Public sconnITProjectTracker As SqlConnection
          Public sconnMZP As SqlConnection

          '* OLE Database Variables

          Public ocmdProjectTracker As OleDbCommand
          Public odrProjectTracker As OleDbDataReader

          '* SQL Database Variables

          Public scmdAcctClient As SqlCommand
          Public sdrAcctClient As SqlDataReader
          Public scmdClientInfo As SqlCommand
          Public sdrClientInfo As SqlDataReader
          Public scmdClientTransactionFileTypes As SqlCommand
          Public sdrClientTransactionFileTypes As SqlDataReader
          Public scmdCompanyNameCompanyName As SqlCommand
          Public sdrCompanyNameCompanyName As SqlDataReader
          Public scmdDataLocks As SqlCommand
          Public sdrDataLocks As SqlDataReader
          Public scmdDataValidation As SqlCommand
          Public sdrDataValidation As SqlDataReader
          Public scmdJCLDSNOverride As SqlCommand
          Public sdrJCLDSNOverride As SqlDataReader
          Public scmdJCLSequence As SqlCommand
          Public sdrJCLSequence As SqlDataReader
          Public scmdLookupTable As SqlCommand
          Public sdrLookupTable As SqlDataReader
          Public scmdMasterFileCounts As SqlCommand
          Public sdrMasterFileCounts As SqlDataReader
          Public scmdMZPUser As SqlCommand
          Public sdrMZPUser As SqlDataReader
          Public scmdRecordTypes As SqlCommand
          Public sdrRecordTypes As SqlDataReader
          Public scmdReport As SqlCommand
          Public sdrReport As SqlDataReader
          Public scmdRequestData As SqlCommand
          Public sdrRequestData As SqlDataReader
          Public scmdTransactionFiles As SqlCommand
          Public sdrTransactionFiles As SqlDataReader
          Public scmdTransactionFileTypes As SqlCommand
          Public sdrTransactionFileTypes As SqlDataReader
          Public scmdUpdtSummCounts As SqlComm

          A Offline
          A Offline
          akyriako78
          wrote on last edited by
          #10

          EyeYamFedUp wrote:

          Public gblnSuperUser As Boolean Public gblnLogonOK As Boolean = False

          Wow. Excellent security paradigm.

          1 Reply Last reply
          0
          • E EyeYamFedUp

            This guy is our point person for "process improvement". Guess how many years he's been coding? This is using VB.NET 2008. Great work don't ya think? :~ Let me know if you'd like to see more. :laugh:

            '*********************************************************************
            '* Module modCommon
            '*
            '* This module contains objects referenced by the entire application
            '* for various purposes.
            '*********************************************************************

            Imports System.Collections
            Imports System.Data.OleDB
            Imports System.Data.SqlClient
            Imports System.IO
            Imports System.Runtime.InteropServices.Marshal
            Imports System.Text
            Imports System.Xml

            Module modCommon

            '* Constants

            Public Const constLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Public Const constDigits = "0123456789"

            '* OLE Database Connections

            Public oconnCSUtilities As OleDbConnection

            '* SQL Database Connections

            Public sconnCommonData As SqlConnection
            Public sconnITProjectTracker As SqlConnection
            Public sconnMZP As SqlConnection

            '* OLE Database Variables

            Public ocmdProjectTracker As OleDbCommand
            Public odrProjectTracker As OleDbDataReader

            '* SQL Database Variables

            Public scmdAcctClient As SqlCommand
            Public sdrAcctClient As SqlDataReader
            Public scmdClientInfo As SqlCommand
            Public sdrClientInfo As SqlDataReader
            Public scmdClientTransactionFileTypes As SqlCommand
            Public sdrClientTransactionFileTypes As SqlDataReader
            Public scmdCompanyNameCompanyName As SqlCommand
            Public sdrCompanyNameCompanyName As SqlDataReader
            Public scmdDataLocks As SqlCommand
            Public sdrDataLocks As SqlDataReader
            Public scmdDataValidation As SqlCommand
            Public sdrDataValidation As SqlDataReader
            Public scmdJCLDSNOverride As SqlCommand
            Public sdrJCLDSNOverride As SqlDataReader
            Public scmdJCLSequence As SqlCommand
            Public sdrJCLSequence As SqlDataReader
            Public scmdLookupTable As SqlCommand
            Public sdrLookupTable As SqlDataReader
            Public scmdMasterFileCounts As SqlCommand
            Public sdrMasterFileCounts As SqlDataReader
            Public scmdMZPUser As SqlCommand
            Public sdrMZPUser As SqlDataReader
            Public scmdRecordTypes As SqlCommand
            Public sdrRecordTypes As SqlDataReader
            Public scmdReport As SqlCommand
            Public sdrReport As SqlDataReader
            Public scmdRequestData As SqlCommand
            Public sdrRequestData As SqlDataReader
            Public scmdTransactionFiles As SqlCommand
            Public sdrTransactionFiles As SqlDataReader
            Public scmdTransactionFileTypes As SqlCommand
            Public sdrTransactionFileTypes As SqlDataReader
            Public scmdUpdtSummCounts As SqlComm

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

            What's your problem with it? He used comments didn't he? ;)

            "WPF has many lovers. It's a veritable porn star!" - Josh Smith

            As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

            My blog | My articles | MoXAML PowerToys | Onyx

            T 1 Reply Last reply
            0
            • A akyriako78

              Are we sure it's not April's fool joke ? If not the guy must quit drugs and never (OK I really mean it. NEVER) left alone with a keyboard and a code editor. :thumbsdown:

              E Offline
              E Offline
              EyeYamFedUp
              wrote on last edited by
              #12

              Scary isn't it? And you wouldn't believe how many programs he's written like this. Your jaws would probably hit the ground at some of the stuff he does. And the really sad part. He's been controlling what and how things are done in the server world for years. And even sadder yet, the applications are terribly slow. One example is an application that takes 5 minutes to save a record. 5 minutes. I saw that and was beside myself.

              A T 2 Replies Last reply
              0
              • P Pete OHanlon

                What's your problem with it? He used comments didn't he? ;)

                "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                My blog | My articles | MoXAML PowerToys | Onyx

                T Offline
                T Offline
                Thomas Weller 0
                wrote on last edited by
                #13

                Pete O'Hanlon wrote:

                He used comments didn't he?

                Indeed! Even the polished version ('*). :-D Regards Thomas

                www.thomas-weller.de Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
                Programmer - an organism that turns coffee into software.

                1 Reply Last reply
                0
                • E EyeYamFedUp

                  Scary isn't it? And you wouldn't believe how many programs he's written like this. Your jaws would probably hit the ground at some of the stuff he does. And the really sad part. He's been controlling what and how things are done in the server world for years. And even sadder yet, the applications are terribly slow. One example is an application that takes 5 minutes to save a record. 5 minutes. I saw that and was beside myself.

                  A Offline
                  A Offline
                  akyriako78
                  wrote on last edited by
                  #14

                  5 minutes !!!! No Comments. :omg:

                  1 Reply Last reply
                  0
                  • T Thomas Weller 0

                    This is clearly copied from somewhere. You can see that from the nonsense prefixes. Either from the net or from this VB6 Win32 API code snippet tool from MS (forgot the exact name). Obviously this guy is a VB5/6 'programmer' who was under the earth for the last 10 years. Maybe he is coding for 30 years or so, but he is/was 'coding' exclusively in VB. He has no idea of OO programming, maybe he thinks VB5/6 IS OO... :doh: And regarding modules named modCommon or Globals or the like: they are just crying out loud that there's a significant problem with the systems overall architecture (which is also obvious from the module description). Regards Thomas

                    www.thomas-weller.de Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
                    Programmer - an organism that turns coffee into software.

                    B Offline
                    B Offline
                    BadKarma
                    wrote on last edited by
                    #15

                    Thomas Weller wrote:

                    He has no idea of OO programming, maybe he thinks VB5/6 IS OO

                    Blasphemy ... OK maybe you're right about VB5. But surely VB6 is a OO programming language.

                    Learn from the mistakes of others, you may not live long enough to make them all yourself.

                    T 1 Reply Last reply
                    0
                    • E EyeYamFedUp

                      Scary isn't it? And you wouldn't believe how many programs he's written like this. Your jaws would probably hit the ground at some of the stuff he does. And the really sad part. He's been controlling what and how things are done in the server world for years. And even sadder yet, the applications are terribly slow. One example is an application that takes 5 minutes to save a record. 5 minutes. I saw that and was beside myself.

                      T Offline
                      T Offline
                      Tristan Rhodes
                      wrote on last edited by
                      #16

                      Looks like the kind of code my last boss would write.... bizzarely enough he seemed to recite "Keep it Simple Stupid" and "Structured Coding Practices" and swore by Code Complete.... like using them as some kind of protective mantra would do any good for the abomination created. After opening his core business app to find most web pages with 750 line page load functions, dozens of nested conditions (Loop / If / Case anyone?) and all the variables declared at the page leve, which served up a range of pages based on seemingly arbitrary values... i asked for help. "It's in the code, read it." I did take away some fantastic coding advice: * Only one return per function (no short circuit conditions), leading to horrendous nesting. * Don't use Data Access layers, they're a waste of time, just use inline SQL and bind to a DataReader. * Don't create lots of objects, it's slow. * Don't break things into sub functions, it's harder to read and slower. * Don't use constants, it's hard to read the literal representation. * Don't use Serialization (Xml or otherwise - My understanding of serialization is object state persistence so I'm not sure how to persist without it). * Don't use wrappers, ever, as you will just end up with wrappers in wrappers. * Don't use Inheritance, it's complicated. * Don't use Interfaces, they're unescessary. * Don't make custom controls * Don't use design patterns, they just complicate things. * Don't use code generators, they generate slow / too much code. * Don't bother with resources until we need to globalize the app. * Don't make unit tests, waste of time, we can just user test it. Now, without any of the above application structures, and the functional requirement to add Multi Language support, change the database schema (slighltly), and add cross site functionality to each page.... Needless to say, the code debt was massive, and maintenance was a time sync of code + fix with no coherent strategy. Did i mention he was the CTO? :-D Regards

                      ------------------------------- Carrier Bags - 21st Century Tumbleweed.

                      modified on Friday, April 3, 2009 6:58 AM

                      P 1 Reply Last reply
                      0
                      • T Tristan Rhodes

                        Looks like the kind of code my last boss would write.... bizzarely enough he seemed to recite "Keep it Simple Stupid" and "Structured Coding Practices" and swore by Code Complete.... like using them as some kind of protective mantra would do any good for the abomination created. After opening his core business app to find most web pages with 750 line page load functions, dozens of nested conditions (Loop / If / Case anyone?) and all the variables declared at the page leve, which served up a range of pages based on seemingly arbitrary values... i asked for help. "It's in the code, read it." I did take away some fantastic coding advice: * Only one return per function (no short circuit conditions), leading to horrendous nesting. * Don't use Data Access layers, they're a waste of time, just use inline SQL and bind to a DataReader. * Don't create lots of objects, it's slow. * Don't break things into sub functions, it's harder to read and slower. * Don't use constants, it's hard to read the literal representation. * Don't use Serialization (Xml or otherwise - My understanding of serialization is object state persistence so I'm not sure how to persist without it). * Don't use wrappers, ever, as you will just end up with wrappers in wrappers. * Don't use Inheritance, it's complicated. * Don't use Interfaces, they're unescessary. * Don't make custom controls * Don't use design patterns, they just complicate things. * Don't use code generators, they generate slow / too much code. * Don't bother with resources until we need to globalize the app. * Don't make unit tests, waste of time, we can just user test it. Now, without any of the above application structures, and the functional requirement to add Multi Language support, change the database schema (slighltly), and add cross site functionality to each page.... Needless to say, the code debt was massive, and maintenance was a time sync of code + fix with no coherent strategy. Did i mention he was the CTO? :-D Regards

                        ------------------------------- Carrier Bags - 21st Century Tumbleweed.

                        modified on Friday, April 3, 2009 6:58 AM

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

                        Tristan Rhodes wrote:

                        * Only one return per function (no short circuit conditions), leading to horrendous nesting.

                        Not bad advice - just keep your functions short or you're in trouble.

                        Tristan Rhodes wrote:

                        * Don't use Data Access layers, they're a waste of time, just use inline SQL and bind to a DataReader.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't create lots of objects, it's slow.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't break things into sub functions, it's harder to read and slower.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use constants, it's hard to read the literal representation.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use wrappers, ever, as you will just end up with wrappers in wrappers.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use Inheritance, it's complicated.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use Interfaces, they're unescessary.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use Serialization (Xml or otherwise - My understanding of serialization is object state persistence so I'm not sure how to persist without it).

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't make custom controls

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use design patterns, they just complicate things.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't use code generators, they generate slow / too much code.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't bother with resources until we need to globalize the app.

                        COBOL

                        Tristan Rhodes wrote:

                        * Don't make unit tests, waste of time, we can just user test it.

                        COBOL

                        "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                        As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                        N T 2 Replies Last reply
                        0
                        • B BadKarma

                          Thomas Weller wrote:

                          He has no idea of OO programming, maybe he thinks VB5/6 IS OO

                          Blasphemy ... OK maybe you're right about VB5. But surely VB6 is a OO programming language.

                          Learn from the mistakes of others, you may not live long enough to make them all yourself.

                          T Offline
                          T Offline
                          Thomas Weller 0
                          wrote on last edited by
                          #18

                          BadKarma wrote:

                          But surely VB6 is a OO programming language.

                          Right. I forgot that VB6 has 'classes', so it must be OO... :-D Regards Thomas

                          www.thomas-weller.de Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
                          Programmer - an organism that turns coffee into software.

                          1 Reply Last reply
                          0
                          • P Pete OHanlon

                            Tristan Rhodes wrote:

                            * Only one return per function (no short circuit conditions), leading to horrendous nesting.

                            Not bad advice - just keep your functions short or you're in trouble.

                            Tristan Rhodes wrote:

                            * Don't use Data Access layers, they're a waste of time, just use inline SQL and bind to a DataReader.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't create lots of objects, it's slow.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't break things into sub functions, it's harder to read and slower.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use constants, it's hard to read the literal representation.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use wrappers, ever, as you will just end up with wrappers in wrappers.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use Inheritance, it's complicated.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use Interfaces, they're unescessary.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use Serialization (Xml or otherwise - My understanding of serialization is object state persistence so I'm not sure how to persist without it).

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't make custom controls

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use design patterns, they just complicate things.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't use code generators, they generate slow / too much code.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't bother with resources until we need to globalize the app.

                            COBOL

                            Tristan Rhodes wrote:

                            * Don't make unit tests, waste of time, we can just user test it.

                            COBOL

                            "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                            As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                            N Offline
                            N Offline
                            Nagy Vilmos
                            wrote on last edited by
                            #19

                            Pete O'Hanlon wrote:

                            BOLOC

                            Fixed it!


                            Panic, Chaos, Destruction. My work here is done.

                            P 1 Reply Last reply
                            0
                            • N Nagy Vilmos

                              Pete O'Hanlon wrote:

                              BOLOC

                              Fixed it!


                              Panic, Chaos, Destruction. My work here is done.

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

                              Actually, I wrote COBOL so many times so somebody would pluralise the anagram.

                              "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                              As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                              My blog | My articles | MoXAML PowerToys | Onyx

                              1 Reply Last reply
                              0
                              • P Pete OHanlon

                                Tristan Rhodes wrote:

                                * Only one return per function (no short circuit conditions), leading to horrendous nesting.

                                Not bad advice - just keep your functions short or you're in trouble.

                                Tristan Rhodes wrote:

                                * Don't use Data Access layers, they're a waste of time, just use inline SQL and bind to a DataReader.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't create lots of objects, it's slow.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't break things into sub functions, it's harder to read and slower.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use constants, it's hard to read the literal representation.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use wrappers, ever, as you will just end up with wrappers in wrappers.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use Inheritance, it's complicated.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use Interfaces, they're unescessary.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use Serialization (Xml or otherwise - My understanding of serialization is object state persistence so I'm not sure how to persist without it).

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't make custom controls

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use design patterns, they just complicate things.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't use code generators, they generate slow / too much code.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't bother with resources until we need to globalize the app.

                                COBOL

                                Tristan Rhodes wrote:

                                * Don't make unit tests, waste of time, we can just user test it.

                                COBOL

                                "WPF has many lovers. It's a veritable porn star!" - Josh Smith

                                As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.

                                T Offline
                                T Offline
                                Tristan Rhodes
                                wrote on last edited by
                                #21

                                Pete O'Hanlon wrote:

                                Tristan Rhodes wrote: * Only one return per function (no short circuit conditions), leading to horrendous nesting. Not bad advice - just keep your functions short or you're in trouble.

                                I'd rather see this

                                MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                if (child == null)
                                return;

                                MenuItemNode parent = child.Parent as MenuItemNode;

                                if (parent == null)
                                return;

                                MenuItemNode swap = child.PrevNode as MenuItemNode;

                                if (swap == null)
                                return;

                                //Code Here

                                Than This

                                MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                if (child != null)
                                {
                                MenuItemNode parent = child.Parent as MenuItemNode;

                                  if (parent != null)
                                  {
                                        MenuItemNode swap = child.PrevNode as MenuItemNode;
                                
                                        if (swap != null)
                                        {
                                              //Code Here
                                        }
                                  }
                                

                                }

                                I just find the second option ugly, and it really isn't any easier to read.

                                ------------------------------- Carrier Bags - 21st Century Tumbleweed.

                                modified on Sunday, April 5, 2009 7:33 AM

                                J L K P OriginalGriffO 5 Replies Last reply
                                0
                                • T Tristan Rhodes

                                  Pete O'Hanlon wrote:

                                  Tristan Rhodes wrote: * Only one return per function (no short circuit conditions), leading to horrendous nesting. Not bad advice - just keep your functions short or you're in trouble.

                                  I'd rather see this

                                  MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                  if (child == null)
                                  return;

                                  MenuItemNode parent = child.Parent as MenuItemNode;

                                  if (parent == null)
                                  return;

                                  MenuItemNode swap = child.PrevNode as MenuItemNode;

                                  if (swap == null)
                                  return;

                                  //Code Here

                                  Than This

                                  MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                  if (child != null)
                                  {
                                  MenuItemNode parent = child.Parent as MenuItemNode;

                                    if (parent != null)
                                    {
                                          MenuItemNode swap = child.PrevNode as MenuItemNode;
                                  
                                          if (swap != null)
                                          {
                                                //Code Here
                                          }
                                    }
                                  

                                  }

                                  I just find the second option ugly, and it really isn't any easier to read.

                                  ------------------------------- Carrier Bags - 21st Century Tumbleweed.

                                  modified on Sunday, April 5, 2009 7:33 AM

                                  J Offline
                                  J Offline
                                  jayart
                                  wrote on last edited by
                                  #22

                                  I think the same. But no one in my team thinks this way and they have managed to make this as a coding rule.

                                  D 1 Reply Last reply
                                  0
                                  • J jayart

                                    I think the same. But no one in my team thinks this way and they have managed to make this as a coding rule.

                                    D Offline
                                    D Offline
                                    Dan Neely
                                    wrote on last edited by
                                    #23

                                    Will they let you get away with stuffing all the nested initialization/validation crap into a separate method? eg something like this (I know it needs a bit more fiddling to compile):

                                    bool IntializeAndvalidate (out MenuItemNode child, out MenuItemNode parent, MenuItemNode swap)
                                    {
                                    MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                      if (child != null)
                                      {
                                            MenuItemNode parent = child.Parent as MenuItemNode;
                                    
                                            if (parent != null)
                                            {
                                                  MenuItemNode swap = child.PrevNode as MenuItemNode;
                                    
                                                  return  (swap != null);
                                            }
                                      }
                                    

                                    }

                                    if (IntializeAndvalidate (child, parent, swap)
                                    {
                                    // do stuff
                                    }

                                    Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                                    1 Reply Last reply
                                    0
                                    • T Tristan Rhodes

                                      Pete O'Hanlon wrote:

                                      Tristan Rhodes wrote: * Only one return per function (no short circuit conditions), leading to horrendous nesting. Not bad advice - just keep your functions short or you're in trouble.

                                      I'd rather see this

                                      MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                      if (child == null)
                                      return;

                                      MenuItemNode parent = child.Parent as MenuItemNode;

                                      if (parent == null)
                                      return;

                                      MenuItemNode swap = child.PrevNode as MenuItemNode;

                                      if (swap == null)
                                      return;

                                      //Code Here

                                      Than This

                                      MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                      if (child != null)
                                      {
                                      MenuItemNode parent = child.Parent as MenuItemNode;

                                        if (parent != null)
                                        {
                                              MenuItemNode swap = child.PrevNode as MenuItemNode;
                                      
                                              if (swap != null)
                                              {
                                                    //Code Here
                                              }
                                        }
                                      

                                      }

                                      I just find the second option ugly, and it really isn't any easier to read.

                                      ------------------------------- Carrier Bags - 21st Century Tumbleweed.

                                      modified on Sunday, April 5, 2009 7:33 AM

                                      L Offline
                                      L Offline
                                      Luc Pattyn
                                      wrote on last edited by
                                      #24

                                      The official solution to avoid multiple returns is throwing exceptions all over the place, especially on input validation. :)

                                      Luc Pattyn [Forum Guidelines] [My Articles]


                                      - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


                                      D T 2 Replies Last reply
                                      0
                                      • L Luc Pattyn

                                        The official solution to avoid multiple returns is throwing exceptions all over the place, especially on input validation. :)

                                        Luc Pattyn [Forum Guidelines] [My Articles]


                                        - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


                                        D Offline
                                        D Offline
                                        Dan Neely
                                        wrote on last edited by
                                        #25

                                        :rolleyes:

                                        Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                                        1 Reply Last reply
                                        0
                                        • T Tristan Rhodes

                                          Pete O'Hanlon wrote:

                                          Tristan Rhodes wrote: * Only one return per function (no short circuit conditions), leading to horrendous nesting. Not bad advice - just keep your functions short or you're in trouble.

                                          I'd rather see this

                                          MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                          if (child == null)
                                          return;

                                          MenuItemNode parent = child.Parent as MenuItemNode;

                                          if (parent == null)
                                          return;

                                          MenuItemNode swap = child.PrevNode as MenuItemNode;

                                          if (swap == null)
                                          return;

                                          //Code Here

                                          Than This

                                          MenuItemNode child = tvMenu.SelectedNode as MenuItemNode;

                                          if (child != null)
                                          {
                                          MenuItemNode parent = child.Parent as MenuItemNode;

                                            if (parent != null)
                                            {
                                                  MenuItemNode swap = child.PrevNode as MenuItemNode;
                                          
                                                  if (swap != null)
                                                  {
                                                        //Code Here
                                                  }
                                            }
                                          

                                          }

                                          I just find the second option ugly, and it really isn't any easier to read.

                                          ------------------------------- Carrier Bags - 21st Century Tumbleweed.

                                          modified on Sunday, April 5, 2009 7:33 AM

                                          K Offline
                                          K Offline
                                          kfoster
                                          wrote on last edited by
                                          #26

                                          The 'one return per function' rule is a bit old school (early 90's :) ). IBM had it as a requirement when I was contracting there. It's not so much about style and readability as it is about introducing subtle bugs. If a maintenance programmer has to put some code in the function that has to take place before the function ends, he may place it right before the final 'return' near the end of the code block. And if he was working fast, or just working stupid he may not know of the other return points. Anyway, OOP guidelines of very short (7 +- 2) meaningful lines of code per method made this a moot point.

                                          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