totally agree with you on this :)
On Dec 25, 2010, at 9:44 PM, Michael Haufe (TNO) wrote: > On Dec 25, 6:36 pm, fernando trasvina <trasv...@gmail.com> wrote: > [...] >> so you always check your types in your factories? >> and always check for the interface on your apis? >> is this efficient? > > I always typecheck the arguments passed to functions: > > function sq(x){ > if(typeof x != "number") > throw new Error("Invalid argument, number expected."); > return x * x; > } > >> so the draw method should draw anything that complies with the interface? > > My point to Garret was that even if the proper method names were > present, it would not necessarily mean that they are appropriate > implementations. Checking for the existence of a field/method is not > enough and that it is more robust to enforce the categorization of the > objects by their inheritance relationships: > > function draw(s){ > if(!(s instanceof Shape)) > throw new Error("Shape expected"); > //call methods of the Shape instance > } > >> how many mutations of objects do you have that could not be written as >> extensions or objects? > > The point is to develop code so that it won't matter. If you build a > code base large enough that it won;t all fit in your head, or if you > expose it to the world to use it is important to enforce certain rules > and not fly by the seat of your pants. > >> is this mutations so big to check the interface every time (this will mean >> that you don't even know how your code is behaving to check the api of the >> object)? > > using the instanceof operator is much faster than manually checking > individual methods for their existence. > >> how about check for drawable type. > > if(element instanceof Drawable) ... > >> do you really code like you code in the emails? or can you send a real code >> when the examples you provide are necessary? > > Do I code with contrived examples? Of course not, but I don't have the > patience necessary to compress and present the semantics of a problem > in a syntactic way that is consumable by an unknown number of people > of varying levels of ability. > > -- > To view archived discussions from the original JSMentors Mailman list: > http://www.mail-archive.com/jsmentors@jsmentors.com/ > > To search via a non-Google archive, visit here: > http://www.mail-archive.com/jsmentors@googlegroups.com/ > > To unsubscribe from this group, send email to > jsmentors+unsubscr...@googlegroups.com -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/jsmentors@jsmentors.com/ To search via a non-Google archive, visit here: http://www.mail-archive.com/jsmentors@googlegroups.com/ To unsubscribe from this group, send email to jsmentors+unsubscr...@googlegroups.com