电影源代码观后感

2024-07-27

电影源代码观后感(共8篇)

1.电影源代码观后感 篇一

不知道大家看科幻片是因为什么,或者看完之后有什么感受。对于我来说,看科幻片的第一感觉是美国人又拯救了我一次,我真幸运啊!当然也不是这个感受了,真实的感受是当你看科幻片的时候,你的大脑会超越现实,超越人生,你会看到人类或者是你自己是多么渺小,你现在做的事是多么简单和不值得一提,进而你就会觉得自己活着多好啊,也就不必为生活中或工作中的一些鸡毛蒜皮的小事烦恼和焦虑了,这就是看科幻片的效果和喜欢看的理由。

最可怕的是它预言地球即将毁灭,主人公被迫在有限的时间内采取行动,以阻止预言的实现。以前看电影很喜欢看有打斗,有激烈场面的电影,感觉那种电影才是精彩的,随着自己的认知和知识水平的增加,不再是简单的看画面了,而是会更深的看到他的内在的东西,他的思想和细节。看科幻电影是对现实和未来的一个思考,我是很喜欢看科幻电影的,以前经常看007系列的电影,感觉那才是真正的电影,也是看了科幻电影才对一些军事,核武器,未来元素有了一定的认知。科幻电影有他的精彩和意义,深入其中你会发现精彩。

看科幻电影最大的感悟是什么?对于我的感受而言,我最大的感受就是让思想逃离现实,感悟生命,感悟人生,不在为生活中那些小事而烦恼,也不要为名,为利而怎么样,其实生命就是很短暂的,也是很脆弱的,指不定哪天活那天死那。看到科幻电影的那一个个惊心的镜头,也许有一天你就会是镜头的哪一个,如果真的有那么一天,你想想你所谓的钱,你所谓的利,你所谓的权,都算个什么啊! 还不是都像浮云一般,如蝼蚁一样。所以那我觉得活着只要努力就好,其他的不要去刻意去怎么样。看到许多人为了钱,权,出卖亲情,出卖友情,你值得吗?我还年轻许多不懂,其实我也不知道活着的道理,只是有些简单的感悟,想说一下,想表达一下而已。活着到底为了什么,让我用剩下的人生去慢慢探索吧!希望可以得到这个问题的答案。

2.电影源代码观后感 篇二

如果一个软件的源程序中的一个代码段和同一程序中的另一个代码段在结构或语义上类似,这些代码段就成了代码克隆。 代码克隆的存在增加了软件维护的困难。如果所修改的部分有克隆的代码段,这些克隆代码段也常常需要修改。这一情形有三个主要缺点:第一,增加了编辑修改的工作量,因为软件开发者要修改所有的克隆代码;第二,因为修改不是同时进行,难以确保修改的一致性;第三,要靠人力找出所有的克隆不是一件容易的事,难免会漏掉一些克隆代码。如何检测出源代码中存在的克隆代码因而成了软件工程研究中的一个重要课题。

1 代码克隆问题

1.1 代码克隆的定义

基于对类似度的定义的不同,代码克隆也有不同的定义。 最严格的克隆定义要求两个代码段之间完全相同,即一段代码是另一段代码的逐字重复。这样的定义很严格,没有考虑代码格式的不同,或系统性的变量名置换等引起的词法上的表面区别。以图1中的两个程序A和B为例,按照完全克隆的定义,只有A的行1和B的行2才是一对代码克隆。这样严格的定义并没有什么实际应用价值。更一般的代码克隆的定义不考虑程序段之间由于格式或变量名的不同而引起的词法上的区别,而着重于程序段之间的结构和语义上的类似。按照这一定义,图1的程序A和B有两个代码克隆对:A的行1至行4与B的行2至行4;A的行5至行7与B的行6至行7。

进一步观察上面的两个代码克隆对,可以发现这两个代码克隆对之间只被程序B的行5隔开。如果允许克隆对中有少量不同的语句的存在,上面的两个克隆对就可以合并成一个克隆对,即A的行1至行7与B的行2至行7构成一个克隆对。这样当中含少量不同语句的克隆对一般被称为断层克隆。考虑到程序员在编程过程中采用cut/paste后通常会进行修改,增加或删除一些语句,检测断层克隆就变得很有必要。

1.2 代码克隆现象和原因

代码克隆在软件系统中很普遍。即使是业界公认的高质量系统如X Windows System仍有19%的代码克隆存在[1],Linux的核心部分有15-25%左右的代码克隆[2]。一般软件系统中的代码克隆的比例更高,有些甚至高达38%[1]。

软件开发者常用的copy/paste是造成代码克隆的主要原因之一。尽管几乎所有的软件工程教科书都反对copy/paste,要求软件开发者把相类似的操作抽象成宏代码或函数,避免代码克隆的存在,但是对那些系统中存在的代码克隆的分析发现,有些代码克隆的存在是不可避免的。其中的第一个原因是对系统效率的考虑,因为函数调用会带来额外的系统负担,在很多情况下,软件开发人员在权衡利弊后会选择克隆代码。其次,有些系列操作在问题领域中没有对应的基本的概念,难以抽象成一个意义的函数。如果勉强把它们抽象成一个函数,会大大增加程序理解的难度。比如说,调用库函数时往往需要一些固定的操作组合等等。第三,象各种驱动程序等软件模块在结构上大致相同, 但具体细节多有不同,难以抽象为函数进行系统性的复用。

2 克隆检测的一般过程

如图2所示,检测源代码中含有的克隆代码由三个主要步骤组成:中间形式生成,原型克隆检测和克隆报告生成。

源代码是为编译器以及软件维护人员而编写的,其中含有大量与克隆代码检测无关的信息。克隆代码检测一般无法对源代码直接进行操作,必须要从源代码中抽出只与克隆代码检测有关的信息,生成便于进行克隆检测的中间形式。

原型克隆检测对源程序的中间形式进行分析,检测出具有相同的中间形式的程序段。由于这一过程的结果只是在中间形式上的相同,而不一定是最后所要求的代码克隆,我们称之为原型克隆。通过对这些原型克隆的分析和剪接处理,克隆报告生成把原型克隆还原成有意义的源代码克隆对,输出具有良好可读性的克隆报告。把原型克隆还原成源代码的克隆需要中间形式和源代码之间的对应关系,因此,中间形式生成过程还需要生成一个程序格式信息表格,用于纪录中间形式和源代码之间的对应关系。

克隆代码检测方法取决于采用什么样的中间形式来表示程序源代码。抽象语法树和Token序列是两种主要的中间形式,本文将在下面两节里讨论基于这两种中间形式的检测方法。

3 基于抽象语法树的方法

基于抽象语法树(AST)的方法利用源程序的AST作为代码克隆检测的中间形式。它首先对源程序作句法解析,生成抽象语法树,然后把每一棵子树与其他的子树进行比较,找出相同的子树从而找出克隆的代码段。对有N个结点的AST,这一子树逐一比较过程需要O(N^3)的计算时间,由于一行程序语句平均会生成10个抽象句法树结点,实际上的处理时间是O(L^4), L为程序的语句数。这样的方法显然无法处理大型的程序,因此本方法的关键在于提高子树的比较效率,主要有直接散列法和特征矢量法两种方法。

3.1 直接散列法

直接散列法利用散列函数把每一个树结点映射到散列值,然后根据散列值对子树进行比较。AST中的仅含有标识符的叶子结点都被映射到同一散列值,以消除仅仅由标识符而引入的区别。

子树T1和T2的相似性可用下列公式进行计算:

Sim(T1, T2) = 2 * S / ( 2 * S + T1-only + T2-only)其中S表示T1和T2所含有的结点中具有相同散列值的结点的个数,T1-only表示仅在T1中出现的结点的个数,T2-only则表示仅在T2中出现的结点的个数。一旦两个子树的相似性超过一个预定的阈值,就可以把它们当作代码克隆。克隆检测的精确度可通过对阈值的设定来调节,如果设定的阈值为1.0,那么只有那些仅在标识符上有所不同的代码段才会被判断成克隆代码。

3.2 特征矢量法

特征矢量法用多维矢量表示AST结点的结构信息,每一维代表程序语言的基本成分。文献[4]提议用下列9维特征来表示C和Java源代码:

[标识符,常量,赋值,增1,数组,条件,表达式,宣言,循环]

每一个结点的特征矢量值通过后序遍历计算,父结点的值是所有子结点的值和父结点本身的特征值的矢量和。图3例示赋值语句x=1的特征矢量值及其计算方式,该语句的特征矢量值是[1],因为在其AST中,它的父结点是赋值语句,其特征值是[0,0,1,0,0,0,0,0,0];它还有两个子结点,分别是标识符[1]和常量[0,1,0,0,0,0,0,0],把上面三个特征值相加即得到这一赋值语句的特征矢量。

这样一来,子树的类似性的比较就变成了特征矢量的比较。可以考虑简单地采用计算矢量间的欧几里德距离来计算子树的类似性。为了避免逐对比较所需的大量计算时间,可以用合适的散列函数把矢量映射到散列值。LSH(Locality Sensitive Hashing)[5]就是这样的一种散列法,它能把距离相近的矢量映射到同一散列值上,距离较远的矢量映射到不同的散列值上。

4 基于Token序列的方法

基于Token序列的克隆代码检测法对计算机源代码作简单的词法分析,把源代码转换成Token序列,通过检测Token序列中的重复序列找出克隆的代码。

4.1 Token序列生成

为提高克隆检测的效果,基于Token的检测方式会采取下列几个步骤对源代码作变形处理生成源代码的Token序列以消除源代码在表面上的区别。

最基本的变形处理是删除所有的对程序功能没有影响的注释部分和各种冗余的空白字符(如重复的空格和制表符等)。不同的方法对换行符的处理有些不同。比如说CCFinder[6]删除所有的换行符,把整个程序变成一行Token序列。删除换行符有利也有弊。它的优点在于可以最大程度地消除程序格式的不同,但它也会增加系统的虚报,即检测出实际上并不是克隆的代码。同时由于Token序列中不再有换行符,这一方法也会报出跨行的代码克隆,需要在后期处理的克隆报告生成中加以删减,把克隆代码的起始点和终止点移到语句行首与行尾。

第二类的变形处理删除程序中的冗余结构。这一类处理与程序设计语言的特性有关系。以Java程序为例,可以考虑删除import语句、package定义语句等;还可以删除else、break、const、protected、private、public、static等保留字。这些字符对要生成执行代码的编译程序有意义,但对基于Token的克隆检测没有影响。这一类变形处理的目的是缩短最后生成的Token序列。由于检测Token序列中的重复子序列的算法复杂度与Token的长度有关,缩短Token序列既可以提高计算的速度也降低对内存的要求,从而提高检测系统的计算效率和可扩展性。

第三类的变形处理把程序中的各种标识符用特殊的符号代替。标识符的代入有下列几种方式。第一种代入方式保留标识符的类型的区别,把同一类型的标识符转换成同一符号,不同类型的标识符转换成不同的符号。比如说所有的整数类型的标识符都用1表示,而所有的字符类型的标识符都用2表示;同样常数也按其类型转换成特殊符号;用户定义的函数名全都转换成同一个特殊符号。第二种代入方式比较彻底一些,用同一个特殊符号代替所有的变量名、函数名和常数。第三种代入方式最彻底,用同一个特殊符号代替程序中所有的(包括程序语言予定义的)变量名、函数名、类型名和常数;这种参量代入后产生的Token序列中除了运算符和程序语句结构里的保留字(如if, while)以外就只有特殊符号了。图1中的程序A经第三种彻底代入后就变成了下列的Token序列:

$=$;$=$[$];$=$[$];for($=$;$<$;$++) {if ($[$]>$)$=$[$];if($[$]<$)$=$[$];}

符号代入的彻底程度和克隆检测的效果有直接的关系,符号代入范围的扩大可减少漏报,但会同时增加虚报,相反低范围的符号代入会导致漏报的增加但也会减少虚报。根据检测工具的具体目的和用途,设计人员应采用相应范围的符号代入。

经过上述变形处理之后,程序源代码就变成了Token序列。

代码克隆检测问题也就和检测重复的子序列问题相同,可以利用各种字符子串的检测算法或数据挖掘中常用的频繁项集(frequent itemset)法。

4.2 后缀树检测

后缀树是一种为快速找出字符子串而设计的树结构[6],当用它来表示一个字符串S时,字符串S中的每一个后缀子串都有一条从根结点到叶子结点的路径。其叶子结点代表子串的结束,叶子结点的个数与字符串S中字符的个数相同;边代表一个共同的字符子串。图4是abcdabe的后缀树,它共有7个后缀分别为{1:e, 2:be, 3:abe, 4:dabe, 5:cdabe, 6:bcdabe, 7:abcdabe}, 其中后缀2和6有共同的子串b, 后缀3和7有共同的子串ab.

利用后缀树检测克隆代码时,我们首先把源程序生成的Token序列当作一个字符串,并构建出它的后缀树,然后从后缀树中抽出共同的子串[6]。

4.3 频繁项集挖掘

抽出频繁项集是数据挖掘中常用的方法。设定一组项的序列集合D={abcd, abce, bced, abcf, cd}, 其中3-项集abc的出现频率是3,即有3个支持度;2-项集cd的出现频率是2,其支持度为2。 D中所有满足支持度为2以上的频繁项集为{abd:3, ab: 3, bc: 4, cd:2, a:3, b:4, c:5, d:3}。频繁项集挖掘就是从给定的序列集合中抽出满足预定支持度的所有项集。各类的频繁项集挖掘法都可以用来检测代码克隆。

CP-Miner[7]尝试了使用闭合序列模式(closed sequential pattern mining)挖掘算法检测代码克隆。该算法的基本原则是从k-1项的频繁项集和1项的频繁项集中计算k项的频繁项集,如果k项集是频繁项集,那么它的所有子序列都应该是频繁项集。以上述D为例,为了计算3项频繁项集,它首先计算支持度不小于阈值(比如说2)的2项和1项频繁项集,分别标记为F2和F1, F2={ab, bc, cd}, F1={a, b, c, d, e}。然后它连接F2和F1得到 F′3={aba, abb, abc, abd, abe, bca, bcb, bcc, bcd, bce, cda, cdb, cdc, cdd, cde}, 再计算 F′3中的各个项集是否满足预定支持度,得到最后的3项频繁集F3。为提高计算速度,在具体算法中,该方法首先计算出F2中的每个项集t在D中存在的后缀集合Dt,比如说,Dbc={d, e, ed, f}, 在连接过程中,只有当Dbc中所有元素的首项的出现频率满足预定支持度,它才和bc连接,加入到F3中。在上例中,bc只和e连接, 因为Dbc中的三个首项d, e, f当中,只有e有两个支持度(e和ed)。所以F3中也只有bce,不包含bca, bcb, bcc, 和bcd。依次类推,计算出所有的频繁项集。

由于频繁项集挖掘是对一个序列集合进行的操作,和后缀树法不同,它要把源程序分割成一组序列。根据代码克隆检测的目的,可以把程序的Token序列按文件单位、函数单位、或语句段进行分割,得到一个Token序列集合。

4.4 Token序列的散列法

后缀树法和频繁项集法的检测速度和效率都和程序的Token序列长度有关。为进一步提高检测的速度,可以考虑采用散列法缩短最后生成的序列。在从源代码生成Token序列时,只删除那些跨赋值语句行的换行符,但保留其他的如循环和条件语句中的换行符。然后用一个散列函数把每一行的Token转换成一个散列值,因为相同的Token行都有相同的散列值,代码克隆检测就可以变成检测重复的散列值序列。如果把每一个散列值当作新的Token,上述的两种方法都同样可以适用。这个经过散列后生成的新的Token序列要比原来的序列短得多,一般只有5分之一左右,从而可提高近5倍的检测效率。

5 结论与展望

本文阐述了代码克隆的概念、存在原因、以及代码克隆的检测方法。由于代码克隆对软件的理解、维护和进化有及其重要的意义,是近年来软件工程界的一个热门研究课题。

目前对代码克隆的研究着重检测,其主要目的是在检测后尽量通过抽象、代码重构等手段消除软件系统中存在的克隆代码,以提高软件系统的质量和可维护性。但是从对造成代码克隆现象原因的分析可以知道,并不是所有的代码克隆都可以消除的。因此有些代码克隆可能会长期在系统中存在。为了克服代码克隆带来的维护上的困难,如何帮助软件开发人员更好地管理难以消除的克隆代码是另一个尚待研究的课题。

参考文献

[1]Baker B S.On finding duplication and near-duplication in large soft-ware systems.In Proceedings of the13th Working Conference on Re-verse Engineering,IEEE CS Press,1995:8695.

[2]Antoniol G,et al.Analyzing cloning evolution in the Linux kernel.Journal of Information and Software Technology,2002,44(13):755765.

[3]Baxter I D,et al.Clone detection using abstract syntax tree.In Proceed-ings of1998International Conference on Software Maintenance.1998:368377.

[4] Jiang L,et al.DECKARD: Scalable and accurate tree-based dection of code clones, in Proceedings of International Conference on Software Engineering,2007.

[5]Gionis A,Indyk P,Motwani R.Similarity search in high dimensions via hashing,in VLDB1999:518529.

[6]Kamiya T,Kusmoto S,Inoue K.CCFinder:A multilinguistic token-based code clone detection system for large scale source code.IEEE Transactions on Software Engineering,2002,28(6):654670.

3.电影《道士下山》观后 篇三

饥饿难忍的他,抢了医科大夫崔道宁(范伟饰演)准备带回家给自家小娘子享用的香喷喷的荷叶鸡。憨厚善良的老崔,不仅不责怪,还将他收为徒弟,有吃有住有工作,这着实让这个初入江湖的小道士狠狠高兴了一把!在他看来,世俗的生活,远比单调清贫的道士日子滋润、畅快、美好得多。然而,高墙大院内的阴暗险恶与鬼气森森,很快地,劈头盖脸,扎扎实实地给他抡了一巴掌,差点儿把他给打晕了:先是目睹师娘玉珍(林志玲饰演)与崔道融(吴建豪饰演)之间的叔嫂乱伦。奸情识破,丧心病狂的弟弟崔道融,转托玉珍之手,将掺和了毒药的“大力神丸”给哥哥吞服——“石榴裙下死,做鬼也风流”,纵欲无度的老崔一夜暴毙。幸福的日子,还没过上几天,小道士就失去了入世后的第一座靠山。面对无耻与背叛,小道士没有听从道长“与世无争”的临别劝诫,血脉贲张,他选择了复仇,潜入水中,亲手凿穿了滥情的画舫,让现代版的西门庆与潘金莲双双命丧湖底,为师傅报仇雪恨。

以恶治恶,徒手杀生,背弃了道义与修行,小道士自知罪孽深重,在禅寺佛像前长跪七日,闭关思过,以求得灵魂的片刻安宁,打算弃恶从善,改过自新,续开药铺,重新做人。可树欲静而风不止,该来的还是来了,麻烦不断,追杀接踵,魅影重重,——潘多拉的魔盒一旦打开,就再也关不上了。

一个叫做赵心川(陈国坤饰演)的武林中人,学得盖世武功,即将出师。他来到崔记药铺,想请小道士为他调和一坛上等的名贵药酒,孝敬师傅。一心想学得“九龙合璧”真功夫的小道士,按捺不住好奇心,躲在房檐,观战赵先生与师傅彭乾吾(元华饰演)切磋武艺。徒弟击败了师傅,踌躇满志,转身告别师门。不提防师傅暗箭伤人,死于暗藏了弹簧尖刀的师傅那把黑色雨伞之下——出师之日,即是赵先生辞世之时。大雨滂沱,赵先生死不瞑目。师傅的狠毒与绝情,让小道士目瞪口呆,惊惧交加。是福不是祸,是祸躲不脱。追凶的人很快就找上门来了,赵心川的同门师弟,也就是师傅的亲生儿子彭七子,受到父亲的唆使,追溯药酒的来历,顺藤摸瓜,追至药铺。杀人是为了灭口,彭七子煮了一盆香喷喷的肉,里面放了毒药,准备药死小道士。结果二人先后中毒,药性发作,面部肿胀,头发倒竖,产生迷幻,决定合计干一回大事,去抢银行,抢道观内的功德箱。一个叫做周西宇的道士(郭富城饰演),一把扫帚,呼风唤雨,出神入化,横扫落叶,以太极之手,舒缓推收,点到为止,轻轻松松便击溃了两个误食毒品的迷途年轻人。志在学尽天下武功的小道士,心悦诚服,拜周西宇为师。在道观习武的短暂日子里,他不可抑止地爱上了一心求子的美丽少妇,情欲泛起,蠢蠢欲动。身怀武林独门绝技“猿击术”、隐姓埋名、与世无争、深藏道观之内的周西宇,竟是一心想独霸武林的彭乾吾苦苦追拿多年未果的同门师弟,心腹大患,必欲除之而后快。一场武林决斗又在观内灶台炉火之上精彩上演。周西宇打败了彭乾吾。彭七子在角落里拔出手枪,三枪连发,周西宇命悬一线。弥留之际,周拜托小道士,请师弟查先生(张震饰演)惩处败类,为兄报仇,替天行道,捍卫武林尊严。名躁梨园的大武生查先生,推掉了警察局长赵笠人(林雪饰演)为小妾精心安排的戏曲精彩派对,起身前去寻仇。身兼青龙帮帮主、黑白通吃的警察局长恼羞成怒,设计安排彭乾吾与查先生巅峰对决,二虎相争,必有一伤,然后伺机一一翦除。查先生取得了胜利,却不打算结果彭乾吾的性命。冤有头,债有主,他要亲手杀死向同门挚友开枪的恶小子彭七子。爱子心切的彭乾吾哀求查先生放过儿子,主动将查先生的长矛插入胸口,自寻死路。警察局长掏出手枪,“啪啪啪”,也是三枪,查先生倒在了血泊之中。正义重被唤起,彭七子良心发现,与小道士同仇敌忾,并肩战斗,大无畏地迎着警察局长的枪口,向着逃窜的警车狂奔复仇,烈焰升腾,局长葬身火海。尾声处,晨曦中,一只猿猴,睁着清澈的眼睛,满目含情,温柔地凝望着脚下的大地……电影结束了,何安下的江湖之路,似乎才刚刚开始,等待他的,是全面抗战已经爆发,华北之大,已容不下一张安静的书桌;食不果腹,上哪儿去寻求救赎武林、重振江湖的灵丹妙药与独门秘笈呢?何安下——何安下?哪个地方能把年轻道士的身与心安顿、放下呢?

整部电影画面精美,色彩绚丽,打斗激烈,武打设计新颖炫目,情节曲折离奇,对白语言颇具思想深度,3D制作活灵活现,表演搞笑夸张,形神兼备,笑果不断,剧场内不时响起阵阵开怀的笑声,一扫此前观看陈氏《霸王别姬》《荆轲刺秦王》《无极》《梅兰芳》《赵氏孤儿》等系列影片时的沉默与沉重。应该说,这部最新的喜剧电影,开拓了陈凯歌固有电影风格的新路,敢于打破“追求主题凝重、思想至上、陷入传统文化不能自拔、镜头语言近乎嗜洁成癖”的既有风格,在较短的时间内,完成了影片向着市场化、大众化、商业化快速靠拢、主动妥协的转型之路。

然而,边看边想,走出影院继续思考,冷静之后,发现问题还是蛮多,甚至是有点儿不敢相信自己的眼睛:难道这部电影真的是陈导拍摄的吗?他怎么可以拍成这样?他究竟想干什么?他究竟想表达什么?

不同于新生代导演的轻装上阵与敢尝敢试,陈导的电影一向以干净、凝练、绮丽、追求思想深度、特文艺范儿示人。《霸王别姬》的忧郁感伤,《荆轲刺秦王》的苍凉悲壮,《无极》的空灵玄妙,《梅兰芳》的诗意华美,《赵氏孤儿》的凝重深沉,无不刻上了陈凯歌有别于他人的鲜明的艺术标记。世界在变,社会心态也在跟着变,观众的欣赏口味愈益分化。除早年的《霸王别姬》获得几乎众口一词的普遍赞誉外,后来陆续推出的几部电影,市场票房并未收获预期,口碑莫衷一是,吐槽铺天盖地,呛声简直可以把这位身材伟岸的老汉给淹没了。吃了很多的堑,智慧自然也跟着见长了许多。我从百度上得知,陈导今年已经63岁了。3年前,筹拍这部影片时,他正式步入花甲之年。——“人生六十从头来”,这一次,他决定放低身段,敞开心扉,虚怀若谷,从善如流,虚心接受广大观众有益的意见与建议,扎扎实实地投身于当代最可爱的观众群热情的怀抱了!endprint

你们不是嫌我太冷么?太绷着么?太端着装么?太文艺范儿么?太喜欢不厌其烦地说教么?好!这一回,我都听你们的!你们喜欢什么,我就来什么!

于是,剧本的选择,咱选武侠的,天马行空,动感十足(《道士下山》一剧,根据徐皓峰同名传奇小说改编);人物所处的年代,不远不近,别人的成功之作,都是安排在晚清民国,咱也这么安排;色情、暴力、悬疑、伦理颠倒、暧昧的呻吟、床戏、凶杀、复仇、帅哥、美女、高颜值、西门庆、潘金莲、懦夫、遁世的英雄、青春期的道士、抽大烟的犯了错的公子哥、中毒变形面目狰狞的鬼脸、一心想怀上孩子不惜勾引出家人的美丽少妇、唱着昆曲鸟笼养鸡欺兄霸嫂的败家子、指点迷津普度众生的老方丈、仙风道骨的老道长、消极避世退隐江湖的侠客、与世无争行走梨园的大武生,还有时下议论纷纷容易吊起大众普遍好奇之心的公共话题“基情、出柜”,专横无能、黑白两道的警察局长,阴险狠毒的武林恶棍,上天入地空穴来风的武功秘笈,错综复杂的江湖恩怨,影射官场权力场名利场争权夺利人情之风裙带之风不正之风泛滥的“父子兵”、“情人档”、“门客网”的现实桥段等等等等——三教九流,世间百态,包罗万象,盘根错节,信手拈来,复制粘贴,改装加工,飞禽走兽,鲍鱼鱼翅,人参海马,佛跳墙,一锅煮——总之,观众要什么,给什么;差什么,补什么,目的只有一个:就是要拍得好看,就是要观众发笑,就是要引起大众人群的观影冲动,买票看戏。至于吐槽,甚至是呛声骂声,咱其实早就已经做好了这个挨骂挨批挨板砖的心理准备!——“我是功成名就、大名鼎鼎的陈导,我怕谁?我是一个决心向商业电影靠拢的准备换个玩法的陈导,欢迎拍砖,欢迎吐槽!”——自黑、低调、从俗、商业化到了这般田地,先前苦心经营、苦心孤诣打造无数好剧的有着“强烈人文意识与文化担当”的陈大导演,这回似乎是豁出去了!

至《道士下山》一剧2015年7月3日正式面世,陈导已然面貌模糊,甚至有些陌生,我们几乎快要不认识他了,如同何安下辛辛苦苦将观中落英清扫归堆,周西宇只消扫帚一挥,落花便重又泛滥开来,铺满院落一地——“从善如登,从恶如崩”,说的是这个意思么?这不能不说是件令人遗憾的事情。但这又能全怪他老人家一人么?不能的,社会环境变了,文化生态变了,与其总是吃力不讨好,不如主动迎合,一锤子买卖,行就继续,不行咱紧急刹车!

然而,如同潜入虎穴狼窝的杨子荣,再怎么乔装打扮,化作了土匪流寇,打入威虎山,骨子里,终是难掩其英雄本色——这个比喻,其实讲的就是拍摄了这部商业媚俗喜剧电影《道士下山》的总导演陈凯歌先生。您可千万别小瞧了化作街头帮闲体验生活的大家贵族那份举手投足间掩抑不住的骄傲与孤高,您可千万别低估了陈导对中华优秀传统文化漫漫“寻根之旅”的顽强与执着——真正的思想者,从来不曾低下他那桀骜不羁的高贵的头颅;跋涉者,从来不曾因为路边一朵无名的鲜花绽放或是荆棘铺满而轻易停下脚步、绕道而行甚或退回原地!

不信请看,请您仔细地琢磨琢磨:为什么要选取这么一个武侠色彩浓厚的剧本?为什么要将故事发生的年代放置在清末民初?为什么要选择用一个走出观门的年轻道士的角度来看世界?为什么武林中人从来相互倾轧却中华武术之魂始终深植世道人心、“和平尚武”的精神大旗从来屹立不倒?为什么善行美德、侠义英雄一再受挫、恶人猖獗横行胆大妄为却不能立即得到他们应有的下场?老祖宗千年切磋演练、薪尽火传的盖世武功,到了山河沦陷、民族最危险的时刻,为何却不能担负起挽狂澜于既倒、救民族于危亡的历史重任?出神入化的中国功夫,为什么总是敌不过洋人的三声枪响?鱼龙混杂的江湖,一旦与专横昏庸的权贵阶层相互勾兑、妥协,将会生长出怎样令人痛心疾首不忍直视的“恶之花”?拯救武林、行侠仗义、匡时济世、义无反顾、勇往直前的,为什么总是三教九流、普罗大众们的出生入死与不惮前驱?出世与入世,得道与失道,养身与修行,正义与邪恶,儒道佛与生死场,小人物与大社会,冷兵器与热火器,民族性与世界性,尊严与苟且,亲情与大义,破坏与重构,毁灭与捍卫,传统与现代,坚守与融合,回归与创造……这林林总总,都可以在这部时长120分钟的电影中找到生动的艺术化的注脚。

剧中,多段经典的台词,艺术化地传递出了导演的价值观与创作观,强化了这部作品所冀望臻达的思想主题:比如老崔在湖边与小道士关于“人生苦短、行乐需趁早”的对话;老方丈(王学圻饰演)掷瓢于地、以葫芦瓢随意乱转暗喻命运无常、人生要随遇而安的临终关怀的话语:“命运就像那瓢一样,触着即转。上天于我们,就是那掷瓢的手”,应看淡人生悲喜,顺应时序交替,“要是悟到生死轮回,无非花开花落”;老方丈劝导以恶治恶后被噩梦纠缠、不得心安的小道士:“跪遍了天地万物,请求宽恕。可还是安定不下自己心里的恶念”,“心有定境,不住因果,还有什么不快乐的呢?”;面对坏人当道、正义失声、集体缄默的社会颓局,愤怒无助的查先生发出了振聋发聩的呐喊:“坏人猖獗,是因为好人沉默。沉默,也是一种作恶!”贯穿全剧的关于“道”之精神与要义的多维度阐释:“人生本来就是上山下山”,“道心原本宽广,可容万物。装得下山河大地,万古星辰”。道并非艰深难懂、遥不可及,寻道之路也并不是一定要遁入空门,“真正的道,在龙蛇影外、风雨声中,它最后就在平常人的日子里”,“天地间,道大,人也大”。以飞鸟归巢为喻,呼唤人与人之间要团结友爱,互助互帮,少一些功利,多一份善念,“飞出去觅食的鸟儿,不管千里万里,都能回到巢中,这就是不离不弃的力量”——弘扬正气,强调担当,呼唤责任,播撒博爱,抚慰人心,劝导善行,崇尚自然,敬畏生命,道为我所用,我为道所存——这样,正义与理想的光辉,便通过这一段段合情入理、娓娓道来的带有浓厚哲学思辨色彩的对白,悄然照进了每一位观影者的心田,寓教于乐,启人心智,川流敦化,言近旨远。——“一部好的艺术作品,就是一部生动的道德教科书”,是之谓也。

还要提及的是:陈导对中华戏曲文化有着异乎寻常的热爱。稍加回忆比照,他的每部电影,几乎都与戏曲有关。2014年12月21日晚,国家大剧院戏剧场,国家广电新闻出版总局蔡赴朝部长的新编历史京剧《丝路长城》隆重上演。在池座靠后的观众席中,我有幸看到陈导与担任《道士下山》一剧总制片人的他的明星夫人陈红女士一同在观看该剧。陈导常常能从博大精深的戏曲文化中借鉴、吸收“典型化、类型化、脸谱化、程式化、矛盾冲突急剧化”的营养,并巧妙地加以糅捏、整合,从而更好地服从与服务于他的艺术主题的实现。为什么将惩治恶行的重任,托付给一个叫做“查先生”的梨园中人?这是因为这是一部新式武侠大片。他要借此来致敬一位新武侠精神伟大的书写者与传播者,那就是武侠小说名家金庸先生(金先生本名查良镛);房祖名在剧中饰演彭七子一角,这让人很容易想到闻一多先生那首向归之心始终不辍、深情呼唤中华民族儿女大团圆的《七子之歌》;巧妙安插彭七子抽大烟、怂使小道士去抢功德箱,彭乾吾临死前哀求查先生放过儿子,甘愿子债父还;彭七子良心发现,改恶从善,加入复仇的队伍等桥段,也很容易让人联想到“龙太子”曾经有过的令人着急的往事——这些,既体现了成龙先生父子直面问题、真诚坦率的可贵品格,也折射出该剧创作团队善于就地取材、活学活用、移花接木、以期吸引观众眼球、提供公众谈资的智慧与机心——一切耐人寻味,一切又水到渠成,莞尔之余,引人沉思——高明的导演,好比一流的厨师,总能看常人所惯看,取路边随手可摘,稍加佐料,便能烹成可口的菜肴。

“看见万物凋零,懂得了慈悲”——那种为了一己之私,不惜侵害、践踏万物生灵的举动,都是有违“道”的精义的,皆是背道而驰的;那些人云亦云、三天打鱼、两天晒网、见异思迁的墙头草与拨浪鼓,也是很难企及天地大道与宇宙真谛的。还是《道士下山》说得好:“不择手段非豪杰,不改初衷真英雄!”

“道虽迩,不行不至;事虽小,不为不成。”——我愿做一个既食人间烟火,又努力追求大道直行的人;一个勇于承担责任,又力所能及传递、播撒爱心、美德的人!

4.《源代码》观后感 篇四

《终结者》中的一句台词:No Fate-或许这才是导演真正想告诉我们的。

《源代码》构筑了一个多重平行时空的世界,NO FATE-《源代码》观后感。这里借用@书囚微博上的一张图来说明其体系架构。有意思的是,这张图是颠倒的,不知道是否有意为之?

整个故事的主线时空是最右边的那条线,我们称为时空1。在这条线里,科特上尉在阿富汗作战被宣布阵亡,参与了源代码计划,被一次次送到源代码的时空中(每一次去的是不同的时空),每8分钟返回一次,在倒数第二次(时空N-1)送回后,带回了作案嫌疑人的信息,并帮助时空1的世界成功避免了第二次脏弹攻击,拯救了世界。接着,他在古德温的帮助下,再次返回源代码时空,成功避免了第一次攻击的发生,并留在了那个时空(时空N)里。同时(这8分钟结束的时候),古德温上尉结束了科特在时空1中的生命。

绝大多数观众并没有意识到,《源代码》的故事构筑了多个时空,即主线故事(时空1),每一次返回源代码时的其他副线(时空2~时空N-1)都是不同的,最后成功避免了第一次攻击的时空N。这个或许是解读整个故事和导演意图的关键。

西方文化中宿命论的观点是很普遍的。从这个意义上来看,似乎每个时空的结局,都是预先确定的,都是宿命。

时空1中,通过科特上尉参与的源代码计划的努力,最终避免了第二次攻击,拯救了世界,而古德温最后杀死了科特上尉,源代码计划后续情况不明。

时空N是特别的,是一个美好的世界。在那个世界里,恐怖袭击被来自另一个时空(时空1)的上尉化解了,列车上的人们度过了一段快乐的时光,科特上尉的父亲接到了一个温情的电话,参与尚未启动的源代码计划的古德温接到了一条邮件,告诉她这个计划必将成功,并且希望她将来要帮助躺在冰箱里的科特。

然而,时空2~时空N-1的`结局却是不明确的,而时空3?中,克里斯蒂安没有死在列车上,而是在站台上活了下来,时空N-1中,她是死在站台上,和自己的男友倒在了作案凶手的车边,观后感《NO FATE-《源代码》观后感》。这些时空,有可能和时空1一样也被拯救了,避免了第二次攻击,但也有可能是其他结果:如源代码计划在那个时空里根本没有发生过,或者源代码计划虽然执行了,但是那个时空的科特上尉没有及时找到凶手,第二次攻击还是发生了。

纵观全局,绝大多数时空都是和时空1类似的,不怎么美好,但也不太糟的现实。第一次攻击发生了,但是第二次更大的灾难被避免。只有在最差情况下,才会都发生。而时空N,这个美好的世界,并不是只在可能中存在。与其说时空N也是注定的,也是宿命,不如说,这样一个美好的世界虽然存在,但却需要去全力争取,不仅得依靠这个时空之外的力量(结合了N-1个时空的大量信息),甚至付出生命(时空1中科特上尉的生命)。

于是,导演真正想告诉观众的,并不是简单的宿命论观点,而是让大家相信,那个美好的世界,是需要付出努力的,只有相信命运始终可以挑战,才有可能最终创造奇迹.

5.《梦断代码》读后感 篇五

花了一段时间读了相当大篇幅的《梦断代码》一书之后,我深刻体会到一点--所有程序员在一层定义上都是“疯子”,他们都是一些为了软件,代码会深陷其中但又一贯以乐天派示人的一帮怪人,若是以高中时候身为文科生的我来发表感受,我会觉得这样浪费精力,浪费青春的事都会有人乐此不疲的去做,他们究竟是怎么了,„„但是现在,身为一名计算机专业的大学生,我只能对我自己说,你不是他们也终究成不了他们,我深知我没那个能力,不是每个人都适合做软件开发,我不是那块料„„,因为现在我至少接触过C,C++,JAVA等机器语言的皮毛,每种语言都是那样地令人费神费力,有时真觉得我来错了地方。

《梦断代码》讲述的是Chandler软件漫长而痛苦的开发过程,在该过程中,一系列的问题都要考验他们那些程序热衷者,那一刻真觉得是不是该同情他们一下,在OSAF开发组中,单单负责选择其他程序员用来创建软件的部件的“系统架构师”安德森一人就要面临:应该采用什么语言编写代码?应该采用什么工具来创建程序的图形界面?应该采用什么软件技术来存储程序数据?应该采用哪种数据交换标准?等一个又一个难以抉择的局面,这让我很是觉得软件是那么的抽象。

Chandler开发过程中误期以及项目所有的成员不加节制的创造,不统一的想法给麦卡斯带去了诸多困难,为了软件行业,麦卡斯付出 了相当大的代价,Chandler的设计者们不断给出相互冲突的需求下,他这样一个软件行业硬角色束手无策了,开发陷入困境。读到这我似 乎懂得一点项目所有的成员都应该尽可能地发挥自己的创造性,但是 不加节制的创造只会带来不切实际的项目需求和无法实现的功能。Chandler项目就是缺少这种对创造性的“约束”,这是所有问题的 根源。总的来说Chandler项目的诸多需求自相矛盾,而且使用的技 术也有些超前,最重要的是,缺乏一个强有力的管理核心来对项目的 诸多事宜做裁决。

6.地道战电影电影观后感 篇六

今年是共产党建党90周年,我们少先队员进行了多彩多样的庆祝活动,今天我们就要来观看关于 红色电影的影片,我选择了看《地道战》。

故事发生在1942年,日本鬼子打击冀中抗日根据地。可是当地高家庄地少人稀,怎么办呢?高家庄的老百姓很巧妙的把土洞、地窖改造成家家相通的多口地道。可是经过一次次的失败,高老忠为敲钟报警献出了生命,地道遭到破坏。这时候区长赵平原带领游击队和民兵及时赶到了,带领人民把原来只能藏身的地道,改造成能藏又能打的地道。次年初夏,鬼子再一次袭击高老庄,高传宝领导高家庄民兵,配合八路军主力部队和游击队,一举拔掉了黑风口的敌人据点,又回戈全歼了进犯高家庄的敌人。

影片中太精彩了:高家庄老百姓把鬼子放进村来,关起门来打”狗“,打一轮,放一炮后,换个地道又从鬼子的背后向鬼子射击,鬼子晕了,都不知道这子弹从哪里来的,把鬼子打得落花流水。鬼子往地道里放水,因为水是宝贵的,所以我们要把它放到原处去;鬼子往地道里放烟,因为烟是有毒的,我们不能放进一丝一缕来。 看到这些,我也情不自禁的大喊道:”那里还有个鬼子,快打,快打!“,”快,快,快,鬼子坐在水井上。“我很用力的推动着坐在我边上的妈妈,真紧张啊!突然水井下面突然扔出个手榴弹,把鬼子炸得落花流水,高家庄的人们太有智慧了,太过瘾了。就这样,高家庄把地道挖到了鬼子藏身的老窝―炮台!最后,高家庄人民利用战斗地道,沉着应战,一直打到了敌人的老窝。汉奸很经典的说了句:高,实在是高……给一抢毙死了,鬼子也死光光。

7.基于源代码的缓冲区溢出预防技术 篇七

关键词:堆栈,缓冲区,溢出,缓冲区溢出攻击

1 引言

1988年的Morris蠕虫,是第一次利用缓冲区溢出缺陷的攻击,导致6000多台机器被感染,损失在$100 000至$10 000 000之间。之后,缓冲区溢出缺陷的攻击愈来愈多,成为最常见也是最危险的网络攻击。

缓冲区溢出是由于程序或编译器没有对缓冲区进行边界检查导致的。发展C语言的初衷是为了编写操作系统,后来被广泛使用,其运行高效、精确控制资源等优点成为系统程序员最喜欢选择的编程语言,很多商业软件都是使用C语言编写的。但C语言缺少安全机制,对数组和指针不做边界检查,由此带来很多缓冲区溢出隐患。最直接的预防方法是编程时严格按照规则对边界进行检查,但实际效果不尽如人意,即使是经过严格培训的程序员也会产生错误。为了防止缓冲区溢出,专家学者研究了很多的检测和预防技术。本文将缓冲区溢出的原理进行分析,并对其检测和预防技术进行一次介绍。

2 缓冲区溢出的原理

缓冲区溢出的原因是由于字符串处理函数(gets,strcpy等)没有对数组的越界加以监视和限制,结果覆盖了老的堆栈数据。

在计算机内的程序是按以下形式存储的,见图1。

缓冲区溢出的造成的影响有两个方面:1)覆盖缓冲区相邻内存中的数据,破坏程序数据的完整性;2)覆盖了前一个栈基指针(ebp)、堆栈中的函数返回地址或函数参数,从而改变程序的流程。

许多C程序都有缓冲区溢出的漏洞,一方面因为很多程序员在写程序时都只考虑到程序的执行效率而忽视错误检查与出错处理。同时,标准C库函数本身就存在严重漏洞,如常用的strcat()、strcpy()、sprintf()、vsprintf()、bcopy()、gets()、scanf()等。

3 攻击种类与实施过程

C语言中能改变内存地址内容的语句主要有两类:1)*A=B;/*指针型语句*/;2)A[i]=B;/*数组型语句*/;

其中,A,B均为变量,*A为指针,A[]为数组,i为数组下标。

在第一类语句(指针型语句)中,由于A所指向的内存地址取得B的值,因而攻击者能利用该声明来改变函数的返回地址。由此可构成第一种攻击方法,又可称为指针型攻击方法。

在第二类语句(数组型语句)中,数组A[]中的第i个元素A[i]取得B的值。这类攻击方式必须满足下列条件:

1)一个循环声明,用于将用户输入数据复制到一个缓冲区数组,而且不能检查数据量,同时数组必须紧靠变量B;

2)一个循环声明,用于将用户输入数据复制到数组A,而且不能检查A的上界,每次循环后i的值加1,同时数组A必须紧靠一个返回地址。

在此条件下可构造出两种攻击方式。

A)通过(1)改变B的值,然后通过(2)将B的新值循环输入数组A,直到返回地址也被该新值覆盖。这种攻击中,不仅返回地址被改变,而且介于数组A与返回地址之间的所有内存区域也全被改写。这种方法在缓冲区溢出攻击中使用得最多。

B)假设A[k]存有函数的返回地址。如果我们用第一种攻击方法使A[k]溢出,就可将返回地址的值改写成任何需要的值。

4 缓冲区溢出攻击举例

下面的程序是典型的缓冲区溢出攻击:

函数OverFlow()将一个字符串不经边界检查就拷贝到另一内存区域。显然程序执行的结果是Segmentation fault(core dumped)或类似出错信息。因为从buffer开始的256个字节都将被*str的内容A覆盖,包括SFP,RET,甚至&str。A的十六进值为0x41,所以函数的返回地址变成了0x41414141,超出了程序的地址空间。结果证明我们的应用程序是可以被人利用的,所以一定要担心!

5 检测和常用预防技术

为解决缓冲区溢出问题,我们做了大量的工作,下面介绍几种技术。

5.1 源代码的静态分析

ITS4使用潜在危险结构数据库来检测安全问题。很多程序员在进行安全审计时使用grep命令查找危险的函数调用。ITS4的设计者目的是提供比grep更智能的工具,在找到危险的函数调用时,ITS4还能提供有用的安全建议。类似ITS4的分析工具还有Flawfinder、RATS、FlexeLint、Pscan等。静态分析的好处是快捷简单,但没有考虑程序的语义,忽略了过程之间的交互、变量值和控制流。

BogoSec是一个源代码安全测量工具,它捆绑了几种源代码扫描器(ITS4、Flawfinder、RATS),最后产生源代码安全质量值。

5.2 扩展编译器功能

编译器是源码变成可执行代码的桥梁。有很多缓冲区溢出脆弱性检测和预防技术解决方案是通过扩展编译器功能,增加缓冲区边界信息并插入边界检查代码来实现的。

1)StackGuard:StackGuard对编译器进行扩展,调用函数是在堆栈的局部变量和返回地址之间存放一个程序运行时的随机产生的4个字节的“canary”字。若“canary”被破坏,则表明有缓冲区溢出产生,程序被终止。

2)StackShield:StackShield创建一个特别的堆栈---地址栈,用来储存函数返回地址的一份拷贝。把返回地址压栈同时保存到这个特别的地址栈中,在返回地址出栈前把从地址栈中取出返回地址。即使堆栈中的返回地址等信息被破坏,仍然可以保证不会跳转到错误的地方执行。

3)LibSafe:在已知的缓冲区溢出漏洞中,大部分是因为没有正确的使用gets,sscanf,sprintf等字符串和io函数.基于这一事实,LibSafe提供了一套和标准库兼容的库,用于替换已知的有安全隐患的库。

4)Visual C++.Net的/GS选项:Visual C++.Net的/GS选项与StackGuard,它在声明于栈上的变量与EBP指针、返回的地址指针几函数特定的异常处理之间放置一个“canary”。

5)DIRA:DIRA是GCC编译器的扩展。在编译时插入适当的内存修改日志代码,然后在所有对敏感数据引用的地方插入检查代码,最后在程序中插入识别攻击代码和修复程序的函数。

6 结束语

以上是基于源代码的检测安全漏洞的方法,没有运行时的开销,是编写代码及调试过程进行缓冲区检测的常用技术。目前提出了对程序的可执行文件进行渗透测试及对操作系统进行改进设置基于堆栈和堆不可执行、段长限制、使用两个堆栈等。每种技术都有不足之处,根本解决问题的方案是开发出全系列的能预防缓冲区溢出的操作系统、库、编译器和编程语言。

参考文献

[1]Foster J.C.缓冲区溢出攻击——检测、剖析与预防[M].北京:清华大学出版社,2006.

[2]许治坤,王伟,郭添森,等.网络渗透技术[M].北京:电子工业出版社,2005.

[3]张小斌,严望佳.黑客分析与防范技术[M].北京:清华大学出版社,1999.

[4]杨朝龙,须文波.嵌入式系统安全中缓冲区溢出防止技术的研究与实现[J].嵌入式系统应用,2005(25):15-17.

8.网页源代码想看就看 篇八

其实可以使用“Instant Source'’这个工具来轻松查看和保存网页的源代码及网页文件,它是一个非常实用的IE插件。“Instant Source”安装后自动整合到IE浏览器中,需要使用时,只要点击IE工具栏上的“InstantSource”图标,在浏览器下方便出现一个代码显示窗口及它的功能按钮了。

轻轻一点网页源代码全显

打开需要查看源代码的网页,在“Instant Source”的功能按钮区单击“显示”图标,这时会出现一个下拉菜单,其中有“鼠标所指元素”、“选定文本”、“整个网页”、“鼠标所指的颜色”等菜单项,如从中选择“鼠标所指元素”这种显示模式,之后只要用鼠标指向网页上的某一元素,它的网页代码便会即时显示在下面的代码区域(如图1)。对于加入网页中的样式表CSS、Java脚本等外部对象的代码,也可以点击代码窗口下方相应按钮来查看。若要查看网页中某处的颜色,就选择“鼠标所指的颜色”菜单项,这时鼠标在网页中移动就能直接获取网页上各种颜色的R、G、B值及HEX代码。

另外,在查看代码时可使用“复制”、“查找”等按钮,方便实现选定代码的提取,还能从众多代码中快速定位到自己需要的代码位置。

巧妙设置查看更快捷

工具的许多强大的功能通过设置才能发挥出来。单击功能按钮区中的“选项”,就会弹出一个“In st antsource选项”对话框(如图2),在‘常规设置“标签下,可以设置更为详细的显示模式。在这儿选择“鼠标所指的HTML元素”这个单选项后,再选择“自由模式”或“仅在按压Ctrl键时显示源代码”等选项,就可以配合Shift、Ctrl键的操作来显示更多有价值的内容,还可以锁定显示的源代码和显示HTML代码的上级元素。

如果“Instant Source'’默认的代码显示字体和颜色不符合自己的习惯,就可切换到“字体和颜色”标签中进行设置,在这儿可以设置字体大小、显示代码的背景色和代码文本颜色等,以符合自己的阅读习惯。代码显示默认是来显示行号的,这在阅读众多代码时很不方便,切换到“页边空白”标签中,在其中勾选“显示行号”项,显示代码时就会显示代码的行号,方便阅读。

现在的网页都会与其它网页链接,也会引入外部对象,如样式表c ss、J av a脚本、图片、Flash动画等,要保存这些引入网页的外部对象,只需单击“对象”图标,打开一个“页面对象”窗口(如图3),在这里选择需要的东西,再单击“保存”按钮就可以了,更好的是在这儿可以选择“链接”下的网页地址来保存各类网页文件,如asp、aspx、php等网页文件。还可以单击“全部保存”选项,全部保存到自己的硬盘中。

利用IE编辑修改网页真直观

对于保存在本地硬盘中的网页文件,通常是使用网页编辑软件编辑后,再调用浏览器查看效果,其实安装了“Instant Source”这个工具后,就可以在IE中浏览的同时直接对网页进行编辑修改了,只需选择“显示”按钮下的“整个页面(原始)”模式,就可以直接对源代码进行编辑,然后单击“应用”按钮,就能马上在浏览器窗口中看到编辑后的效果,并保存该网页。

上一篇:高二(1)班级工作计划下一篇:《教育大计 教师为本》学习心得