凭代码促进思考吗?

2012《信息安全技术》期末复习思考题

1、SSL(安全套接字层)通讯使用下面哪个TCP端口?()

2、IPV6的地址长度为______位(用16进制表示时)。

3、下列不属于系统安全的技术是()

4、()不属于将入侵检测系统部署在DMZ中的优点

A.可以查看受保护区域主机被攻击的状态

B.可以检测防火墙系统的策略配置是否合理

C.可以检测DMZ被黑客攻击的重点

D.可以审计来自Internet上对受保护网络的攻击类型

5、入侵防御系统(IPS)能对网络提供主动、实时的防护。其没有使用到的检测技术是()

A.协议分析技术B.抗DDOS/DOS技术

C.使用者和设备身份认证技术D.蜜罐技术

6、下列关于消息认证的描述中,错误的是()

A.消息认证称为完整性校验

B.用于识别信息源的真伪

C.消息认证都是实时的

D.消息认证可通过认证码实现

7、以下选项中,不是恶意代码具有的共同特征的是()

A.具有恶意目的B.自身是计算程序

C.通过执行发生作用D.能自我复制

8、以下关于各种反病毒技术的说法中,正确的是()

A.特征值检测方法检测准确,误报警率低,但是不可识别病毒的名称,不能检查未知病毒和多态性

}

编译:傅一洋、汪小七、张南星、GAO Ning、夏雅薇

高级的编程是逻辑思维的流露,会编程只代表你懂了这门语言的语法,但是会写清晰简洁易懂可迭代的代码才是程序员该追求的境界。编程入门已经不容易,但是如果能够在早期树立一些正确的“代码观”,或许可以让你的编程之路升级得更快。作者苦口婆心地给出了25条建议,句句真言。

首先我要声明的是:如果你是编程新手,本文并不是要让你对自己犯的错误感到愧疚,而是要你对这些错误有更好的认知,并避免在未来再犯。

当然,这些错误我也经历过,但是从每个错误中都学到了一些新东西。现在,我已经养成了一些好的编程习惯,我相信你也可以!

下面是这些常见的错误,顺序不分先后。

一般来说,创作一篇高质量的文章不易,因为它需要反复推敲研究,而高质量的代码也不例外。

编写高质量代码是这样一个流程:思考、调研、规划、编写、验证、修改。(貌似没办法编成一个好记的顺口溜)

按照这样的思路走,你会逐渐形成良好的编程习惯。

新手最大的错误之一就是太急于写代码,而缺乏足够的规划和研究。虽然对于编写小程序而言是没多大问题的,但对于大项目的开发,这样做是很不利的。

为了防止代码写完之后发现重大问题,写之前的深思熟虑是必不可少的。代码只是你想法的流露。

生气的时候,在开口说话前先数到十。如果非常生气,就数到一百。——托马斯·杰斐逊

我把它改成针对写代码的版本:

审查代码时,重构每一行之前,先数到十。如果代码还没有测试,就数到一百。——Samer Buna

编程的过程主要是研读之前的代码,思考还需要修改什么,如何适应当前系统,并规划尽量小的改动量。而实际编写代码的过程只占整个过程时间花费的10%。

不要总认为编程就是写代码。编程是基于逻辑的创造,慢工出细活。

虽说写代码前充分规划是好,但凡事都有个度,还没开始做,就思考太多,也是不可取的。

不要期望世界上存在完美的规划,至少编程的世界中是不存在。好的规划可以作为起点,但实际情况是,规划是会随后续进行而改变的,规划的好处只是能让程序结构条理更清晰,而规划太多只会浪费时间。

瀑布式开发是一种系统线性规划的开发方法,它严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行,步骤成果作为进度的衡量标准。在这种方法中,规划是重中之重。如果只是编写小程序,也完全可以采用这种方法,但要对于大的项目,这种方法完全不可取。任何复杂的事情都需要根据实际情况随机应变。

编程是一个随时需要根据实际情况作出改变的工作。你后续可能会因为一些原因要添加或删除的某些功能,但这些情况瀑布计划中可能你永远也想不到。所以,你需要敏捷的开发模式。

但是,每一步之前是要有所规划的,只不过规划的过少或过多都会影响代码的质量,代码的质量非常重要。

如果你无法兼顾代码的多项质量指标,至少要保证它的可读性。凌乱的代码就相当于废品,而且不可回收。

永远不要低估代码质量的重要性。你要将代码看作沟通的一种方式,作为程序员,你的任务是交代清楚目前任务是如何实施的。

我最喜欢一句编程俚语是:

写代码的时候可以这样想,维护你代码的家伙是一个知道你住在哪里的暴力精神病患者。——John Woods

即便是一些细节。例如,你的代码可能会因为排版问题或大小写不一致而不被认可。

还需要注意的是避免语句过长。任何超过80个字符的文本都是难以阅读的。你可能想在同一行放置长条件以便看到完整的if语句,这是不可取的,一行永远不要超过80个字符。

这种小问题可以通过linting工具或格式化工具轻松解决。比如在JavaScript中两个完美结合的优秀工具:ESLint和Prettier。多用它们,让工作更轻松。

还有一些与代码质量相关的错误:

任何超过10行的函数都太长了。一定不要出现双重否定句。使用简短的,通用的或基于类型的变量命名。尽量保证变量命名能清晰地表述变量。计算机科学领域只有两件难事:缓存失效和变量命名。缺乏描述地插入一些字符串和数字。如果要使用固定的字符串或数值,应该将其定义为常量,并命名。

“对于简单的问题,担心花费时间而草率地处理”。不要在众多问题中进行跳跃式选择,按部就班地来。认为代码越长越好。其实,大多数情况下,代码越短越好。只有在追求可读性的情况下可适当详细些。比如,不要为了缩短代码而使用很长的单行表达式或嵌套表达式,但也不要增加冗余的代码。最好的是,删去所有不必要的代码。过多使用条件语句。大部分你认为需要条件语句的情况都可以不通过它来解决。因此,考虑尽可能多的备选方案,根据可读性进行挑选。除非你知道如何测试代码性能,否则,不要试图优化。还有就是:避免Yoda条件或条件嵌套。

当我刚开始编程时,一旦遇到问题,我会立刻寻找解决方案并重新运行我的程序。而不是先考虑我的头号方案复杂性和潜在的失败原因。

虽然1号方案极具诱惑性,但在研究了所有解决方案后,通常能发现更好的。如果无法想出多种方案,说明你对问题了解不够。

作为专业程序员,你的工作不是找到办法,而是找到最简捷的办法。“简捷”的意思是方案必须正确,可执行,且足够简单,易读,又便于理解和维护。

}

我要回帖

更多关于 简单代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信