tag:blogger.com,1999:blog-33966934.comments2010-03-07T06:22:31.884+00:00brolocoNeil Loganhttp://www.blogger.com/profile/04189198374043005196noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-33966934.post-59461570518684300072010-03-07T06:22:31.884+00:002010-03-07T06:22:31.884+00:00@Johnboy
You're right that Code Katas are (by...@Johnboy<br /><br />You're right that Code Katas are (by design!) "laughably trivial". Just like everything that somehow serves as an introduction, practicing and/or demonstration - how could that be not the case. As your project gets more complicated, your tests also will become more complicated to implement, that's just a trivial truth of life (how could that be "misleading", everyone knows that...).<br />But it remains true in all cases that you have to care about your tests first in order to produce decent code...<br /><br />- ThomasThomas Wellerhttps://www.blogger.com/profile/16885023802503951536noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-88576973927984723892010-03-02T12:47:38.675+00:002010-03-02T12:47:38.675+00:00Yes, I would love to see lots more real-world exam...Yes, I would love to see lots more real-world examples on the web of testing against more difficult dependencies (databases for example).<br /><br />These sort of examples can be harder to find.Richard Brownhttps://www.blogger.com/profile/00271013570243148544noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-36326003634831396772010-03-02T12:33:53.292+00:002010-03-02T12:33:53.292+00:00Hmm, but I think the Katas fail to show the princi...Hmm, but I think the Katas fail to show the principle fully, or at worse mislead, because in reality life is not so clean cut as it is when writing a Prime numbers calculator :)Johnboyhttps://www.blogger.com/profile/08312607408262401998noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-58720464376702790802010-03-02T12:30:39.394+00:002010-03-02T12:30:39.394+00:00Hi Johnboy,
I think the point of the Katas is to ...Hi Johnboy,<br /><br />I think the point of the Katas is to demonstrate the principal (i.e., the overall sentiment you agree with) of unit testing.<br /><br />I agree they don't show real-world examples of unit-testing.<br /><br />RichardRichard Brownhttps://www.blogger.com/profile/00271013570243148544noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-43227328809589793142010-03-02T12:18:43.689+00:002010-03-02T12:18:43.689+00:00While I agree with the overall sentiment, I will g...While I agree with the overall sentiment, I will grit my teeth at<br /> the citation of Bob Martin and his laughably trivial Code Katas. It's always easy to write nice clean unit tests in a TDD fashion when building tiny little example applications, but I think the reality of building complex systems with evolving requirements muddy the waters somewhat. <br /><br />When he puts up a screen cast where he builds a multi threaded TCP server using the same approach, then I'll give him some dues :)Johnboyhttps://www.blogger.com/profile/08312607408262401998noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-27350035098587516832009-10-20T18:41:56.201+01:002009-10-20T18:41:56.201+01:00You should be able to do this with the unmodified ...You should be able to do this with the unmodified Exec task in MSbuild 3.5 and later. Exec has optional parameters: CustomErrorRegularExpression<br />CustomWarningRegularExpression<br />and if you want to disable the default matching as well,<br />IgnoreStandardErrorWarningFormatUnknownhttps://www.blogger.com/profile/17447429806298620928noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-83494869342478135262009-06-18T10:21:21.949+01:002009-06-18T10:21:21.949+01:00I agree with what you say in that clearly understa...I agree with what you say in that clearly understanding or (lack of) is an issue - that's assuming my utopia isn't actually a "shanty town"! :-)<br /><br />Addressing the issue of improving understanding is clearly at heart of avoiding the "sim city" effect. I'll blog on that later...Neil Loganhttps://www.blogger.com/profile/04189198374043005196noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-7114409101238887242009-06-17T14:25:38.957+01:002009-06-17T14:25:38.957+01:00I believe that the main reason it happens is that ...I believe that the main reason it happens is that one or two persons write the plumbing code and then leaves for other project assigned to them - leaving other (more junior) developers behind who haven't been there (or allowed) to take ownership and responsibility of the design and plumbing. If people don't understand what they have in front of them they can't see the beauty of it no matter how well written the code isKristian Erbouhttps://www.blogger.com/profile/15184997215715630381noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-45422122755054789192009-05-20T08:19:50.011+01:002009-05-20T08:19:50.011+01:00If we take Silverlight and Flas h as "client apps ...If we take Silverlight and Flas h as "client apps deployed through browser" we get the perfect balance of the both worlds<br /><br />I fully agree with this postNikola Malovichttps://www.blogger.com/profile/05645047764639298692noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-6668640024951631322009-04-29T21:33:00.000+01:002009-04-29T21:33:00.000+01:00This comment has been removed by the author.Jessehttps://www.blogger.com/profile/15098741249468577090noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-90717994876728638132009-04-18T11:48:00.000+01:002009-04-18T11:48:00.000+01:00There is some documentation in the project, and al...There is some documentation in the project, and also hosted at: http://nhlambdaextensions.googlecode.com/files/NhLambdaExtensions.html<br /><br />From the docs:<br /><br />.Add(Expression.Or(<br /> SqlExpression.CriterionFor<Person>(p => p.Name == "test"),<br /> SqlExpression.CriterionFor<Person>(p => p.Age > 5)));Richard Brownhttps://www.blogger.com/profile/00271013570243148544noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-59943382223475637582009-04-18T05:19:00.000+01:002009-04-18T05:19:00.000+01:00Look so great!
However, I'm still confused about ...Look so great!<br /><br />However, I'm still confused about OR logic expression. Do you have any example about that?Unknownhttps://www.blogger.com/profile/06973002196666611968noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-60417294987586514262009-03-15T19:04:00.000+00:002009-03-15T19:04:00.000+00:00Hmmm... an intersting view - don't you mean the cl...Hmmm... an intersting view - don't you mean the client app is crap? Have you had any experience developing client applications? Do you know that they are a nightmare to administer? One major purpose of a web developed application is that you don't need to know the setup of a client machine. All they should need is a web browser! As soon as you develop client apps then you have to take in a whole host of considerations odbc, domain, security, drivers (printer, graphics, sound, network), host files, versions, install, uninstall, new machine deployed with no app - that's some!<BR/><BR/>Now, really, no, no REALLY - are you serious!!!!!!!!!!!!?<BR/><BR/>Lol!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-33966934.post-31613156226671246312009-02-07T09:43:00.000+00:002009-02-07T09:43:00.000+00:00Hi Steven,My domain model has both properties, and...Hi Steven,<BR/><BR/>My domain model has both properties, and behaviour.<BR/><BR/>How did you conclude that it is anemic?<BR/><BR/>RichardRichard Brownhttps://www.blogger.com/profile/00271013570243148544noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-32924129362114813922009-02-07T02:10:00.000+00:002009-02-07T02:10:00.000+00:00>> where your DTO is simply going to be a co...>> where your DTO is simply going to be a copy of the same properties that your domain object has, I think it can still be unnecessary repetition.<BR/><BR/>So... you're saying you don't really have a rich domain model, but rather a bunch of bit-buckets (a.k.a.: an anemic domain model)? If so, you've likely got much larger problems.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-33966934.post-12814824573245187902009-02-06T17:26:00.000+00:002009-02-06T17:26:00.000+00:00Hi Pete,I agree that this is correct in general (D...Hi Pete,<BR/><BR/>I agree that this is correct in general (DRY is really for copied logic).<BR/><BR/>However, where your DTO is simply going to be a copy of the same properties that your domain object has, I think it can still be unnecessary repetition.<BR/><BR/><BR/>Regarding Martin's first law of distribution, this is born of the mistake of having a chatty interface across the wire, which I entirely agree you should avoid.<BR/><BR/>'Something' has to go over the wire though; I just prefer to double my domain objects as DTOs while they are suitable for that purpose.<BR/><BR/><BR/>Thanks for the feedback.<BR/><BR/>Cheers,<BR/> RichardRichard Brownhttps://www.blogger.com/profile/00271013570243148544noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-61440025349663218272009-02-06T17:00:00.000+00:002009-02-06T17:00:00.000+00:00Making DTO don't brake DRY as DTO don't have same ...Making DTO don't brake DRY as DTO don't have same purpose.<BR/><BR/>maybe you should read this :<BR/><BR/>http://martinfowler.com/bliki/FirstLaw.htmlPetehttps://www.blogger.com/profile/09610504958846169624noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-31306804827881670082009-01-26T22:14:00.000+00:002009-01-26T22:14:00.000+00:00Nice, looks like an easier syntax than my own solu...Nice, looks like an easier syntax than <A HREF="http://bugsquash.blogspot.com/2008/03/strongly-typed-nhibernate-criteria-with.html" REL="nofollow">my own solution</A>.Mauricio Schefferhttps://www.blogger.com/profile/15247972578064164206noreply@blogger.comtag:blogger.com,1999:blog-33966934.post-3632276211252804072008-11-13T18:13:00.000+00:002008-11-13T18:13:00.000+00:00100% rant - 0% content :) awesome100% rant - 0% content :) awesomeAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-33966934.post-19704825061468329942008-11-13T17:08:00.000+00:002008-11-13T17:08:00.000+00:00Of course, a client that asks for a "web applicati...Of course, a client that asks for a "web application" isn't really asking for HTML... So give them a "web app" - but tell them it uses some of the latest web technologies and feel free to use HTML to hold a Flash or Silverlight app - more often than not, they'll just be excited by the cool stuff and won't ever bother to "View Source"... Everyone wins ;-)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-33966934.post-49310540042925595382008-07-23T17:08:00.000+01:002008-07-23T17:08:00.000+01:00Good to know this in context. Thank you.Good to know this in context. Thank you.Anonymousnoreply@blogger.com