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. What the elephant happened to OO design?

What the elephant happened to OO design?

Scheduled Pinned Locked Moved The Lounge
oopc++designhelpquestion
40 Posts 25 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.
  • C Offline
    C Offline
    charlieg
    wrote on last edited by
    #1

    I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

    D abmvA Sander RosselS D V 20 Replies Last reply
    0
    • C charlieg

      I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

      D Offline
      D Offline
      Daniel Pfeffer
      wrote on last edited by
      #2

      Nothing has happened to OOD; it is still a very powerful design tool. The problem is the severe shortage (and consequent high salaries) of good software engineers. In lieu of decent software engineers, companies hire programmers who are a lot cheaper, are much easier to find, but could not use proper design to save their lives. Make no mistake; within their limitations, some of them are very good coders. If they were to be exposed to proper design principles (and some decent mentoring), some of them could become decent software engineers. The problem with the more capable ones is that they have no idea that OOD and other design tools even exist!

      Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

      C M 2 Replies Last reply
      0
      • D Daniel Pfeffer

        Nothing has happened to OOD; it is still a very powerful design tool. The problem is the severe shortage (and consequent high salaries) of good software engineers. In lieu of decent software engineers, companies hire programmers who are a lot cheaper, are much easier to find, but could not use proper design to save their lives. Make no mistake; within their limitations, some of them are very good coders. If they were to be exposed to proper design principles (and some decent mentoring), some of them could become decent software engineers. The problem with the more capable ones is that they have no idea that OOD and other design tools even exist!

        Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

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

        You must be a software guy :laugh: of course nothing has happened to OOD. But your comments are dead on.

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

        1 Reply Last reply
        0
        • C charlieg

          I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

          abmvA Offline
          abmvA Offline
          abmv
          wrote on last edited by
          #4

          It is important to apply OOD to any project from the beginning. If you are starting out with a new project, the software architect role is applied and the software design is done in OOD. Software development is advanced already. Its just maybe that the next generation of coders are learning python , JavaScript etc which may not embody the whole OOD concepts. Also if you look at the Roadmap to becoming a web developer in 2018[^] , you just need to know a couple of frameworks.Also these days you either code for android or iOS and the cloud (google/aws/........) and are restricted to the structure they offer in some ways.

          Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long

          We are in the beginning of a mass extinction. - Greta Thunberg

          C 1 Reply Last reply
          0
          • C charlieg

            I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

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

            charlieg wrote:

            control c / control v must be banned

            Couldn't agree more. I once worked with a guy who copy/pasted everything and had no idea what it actually was he did. He used someCollection.Where(x => x.MeetsCriteria()); every day for over a year. Then I noticed he used bool any = c.Where(...).Count() > 0; I told him to use someCollection.Any(...) instead because it's a lot cheaper and more readable. However, he did not understand the types of the input parameters to Any(Expression> predicate) or the even simpler Any(Func predicate). Spoiler: Where and Any have the exact same input parameter. He literally told me "I know I type 'Where' and then some letter, whatever that is, and then '=>' and then I can magically use properties on the objects of a collection. I didn't know it was the same for Any, I never knew the parameter type." :omg: :wtf: :~ X| Since then I've told that guy NEVER to copy/paste again, it's a right that needs to be deserved and he clearly didn't deserve it X| Of course he kept on copy/pasting because that was all he could... A useful code monkey, he had his place, but he needed a lot of guidance.

            Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

            C D E T 4 Replies Last reply
            0
            • abmvA abmv

              It is important to apply OOD to any project from the beginning. If you are starting out with a new project, the software architect role is applied and the software design is done in OOD. Software development is advanced already. Its just maybe that the next generation of coders are learning python , JavaScript etc which may not embody the whole OOD concepts. Also if you look at the Roadmap to becoming a web developer in 2018[^] , you just need to know a couple of frameworks.Also these days you either code for android or iOS and the cloud (google/aws/........) and are restricted to the structure they offer in some ways.

              Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long

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

              Well, I don't do web. I suppose if it was the only thing available I could. I've seen too many people with a passing/functional knowledge of JavaScript call themselves software engineers. The sad thing, I see this all the time from very senior people, but I live in an embedded world, so C and C++ are interchangeable.

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

              1 Reply Last reply
              0
              • Sander RosselS Sander Rossel

                charlieg wrote:

                control c / control v must be banned

                Couldn't agree more. I once worked with a guy who copy/pasted everything and had no idea what it actually was he did. He used someCollection.Where(x => x.MeetsCriteria()); every day for over a year. Then I noticed he used bool any = c.Where(...).Count() > 0; I told him to use someCollection.Any(...) instead because it's a lot cheaper and more readable. However, he did not understand the types of the input parameters to Any(Expression> predicate) or the even simpler Any(Func predicate). Spoiler: Where and Any have the exact same input parameter. He literally told me "I know I type 'Where' and then some letter, whatever that is, and then '=>' and then I can magically use properties on the objects of a collection. I didn't know it was the same for Any, I never knew the parameter type." :omg: :wtf: :~ X| Since then I've told that guy NEVER to copy/paste again, it's a right that needs to be deserved and he clearly didn't deserve it X| Of course he kept on copy/pasting because that was all he could... A useful code monkey, he had his place, but he needed a lot of guidance.

                Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

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

                :thumbsup: yeah, I hear you.

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

                1 Reply Last reply
                0
                • Sander RosselS Sander Rossel

                  charlieg wrote:

                  control c / control v must be banned

                  Couldn't agree more. I once worked with a guy who copy/pasted everything and had no idea what it actually was he did. He used someCollection.Where(x => x.MeetsCriteria()); every day for over a year. Then I noticed he used bool any = c.Where(...).Count() > 0; I told him to use someCollection.Any(...) instead because it's a lot cheaper and more readable. However, he did not understand the types of the input parameters to Any(Expression> predicate) or the even simpler Any(Func predicate). Spoiler: Where and Any have the exact same input parameter. He literally told me "I know I type 'Where' and then some letter, whatever that is, and then '=>' and then I can magically use properties on the objects of a collection. I didn't know it was the same for Any, I never knew the parameter type." :omg: :wtf: :~ X| Since then I've told that guy NEVER to copy/paste again, it's a right that needs to be deserved and he clearly didn't deserve it X| Of course he kept on copy/pasting because that was all he could... A useful code monkey, he had his place, but he needed a lot of guidance.

                  Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                  D Offline
                  D Offline
                  dan sh
                  wrote on last edited by
                  #8

                  Expression is confusing when you just start with it. That part I understand. I used it for the first time and I was absolutely confused. I had to really force myself out of desire of reverting back to very familiar reflection classes and methods. Once I got it, it ended up writing an entire generic, erm, framework(?) to add search functionality in MVC application through one line of code and a JSON file. This source code confused the folks who had to consume it in their applications. However, using Where and not knowing Any is clear indication of ripping off code from the interwebs with no desire of at least understanding what it is.

                  "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

                  Sander RosselS 1 Reply Last reply
                  0
                  • C charlieg

                    I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

                    D Offline
                    D Offline
                    dan sh
                    wrote on last edited by
                    #9

                    charlieg wrote:

                    I'm living in a static global world

                    My World is pretty dynamic.

                    charlieg wrote:

                    control c / control v must be banned

                    No! I don't want to type that same basic template for model classes again and again. This and other goodies are there in my repository of common things I need in almost every project I work on. And I will copy and paste them. Wow, I am gansta!

                    "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

                    C 1 Reply Last reply
                    0
                    • C charlieg

                      I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

                      V Offline
                      V Offline
                      V 0
                      wrote on last edited by
                      #10

                      I'm glad I'm not the only one thinking this way :rolleyes:

                      V.

                      1 Reply Last reply
                      0
                      • Sander RosselS Sander Rossel

                        charlieg wrote:

                        control c / control v must be banned

                        Couldn't agree more. I once worked with a guy who copy/pasted everything and had no idea what it actually was he did. He used someCollection.Where(x => x.MeetsCriteria()); every day for over a year. Then I noticed he used bool any = c.Where(...).Count() > 0; I told him to use someCollection.Any(...) instead because it's a lot cheaper and more readable. However, he did not understand the types of the input parameters to Any(Expression> predicate) or the even simpler Any(Func predicate). Spoiler: Where and Any have the exact same input parameter. He literally told me "I know I type 'Where' and then some letter, whatever that is, and then '=>' and then I can magically use properties on the objects of a collection. I didn't know it was the same for Any, I never knew the parameter type." :omg: :wtf: :~ X| Since then I've told that guy NEVER to copy/paste again, it's a right that needs to be deserved and he clearly didn't deserve it X| Of course he kept on copy/pasting because that was all he could... A useful code monkey, he had his place, but he needed a lot of guidance.

                        Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                        E Offline
                        E Offline
                        Eytukan
                        wrote on last edited by
                        #11

                        I need to watch out for these in my teams code. Can you suggest a C# book that focus on LINQ performance? I have to learn them first!

                        Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy Falcon.

                        Sander RosselS 1 Reply Last reply
                        0
                        • D dan sh

                          Expression is confusing when you just start with it. That part I understand. I used it for the first time and I was absolutely confused. I had to really force myself out of desire of reverting back to very familiar reflection classes and methods. Once I got it, it ended up writing an entire generic, erm, framework(?) to add search functionality in MVC application through one line of code and a JSON file. This source code confused the folks who had to consume it in their applications. However, using Where and not knowing Any is clear indication of ripping off code from the interwebs with no desire of at least understanding what it is.

                          "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

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

                          lw@zi wrote:

                          ripping off code from the interwebs

                          At least he ripped it off from me, so it wasn't THAT bad! :laugh: Although this guy though I had written generics :laugh: And yeah, Expressions are confusing. It's confusing over and over again. Luckily, it's not very common to build your own Expressions manually :)

                          Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                          1 Reply Last reply
                          0
                          • E Eytukan

                            I need to watch out for these in my teams code. Can you suggest a C# book that focus on LINQ performance? I have to learn them first!

                            Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy Falcon.

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

                            Not a recent book. There's Pro LINQ by Apress, but that's from 2010 already :wtf: However, you don't really need a book. If you're working with LINQ-to-Entities I'd use a profiler and check out every SQL query that gets send to the database (I think they're printed in the output window as well, but that's a bit of a search). For LINQ-to-Objects I wouldn't worry about performance too much, just make sure you keep the non-deferred LINQ operators for last :) Tools like Visual Studio and Resharper can also give you tips, like revert coll.Where(...).First(); to coll.First(...);

                            Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                            E 1 Reply Last reply
                            0
                            • C charlieg

                              I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

                              D Offline
                              D Offline
                              den2k88
                              wrote on last edited by
                              #14

                              charlieg wrote:

                              Inheritance results in hemorrhoids and other digestive issues

                              Only if applied cluelessly (which I have done in several occasions and hopefully I learned from them though I wouldn't bet on it).

                              charlieg wrote:

                              I have a file that contains data.

                              I have several of them.

                              charlieg wrote:

                              I'm thinking that to advance software development to the next level, control c / control v must be banned.

                              You'd have fixed 90% of the bugs in our codebase and driven to the mental hospital one of my less favourite coworkers. Motion approved! When I begin a new project I encapsulate everything, and I do the same when I'm tasked to modify something that exists. The only problem in my environment is that we don't have a single product but about five hundreds of them and growing, all with more or less the same code at different points in time over 20 years but no shared file. Each version has its own copy and the source control is a plain .zip file. This means that I may have to fix the same thing over a dozen of times before it becomes the new baseline for the future - the existing products are still to be maintained with the old code and architecture.

                              GCS d-- s-/++ a- C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- ++>+++ y+++*      Weapons extension: ma- k++ F+2 X

                              1 Reply Last reply
                              0
                              • C charlieg

                                I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

                                R Offline
                                R Offline
                                Rage
                                wrote on last edited by
                                #15

                                I would have agreed with you even still 2 years ago. Now I am really facing the market reality, and I am less evangelistic about holy code. Actually, getting things done faster and cheaper has superseded the need of quality - alas - and people do not care about quality anymore. Security issues in Facebook due to poor coding ? After a bit of show from Zuckerberg, everybody has already forgotten. Thousands and thousands of bugs in Microsoft products ? People earn money by blogging and youtubing about workarounds. So if the demand is "please get me this done for yesterday and for no money", then copy & paste code is plain OK. In my current position, which gets a bit above the boundaries of SW development, management made the choice to get products done and tested in low-cost locations, with a ratio of 3 people designing for 2 people fixing the design mistakes as they pop up in series production. Altogether, these 5 people are still 1/3 the cost of one solid and experienced engineer here and they are processing about 2 to 3 times as much projects, so ... The trend in the industry is to get low-cost locations do rapid-prototyping as product design and rapid-fixing on a case to case demand, since - unless very bis issues - nobody cares about quality. The experience of the designers in low -cost locations grow faster than their cost, so in about 2 to 3 years, we can expect an equivalent design skill as in high-cost locations, but for still half of the price, and the 2 fixing guys can probably be reduced to 1. The only sacrificed element in all this is a bit of quality, but foremost innovation - future will tell if the business model can survive.

                                Do not escape reality : improve reality !

                                N 1 Reply Last reply
                                0
                                • C charlieg

                                  I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

                                  M Offline
                                  M Offline
                                  Munchies_Matt
                                  wrote on last edited by
                                  #16

                                  charlieg wrote:

                                  control c / control v

                                  Hey, isnt cloning mans answer to evolution? :)

                                  1 Reply Last reply
                                  0
                                  • D dan sh

                                    charlieg wrote:

                                    I'm living in a static global world

                                    My World is pretty dynamic.

                                    charlieg wrote:

                                    control c / control v must be banned

                                    No! I don't want to type that same basic template for model classes again and again. This and other goodies are there in my repository of common things I need in almost every project I work on. And I will copy and paste them. Wow, I am gansta!

                                    "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

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

                                    the control c / control v comment was mostly in jest... mostly. ;)

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

                                    1 Reply Last reply
                                    0
                                    • C charlieg

                                      I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

                                      C Offline
                                      C Offline
                                      Chris C B
                                      wrote on last edited by
                                      #18

                                      charlieg wrote:

                                      I'm thinking that to advance software development to the next level, control c / control v must be banned.

                                      I wouldn't dream of using control c / control v... ...now that I've coded them into a couple of redundant gaming keys. :-\

                                      1 Reply Last reply
                                      0
                                      • R Rage

                                        I would have agreed with you even still 2 years ago. Now I am really facing the market reality, and I am less evangelistic about holy code. Actually, getting things done faster and cheaper has superseded the need of quality - alas - and people do not care about quality anymore. Security issues in Facebook due to poor coding ? After a bit of show from Zuckerberg, everybody has already forgotten. Thousands and thousands of bugs in Microsoft products ? People earn money by blogging and youtubing about workarounds. So if the demand is "please get me this done for yesterday and for no money", then copy & paste code is plain OK. In my current position, which gets a bit above the boundaries of SW development, management made the choice to get products done and tested in low-cost locations, with a ratio of 3 people designing for 2 people fixing the design mistakes as they pop up in series production. Altogether, these 5 people are still 1/3 the cost of one solid and experienced engineer here and they are processing about 2 to 3 times as much projects, so ... The trend in the industry is to get low-cost locations do rapid-prototyping as product design and rapid-fixing on a case to case demand, since - unless very bis issues - nobody cares about quality. The experience of the designers in low -cost locations grow faster than their cost, so in about 2 to 3 years, we can expect an equivalent design skill as in high-cost locations, but for still half of the price, and the 2 fixing guys can probably be reduced to 1. The only sacrificed element in all this is a bit of quality, but foremost innovation - future will tell if the business model can survive.

                                        Do not escape reality : improve reality !

                                        N Offline
                                        N Offline
                                        Nathan Minier
                                        wrote on last edited by
                                        #19

                                        As a guy that wears a cybersecurity hat, I thank you for ensuring my future employment ;P

                                        "There are three kinds of lies: lies, damned lies and statistics." - Benjamin Disraeli

                                        1 Reply Last reply
                                        0
                                        • C charlieg

                                          I know the 4 pillars of OOD - but my love is for abstraction and encapsulation. Polymorphism is useful, but I've found it confuses many developers. Inheritance results in hemorrhoids and other digestive issues, so unless I have a very, very generic object, I tend to avoid it. That said, it baffles me to the point of wanting to cut myself why encapsulation is ignored. I'm living in a static global world where we hack away every day... I have a file that contains data. Why would you not write a class to handle it? Every damn tool we have is a C++ compiler. :doh: I'm thinking that to advance software development to the next level, control c / control v must be banned.

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

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

                                          Polymorphism is DAMN useful. MS broke inheritance in .net when they coded themselves into a corner resulting in the seemingly arbitrary restriction that a programmer could only inherit from a single class, but multiple interfaces. What a crock. None of these OOP constructs would be confusing if instructors actually knew how to, oh, I don't know - INSTRUCT.

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

                                          N 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