0%

类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。

1.先定义一些基础概念

Program Errors

  • trapped errors
    导致程序终止执行,如除0,Java中数组越界访问
  • untrapped errors
    出错后继续执行,但可能出现任意行为。如C里的缓冲区溢出、Jump到错误地址

Forbidden Behaviours

语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.

Well behaved、ill behaved

  • well behaved: 如果程序执行不可能出现forbidden behaviors, 则为well behaved。
  • ill behaved: 否则为ill behaved...
阅读全文 »

定义

模板方法模式是类的行为模式。
准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

阅读全文 »

敏捷开发在中国的实践面临怎样的挑战?
敏捷开发作为互联网时代的“产物”,在商业模式的运作下被迅速推广,它的确解决了一部分传统开发模式遇到的问题,如对需求的变化能快速做出反应,但同时也引发了许多问题,敏捷开发提倡的许多环节如结对编程、用户故事、评审会议等都有着较大的争议。

阅读全文 »

配置库管理
软件质量目标

这一册主要是简述了软件工程的改进,其实就是质量保证的方方面面过程域。
软件过程是一个为建造高质量软件所需完成的任务框架,软件过程改进包括下面四点:

  • 1、软件过程定义
  • 2、软件过程文档化
    包括软件过程定义文档化和过程执行文档化两部分
  • 3、软件过程培训
  • 4、软件过程强制执行
阅读全文 »

测试是检验和确认。我们都知道,它需要2个V(verification&validation),来使测试完成。
在今天的文章中,我们将进一步了解静态测试。它也被称为检验(verification)。我们将学习有关它的一切,并要特别强调这一点,因为动态测试往往受到更大的关注,并有无数的文章详细的进行了说明。
然而,如果不对与静态测试相对应的动态测试是什么进行解释,那讨论就将是不完整的。动态测试是验证(validation),另一个V。动态测试就是你使用实际的系统(不是什么代表系统的工件或模型),提供输入,获得输出并与预期运行输出的进行比较。它是以发现错误为目的的在系统上实际动手检验的工作。

阅读全文 »

引言

Code Review的作用和意义已在很多技术团队内达成共识,可是很多时候并未被有效执行,甚至被认为是一项费时费力的工作。借助一些工具可以更容易,更有效率地来进行Code Review,本文介绍的Jupiter即是其中之一。

阅读全文 »

晚唐时期的罗隐是一个四海闻名的才子,但却一生怀才不遇。
他本名罗横。相传当年罗秀才以寒士赴京应举,在钟陵筵上与颇有才思的歌女云英同席。谁曾想他先后十次考进士均未考中。在外流浪十二年后,落第书生终决心离开京城,改名罗隐,不再参加科举。(也有说因得罪权贵,礼部侍郎的官职被罢免。)回乡途中他路过钟陵,再次和云英不期而遇。西风瘦马时节,这时的云英仍隶名乐籍,未脱风尘,见到眼前的这位罗秀才竟还是当年的一身布衣,惊讶不已。罗隐不胜感慨,遂赠诗曰:
钟陵醉别十余春,重见云英掌上身。
我未成名君未嫁,可能俱是不如人?
                罗隐 《赠妓云英》
“云英未嫁”的典故即出于此。
一个是落第秀才,一个是半老歌女,地位虽有悬殊,命运却是相似。有诗评说,这两句与其说是反讥云英,倒不如说是借以自嘲。罗隐把成名与嫁人相提并论,可见在古人眼里,女子嫁人与考秀才一样乃是人生最大事业,十年已过,还见云英仍然未成就事业,罗隐不免有同是天涯沦落之感,重见云英掌上身,意思是可见你我事业都未成功,你又何苦来讽刺我?(网评)

伯罗奔尼撒战争(Peloponnesian War)是以雅典为首的提洛同盟与以斯巴达为首的伯罗奔尼撒联盟之间的一场战争。这场战争从前431年一直持续到前404年,期间双方曾几度停战,最终斯巴达获得胜利。
这场战争结束了雅典的经典时代,也结束了希腊的民主时代,强烈地改变了希腊的国家。几乎所有希腊的城邦参加了这场战争,其战场几乎涉及了整个当时希腊语世界。在现代研究中也有人称这场战争为“古代世界大战”。

阅读全文 »