代码大全2培训ppt课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 不要破坏界面的一致性,攻击者可能会利用这个找到漏洞,所以我们 要求不能显示.net的黄页一样。
神往开发部培训课程
4.2错误处理技术
▪ 9、用最妥当的方式在局部处理 ▪ 7、关闭/停止程序
▪ 有些系统一旦检查到错误就会关闭,这通常是遇到比较严重或者安全 攸关的功能上,比如windows的安全日志即使满了,也会正常工作, 但你可以配置windows,让它在日志满的时候停止服务,在安全信息 攸关的环境下中这样做是明智的。
5.1、if 语句
4.If 后面的子句要有一个有意义的意思。可以省去else子句
bad: if(SomeTest)
good: if(!SomeTest)
:
{
else
DoSomething()
{
}
DoSomething()
}
神往开发部培训课程
5.1、if 语句
5.考虑 else 子句 else子句尽量不要省略,以免发生没有考虑到的错误,除非在显而易见 的情况下才可以省略。
▪ 2. 换用下一个正确的数据
▪ 在处理数据流的时候返回下一个正确的数据即可。如果你在读取数据库时候 发现一条数据已经损坏,可以继续读下去找到正确的记录位置。比如你以每 秒100次的速度读取体温计的数据,那么如果某一次的数据读取错误,你只 需要等待1/100然后继续读取即可。
▪ 3、返回和上次相同的数据
6.检查 else 子句的正确性 检查的重点应该是程序的主要部分,即if部分,有可能的话,也 要检查else部分
7.检查是不是把if 和 else 里的处理页反了 这是个常见的错误,一定要注意小心避免
神往开发部培训课程
5.1、if 语句
▪ If –else if – else 链式操作 下面给出关于if- else if -else操作的一些建议
不用异常,使用其他方法替换。
神往开发部培训课程
5、使用条件语句
▪ 简单的 if-else 格式 使用 if-else 虽然很简答,但是有很多细节应该注意:
1.先写很正常很普通的分支,再写不寻常的分支 好处:这样可以突出判断的主体部分,不至于让次要的部分混淆程序执 行的过程,使程序易读。 2.在分支中要特别注意相等的条件,确保其正确性 使用> < 没有使用 <= >=来的清晰,这样可能会犯在数组中类似的越界 错误
▪ 具体程序员做什么工作呢?理解架构师做出的架构设计,做你负责的模 块的详细设计,做出自己的负责模块的开发计划,编码,测试,解决测 试人员提出的BUG,以及网站上线后排查线上的问题等等。如果你做 的是这些工作,那你就是具体程序员,你做的大多事情就是软件构建的 事情。
▪ 只要你是个程序员,就应该系统的,好好的学习下软件构建的技能和知 识,这比你学很多种语言,尝试很多种花哨的新技术要值很多,至少我 看了这本书的其中几章有这个体会,第一次认真考虑软件构建中的一些 基础的,细节的,基本的,通用的思维方式,编码技巧和规范。
神往开发部培训课程
4.3异常处理
▪ 异常是把代码中的错误或者异常事件传递给调用方的特殊手段。 如果在程序中遇到了意料之外的情况就可以抛出异常。
▪ 异常要审慎明智的使用,下面给出一些异常上的建议。
1 抛出异常,让其他部分去解决问题 2只有在真正的异常才使用,不能到处try-catch 3不能用异常来推卸责任,尽量局部处理 4不要在构造和析构函数中使用异常。 5、正确的抽象级上使用异常 6、异常信息应该包含详细的异常数据,便于解读。 7、不要使try-catch为空,一定要进行处理,也不能让try为空。 所以说尽量建立集中的异常处理报告,规范化异常使用,甚至考虑
神往开发部培训课程
4.1 对错误输入的保护
▪ 检查所有外部进来的数据
▪ 如文件、用户、网络或其他外部接口获取数据时,应检查获 得数据,确保他在允许的范围内。对应数值要要确保在允许 的范围内,对于字符串要确保其不超长等。
▪ 检查所有输入参数的值 ▪ 决定如何处理错误的输入数据
▪ 要根据具体的使用情况,后面会讲
神往开发部培训课程
4.2错误处理技术
▪ 主要有以下几种方法 ▪ 1、返回中立值
▪ 有时候错误处理的最佳方法就是继续执行操作并返回一个没有危害的数值, 比如数值计算可以返回0,字符串可以返回空字符串,好像我们的SPF类, 再比如一个绘图的功能,如果接收到一个错误的颜色可以使用默认颜色继续 绘制,当然如果是癌症病人的X光片的绘图程序,还是不要现实某个“中立 值”,人家会找你拼命的,这时候关闭程序会比限时错误的病人数据要好。
1.用返回布尔值的函数来代替复杂的逻辑表达式 如果判断的条件是复杂的表达式的话,程序既不易读,也不易修改。
神往开发部培训课程
1、if 语句
2.把最常见的情况放在最前面 最常见的情况放在前面可以增加程序的可读性,使人阅读程序时提高效 率。
3.确保所有的路径都被覆盖 在程序的最后再加上一个 else ,并且在这个判断里面使用 断言或者给程序员显示警告。这里,出错的信息是给程序员看的,方便 开发期间的调试工作。
神往开发部培训课程
5.1、if 语句
3.把正常情况下执行的代码放在if后面,而不是防在else后面 把想要在正常情况下执行的代码放在前面,这样可以使程序的功 清晰易读,清楚地了解到程序究竟是做什么功能的。
神往开发部培训课程
5.1、if 语句
神往开发部培训课程
5.1、if 语句
神往开发部培训课程
▪ 比如某些情况下你没有读取到数据,那么可以简单的返回前一次的结果。当 然如果你在管理ATM机上操作,你可能就不希望返回上一个结果了,因为那 可能是前一个用户的银行帐号。
神往开发部培训课程
4.2错误处理技术
▪ 4、换用最接近的合法值
▪ 比如体温计的数据定义在1-100之前,如果你获得数据小于0,你可以 把他替换为0就是最接近的合法值,同样大于100就替换为100,生活 中的例子就是倒车,倒车时速度表无法负的速度,所以直接显示0。
神往开发部培训课程
5.2、Case 语句
使用 Case 语句的一些建议
1.每一个 Case 里的操作都应该简单 好处:短的代码清晰易读,增加可读性,如果代码很长的话,就把它们 单独放在一个模块里。
2.不要使用容易出错的变量来作为条件 作为判断的变量应该简单,下面一个例子是以用户输入参数的第一个字 母作为标志的,(switch后面只能跟整型和字符型)这样很容易出错, 如果非要那样做的话,就不应该使用if-else if-else ,然后把判断的语句 写全。
2010年12月29日培训
代码大全学习-
1、欢迎进入软件的世界
▪ 这章阐述了软件构建的重要性,软件构建大体上就是说具体程序员做的 工作,而不是需求收集、产品设计、业务分析、测试、运维人员等做的 工作,虽然这些人的工作在整个软件开发生命周期中也非常的重要,但 是一个软件开发的最主要的部分却是具体程序员做的那部分事情。一般 的软件公司里具体程序员的数量应该占很大的比重,大多数的程序员也 是具体程序员,只有很少的程序员经过多年的工作学习能成为项目经理, 业务分析人员,架构师等高级软件从业人员。
4.使用 default 子句来检查错误 如果在程序中必须要有一个case 后面的部分不会被执行,那么default 里面就写上显示出错的代码。
5.在每一case的最后别忘了写上break 类似于C的语言都必须要写上break 以便能跳得出来,如果不写的话就 会跳到下一个case 里面去。
6.如果非要在程序中执行两个以上的case的内容(case嵌套if)的时候,一 定要注释清楚,个人建议还是不要这样嵌套,还不如使用if-else ifelse。
如果Case的分支不是很多,安排他们的顺序就无关紧要,若分支太多 的话,就很重要了。
神往开发部培训课程
5.2、Case 语句
1.以数字或者字母的顺序来安排 如果这些分支的重要性差不多的话,就使用字母序或数字来标记他们, 这样一可以易读,二可以很方便的找到该分支 2.正常情况下的分支要放在最前面 这样可以指示那些分支是正常的,哪些是不正常的。 3.把访问频率高的分支放在前面,低的放在后面 这样一可以增加可读性,使读者清楚看到哪个分支最为常用, 同时,也提高了执行效率,加快索引。
▪ 所以我们在开发之前要要先通读特性文档的内容,看看设计上是不是有 疑难的地方、有不明确的地方、有不理解的地方等,及时沟通解决问题。
▪ 前期准备所花费的时间是不容易把握的,也没有个固定的衡量标准,但 前期准备是必须要做的,前期准备的根本目的是降低风险,提高项目质 量。
神往开发部培训课程
4、防错编程
神往开发部培训课程
2、用隐喻可读可不读,比较理论。 ▪ 我们平时把软件编码叫做写代码,让外行人听起来像是在写文章,就是
把你心里的想法一点一点的有条理的写出来,在这一点上,编码和写文 章确实有相似之处,但写文章一般是你自己写,编码则需要和别人合作。 ▪ 还有在软件设计的时候,我们经常拿盖房子来比喻,盖房子之前要先画 好蓝图,整体结构,考虑好水、电的布局等,盖一个小狗窝和盖一栋大 楼的过程也是不一样的,做一个小软件和一个超大型的软件的过程也是 不一样的。如果你能很好把软件的开发过程想象成某些生活中具体的例 子,找到他们的相似之处和不同之处,你就能更好的理解软件开发,以 及利用这些隐喻来与人更好的沟通。你脑子里如果有很多这样的隐喻, 在你做软件设计时就会不经意的想起来,成为你思考和权衡不同方案的 工具。
神往开发部培训课程
5.2、使用前的提示
在使用条件判断语句的时候,一定要检查是不是符合下面的要求 If-else 语句: 1.主体部分是不是在 if 语句中清晰的表达了? 2.在检查等号条件是不是正确的?会不会发生越界错误? 3.是不是缺少else子句? 4.Else子句是不是正确的使用了? 5.If 和 else中分别需要做的工作又没有混淆? 6.正常情况下的处理应该由if 来完成,是不是弄到else 里了。
神往开发部培训课程
3、三思而后行:前期准备
▪ 做任何事情都需要前期准备,在软件开发中更是如此,尽管如此,还是 有很多程序员接到任务后就是想着尽快编码。要想保证一个软件的质量, 在前期准备,需求分析,架构设计,编码,测试,维护等每一个环节都 要重视质量。具体程序员接到任务的时候要检查一下在你之前的那些软 件活动有没有准备好,如果需求中有好多没有说明的地方,架构设计也 不明确,你不知道需要和其它模块之间如何通信,基础组件啥也没有, 这种情况下进行详细设计和编码会很受罪。 和老板同事达成前期准备重要性的共识之后,就是如何做前期准备 以及如何判断前期准备已经做好的技巧,这些是更实用的地方。如何做 前期准备基本上是需求分析人员,产品经理和架构师的关心的问题,而 判断前期准备是否已准备好则是具体程序员也需要具备的能力。
▪ 5. 把警告信息记录到日志文件中
▪ 在检测到错误的时候你可以在日志文件中增加一条警告信息,然后继 续执行,方便查询总结,比如系统日志。
▪ 6、返回一个错误代码 ▪ 7、调用错误处理函数/对象
▪ 优点是:集中处理,调用更简单 ▪ 缺点是耦合性太强,不容移植,如果出现安全问题容易被攻击。
▪ 8、错误发生时显示出错误
防御式编程,这一概念来自 防御式驾驶,在防御式驾驶中要建立这样一种 思维,那就是你永远也不能确定另一位司机将要做什么。这样才能保证 在其他人做出危险动作时你也不会受到伤害。 防御式编程主要思想:子程序应该不因传入错误数据而被破坏,哪怕是有其 他子程序产生的错误数据。
▪ 4.1 对错误输入的保护 ▪ 4.2 错误处理技术 ▪ 4.3 异常
神往开发部培训课程
5.2、Case 语句
神往开发部培训课程
5.2、Case 语句
神往开发部培训课程
2、Case 语句
3.尽量不要使用默认的分支来检查合法的分支 如果没有使用default子句,而仅仅是在case里面做一些处理的话,这 样可能会使程序以后维护起来比较麻烦,修改case 语句很不方便。尽 量不要使用default来做检查,而是采用多写case的方法。
4.如果程序语言支持的话,使用别的机制来代替if –else if-else结构 可以使用case来代替。
神往开发部培训课程
5.2、Case 语句
Case 语句是很常用的,在Java C# 语言里,使用switch case 机制。 下面给出使用Case需要注意的一些地方
使用效率最高的 Case 的组合的顺序
相关文档
最新文档