On Thu, Nov 27, 2008 at 7:58 PM, Mark Wilden <[EMAIL PROTECTED]> wrote: > On Thu, Nov 27, 2008 at 4:40 PM, Brian Takita <[EMAIL PROTECTED]> > wrote: > >> >> When maintaining code, I often wish I could travel back in time and >> tell the writer "Don't do that". :) > > I don't see how we can solve the problem of people not following style > guidelines by giving them another style guideline to follow. :) Honestly, I'm not going to get my panties in a bunch if I see code with def self.method_name in it. I don't care what you do with your code, unless I need to maintain it. If there are problems with the code, I'll consolidate these methods into a class << self block so I can have a better understand over what is going on.
I think that if we were going to follow a style guideline, class << self is more consistent. It leaves less decisions to the programmer, less opportunity to make things messy, and is more powerful. Some people have a harder time grasping nesting and some people have a harder time with less consistent code. Choose your poison. > >> module methods have encapsulated state. > > Probably 99% of the (non-framework) class methods I've seen have no state. Thats interesting. I can't give you a percentage, but I often either see state, class methods referencing other class methods (which gets very confusing with def self.method_name btw) and passing along the same arguments. > >> We all have seen YAGNI >> bite us in the ass too, especially when it means turning off the >> brain. I don't think 2 extra filler lines of code make that strong of >> an argument, when there is more than one class method (and even if >> there is one class method IMO). > > If writing those two lines of code are unnecessary for any of the uses you > and others have described, I would call that turning off the brain. :) I just explained that its a trade-off, so you can choose to ignore the trade-off. I'll let you think about that one. I suppose that we can write our entire program with one LOC. I suppose thats following YAGNI. Hell, why use do end? Its two extra lines of code all over the place. We can also remove lines of code by using ; everywhere. No more newlines. Awesome :) > >> >> I think we also like how consistent conventions and delineation of >> responsibility make code faster to read and understand. > > Agreed, but I think this begs the question under discussion. I don't follow. Can you clarify? > > ///ark > > (For those who are tired of this non-RSpec-related discussion (but > apparently find themselves forced to read it), I really will try to wrap up > my contribution. I don't have the time for the Ruby list, so this is the > only place I have to talk about fun stuff like this. ObRSpec: the discussion > did illuminate a situation where tests can pass but the development app can > fail - when using class variables in RoR.) Yeah, state in class > > _______________________________________________ > rspec-users mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
