来看诊断Java代码: Java编程中的断言和时态逻辑
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。固然传统断言能够增添对Java代码实行的反省次数,但有很多反省不克不及用它们来实行。填补这一缺点的办法是利用“时态逻辑”,它是一种用于形貌程序形态怎样随工夫而变动的情势系统。在本文中,EricAllen将会商断言,先容时态逻辑并形貌用于处置程序中时态逻辑断言的工具(下一篇文章将反省之前的毛病形式和时态逻辑的使用程序)。
我们人人批准对Java代码反省得越多就越好,我们反省了断言在测试新的和改善的编程中的用法。固然传统断言能够增添实行的反省次数,但有很多反省不克不及用它们来实行。
但是,有一个办法能够填补断言留下的反省缺口。那就是利用时态逻辑。时态逻辑是用于形貌程序形态怎样随工夫而变动的情势系统。让我们会商一下断言及其特征,和时态逻辑是怎样合适反省的。然后,我们将研讨用于处置时态逻辑断言的工具。
断言及其特征
除范例反省和单位测试外,断言还供应了一种断定各类特征是不是在程序中失掉保护的极好办法。
让我们疾速扫瞄三品种型罕见的断言特征(固然是罕见的,但它们没有供应我们所需的完全局限),将它们与能够用传统断言言语暗示的程序特征的范例举行对照,并反省多线程高低文所必须的,但不成能暗示成惯例断言的断言特征。我们还将供应一些代码示例。
罕见的断言特征
传统上,断言特征分红上面三品种型:
代码块实行之前特征所持有的前提前断言。
代码块实行以后特征所持有的前提后断言。
代码块实行之前和以后特征所持有的稳定断言。
与这些典范情势的断言一样有效,它们不太会有我们但愿能在程序中持有的一切特征局限。让我们看一下典范的用断言暗示的程序特征。
可暗示为断言的程序特征
这只是能够用传统断言言语暗示的程序特征范例的冗长列表D一切程序员都但愿在代码中包括的特征:
确保任何一次性特征都仅天生一次
断言文档决不被未受权的代办署理程序会见
断言向每一个线程供应运转时机
断言体系将决不会使其自己堕入逝世锁
平安性协定利用一次性特征(利用过一次的数字)天生器来确保事件未被用过。作为平安性中的复杂观点,确保一旦天生特别一次性特征,就不再天生它,这一点很主要。另外一个主要的平安性断言是平安文档决不被未受权的代办署理程序会见。
在多线程代码中,我们但愿断言每一个线程终极城市有运转时机。我们还但愿确保体系决不会使其自己堕入逝世锁形态(即在两个或多个线程能够持续处置之前,它们正在相互守候供应资本)。
<p>
进而能拉拢大多数程序员用windows产品。并且从net网页编程网页编程AJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net网页编程可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net网页编程决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net网页编程的,如果跨平台的.net网页编程还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 是一种语言,用以产生「小应用程序(Applet(s)) 是一种使网页(Web Page)产生生动活泼画面的语言 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
页:
[1]