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. I dont feel like going back to work...

I dont feel like going back to work...

Scheduled Pinned Locked Moved The Lounge
phpvisual-studiocomcollaborationbeta-testing
62 Posts 24 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.
  • M Marc Clifton

    leppie wrote:

    Side-effects are evil. Learn to appreciate that, and code becomes dead simple.

    But isn't that the worst thing about AOP, that you don't know what side effects might be introduced? Marc

    Will work for food. Interacx

    I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner

    M Offline
    M Offline
    martin_hughes
    wrote on last edited by
    #51

    Marc Clifton wrote:

    But isn't that the worst thing about AOP, that you don't know what side effects might be introduced?

    Good point, and here's why: I have been experimenting with the Post# AOP Framework - which I think is quite a nice product and certainly could be very useful in a number of areas. However, due to not reading the manual ( ;P ), and therefore because I didn't know that I should override the OnException method in the Aspect, I got caught out by an exception that was being swallowed by the framework. Now admittedly, that's me being an idiot for not bothering to read up on usage, however if this wasn't properly documented - or if developers were rushing to get this into production without fully understanding it - I could see a whole bunch of very difficult to trace bugs being introduced. AOP, though, I think is a pretty neat concept. It has its pit-falls like everything else, but used judiciously is another handy tool for the toolbox.

    print "http://www.codeproject.com".toURL().text Ain't that Groovy?

    P 1 Reply Last reply
    0
    • M martin_hughes

      Marc Clifton wrote:

      But isn't that the worst thing about AOP, that you don't know what side effects might be introduced?

      Good point, and here's why: I have been experimenting with the Post# AOP Framework - which I think is quite a nice product and certainly could be very useful in a number of areas. However, due to not reading the manual ( ;P ), and therefore because I didn't know that I should override the OnException method in the Aspect, I got caught out by an exception that was being swallowed by the framework. Now admittedly, that's me being an idiot for not bothering to read up on usage, however if this wasn't properly documented - or if developers were rushing to get this into production without fully understanding it - I could see a whole bunch of very difficult to trace bugs being introduced. AOP, though, I think is a pretty neat concept. It has its pit-falls like everything else, but used judiciously is another handy tool for the toolbox.

      print "http://www.codeproject.com".toURL().text Ain't that Groovy?

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

      martin_hughes wrote:

      but used judiciously is another handy tool for the toolbox

      Excellent point, a tool among a vast number of other tools. Maybe VS2010 will add a ballot screen: "What concept would you like to use?": "1)Imperative programming" "2)OO programming" "3)Functional programming" "4)Aspect programming" "5)Sorry, this one has too low a market share" :-\

      You can't turn lead into gold, unless you've built yourself a nuclear plant.

      1 Reply Last reply
      0
      • L leppie

        Side-effects are evil. Learn to appreciate that, and code becomes dead simple. I can code fresh code faster than trying to understand what his code is attempting to do.

        xacc.ide
        IronScheme - 1.0 beta 4 - out now!
        ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

        L Offline
        L Offline
        Leslie Sanford
        wrote on last edited by
        #53

        leppie wrote:

        Side-effects are evil.

        I'm pretty sure I know what you mean and that we agree, but wanted to add... The problem is hidden side-effects; you do one thing but unbeknownst to you something else is changed. You can minimize this by limiting the scope of what is changed when a function is called, making the scope of state changes as narrow as possible. Think of state machines sending messages to each other in such a way that they don't care what the results are; their invariants are guarenteed regardless. One way I picture software is a collection of stateless functions (functions without side-effects). These are robust functions tested in isolation. On top of that are state machines that manage state changes and use the stateless functions for performing calculations and so forth. Each state machine having a narrow scope and being written in such a way that its invariants are always in force. At a higher level you have a collection of state machines organized to complete a task that the component or application is designed to perform. Anyway, the bottom line for me is that state changes are inevitable. It's a matter of organizing and isolating them so that the end result is robust software.

        1 Reply Last reply
        0
        • B Brady Kelly

          A good AOP design should have orthogonal business logic not affected by 'side effects'.

          M Offline
          M Offline
          Marc Clifton
          wrote on last edited by
          #54

          Brady Kelly wrote:

          A good AOP design should have orthogonal business logic not affected by 'side effects'.

          There's a mouthful. :) I must say, my brain sort of locks up every time I encounter the words "horizontal", "vertical", and "orthogonal". Maybe it's because I'm thinking of some innuendo rather than biz-speak. Marc

          Will work for food. Interacx

          I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner

          P P 2 Replies Last reply
          0
          • M Marc Clifton

            Brady Kelly wrote:

            A good AOP design should have orthogonal business logic not affected by 'side effects'.

            There's a mouthful. :) I must say, my brain sort of locks up every time I encounter the words "horizontal", "vertical", and "orthogonal". Maybe it's because I'm thinking of some innuendo rather than biz-speak. Marc

            Will work for food. Interacx

            I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner

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

            Marc Clifton wrote:

            I'm thinking of some innuendo rather than biz-speak

            Especially when there are several layers of horizontal side effects? ;)

            You can't turn lead into gold, unless you've built yourself a nuclear plant.

            1 Reply Last reply
            0
            • M Marc Clifton

              Brady Kelly wrote:

              A good AOP design should have orthogonal business logic not affected by 'side effects'.

              There's a mouthful. :) I must say, my brain sort of locks up every time I encounter the words "horizontal", "vertical", and "orthogonal". Maybe it's because I'm thinking of some innuendo rather than biz-speak. Marc

              Will work for food. Interacx

              I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner

              P Offline
              P Offline
              PIEBALDconsult
              wrote on last edited by
              #56

              Try wearing orthogonal shoes? :~

              1 Reply Last reply
              0
              • L leppie

                as my 'team leader' does not why the following wrong:

                a.SomeProp = a.SomeProp; // no funny side-effects, plain old property

                And then he asked me not to criticize him... :wtf:

                xacc.ide
                IronScheme - 1.0 beta 4 - out now!
                ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                S Offline
                S Offline
                Steve Naidamast
                wrote on last edited by
                #57

                Nothing wrong with the statement in VB.NET. In fact it is cleaner since you don't have to use any semi-colons and only one character to note a comment... :) a.SomeProp = a.SomeProp ' no funny side-effects, plain old property

                Steve Naidamast Black Falcon Software, Inc. blackfalconsoftware@ix.netcom.com

                1 Reply Last reply
                0
                • L leppie

                  as my 'team leader' does not why the following wrong:

                  a.SomeProp = a.SomeProp; // no funny side-effects, plain old property

                  And then he asked me not to criticize him... :wtf:

                  xacc.ide
                  IronScheme - 1.0 beta 4 - out now!
                  ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                  J Offline
                  J Offline
                  JasonPSage
                  wrote on last edited by
                  #58

                  1: Often Harmless way to shut up the compiler messages .. but for variables, not properties 2: If done to cause some code attached to that property to fire that isn't readily available elsewhere (or not enough time make new class or somthing) .. so be it. :) In order of importance: MUST WORK :thumbsup: NICE FORMATTING :rose: RUN FAST AS HELL :-\ "Accepted Practices" X| Innovation and Best Practices are mutually exclusive... (Good Common Sense excluded) :cool: --Jason

                  Know way too many languages... master of none!

                  1 Reply Last reply
                  0
                  • I Ian Shlasko

                    But where's the line between useless and wrong? I mean, you start here:

                    a.SomeProp = a.SomeProp;

                    Then here...

                    Debug.Assert(a.SomeProp == a.SomeProp);

                    And somehow you end up here...

                    while (true)
                    {
                    if ((a.SomeProp == a.SomeProp) == true)
                    {
                    a.SomeProp = a.SomeProp;
                    break;
                    }
                    }
                    return (a.SomeProp == a.SomeProp);

                    And then it starts to get a little weird.

                    Proud to have finally moved to the A-Ark. Which one are you in? Developer, Author (Guardians of Xen)

                    P Offline
                    P Offline
                    Plamen Dragiyski
                    wrote on last edited by
                    #59

                    Next lesson: How to increase compile time, without hurt the program speed, so our project looks huge, once compiled! (e.g. we satisfied our boss for a lot of "work" we did!) P.S. Don't ignore quotes! :)

                    1 Reply Last reply
                    0
                    • N Nagy Vilmos

                      Nope, they're a bunch of ####ers. Some older, some younger, but all f###w##s.


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

                      B Offline
                      B Offline
                      bmac
                      wrote on last edited by
                      #60

                      Could be worse -- you could be dealing with HR :-) I think we need to find/invent a term for the level beyond 'pure evil'. True, 'corporate America' would suffice but it would confuse the normtards (those who think they're normal which makes their utter retardedness so much more destructive and unbearable). And in case someone in this thread didn't already understand, the only qualification for a management position is to have proven you ability to fill in for upper management and/or Satan himself with its concomitant enjoyment of making sure that the rules are followed. I'd find Dilbert a helluva lot funnier if it wasn't so spot-on. FtMFs. Sorry to hijack your thread to rant but it's better than every other thought that comes to mind. Peace be with you and good luck!

                      1 Reply Last reply
                      0
                      • L leppie

                        Or just 42: Get a case of beer. (24 of them, coincidence, I think not, when you drunk they look the same)

                        xacc.ide
                        IronScheme - 1.0 beta 4 - out now!
                        ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                        R Offline
                        R Offline
                        Raybarg
                        wrote on last edited by
                        #61

                        Is it an coincidence that a case of beer has 24 bottles in it and day has 24 hours in it? "No."

                        1 Reply Last reply
                        0
                        • L leppie

                          as my 'team leader' does not why the following wrong:

                          a.SomeProp = a.SomeProp; // no funny side-effects, plain old property

                          And then he asked me not to criticize him... :wtf:

                          xacc.ide
                          IronScheme - 1.0 beta 4 - out now!
                          ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x)))

                          J Offline
                          J Offline
                          Joe Q
                          wrote on last edited by
                          #62

                          I never like going back to work but I like to eat and have a roof over my head. Also, I do the most interesting algorythm development and codeing at home.

                          Joe V My Blog on Testing Me, Myself, and I SGP Robotics team and FIRST Robotics

                          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