Path: csiph.com!x330-a1.tempe.blueboxinc.net!aioe.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: markspace <-@.> Newsgroups: comp.lang.java.programmer Subject: Re: About using assertion Date: Mon, 09 May 2011 11:40:53 -0700 Organization: A noiseless patient Spider Lines: 33 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 9 May 2011 18:40:56 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="FaSG3tOezrXhBMTb3srAdg"; logging-data="12074"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/B5ov1N+BBQzhIDFEJJ49iqSsNK7xxpbo=" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 In-Reply-To: Cancel-Lock: sha1:uHI9s3UbMK9FN+y3IF8QOjBf1LM= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:3870 On 5/9/2011 7:36 AM, byhesed wrote: > I am reading a book about object-oriented design pattern. > The book, Object-Oriented Software Development Using Java 2/e by > Xiaoping Jia, says that... > >     Using assertions derived from the preconditions for all methods is > known as defensive programming. >     Its aim is to prevent a component from being misused. > >     Design Guideline: Use Assertions Aggressively > >     Each method should include assertions on the preconditions and > postconditions of the method and invariants of the class > > Do I have to always use assertion? > Is it better to use assertion? > > What's your idea? Personally, I don't use assertions very much. Instead, I rely on aggressive unit testing rather than aggressive use of assertions. This doesn't mean Xiaoping is wrong. I should probably use assertions more than I do. My advice: Use assertions as you think best. Observe how your opinion and needs change over time. Should you have used them more? Or should you rely on them less? These things aren't fixed pieces of knowledge, like the stars in the night sky. The state of the art in computer science changes over time.