防微杜渐——读《C安全编码标准》

  首先这本书的名字是非常洋气的——《C安全编码标准》。然而映入眼帘的却不仅仅是冷冰冰的编码,还有那一套非常严谨的风险评估标准和问题处理方法。对于大型的软件工程,debug是其中必不可少的一部分,也是非常繁琐的一部分。那么如何通过合适的管理方法来将失误掐灭在萌芽状态,就是这本书讲述的内容。

  虽然这本书仅仅以C语言为例,但是它的思想核心确实非常普适的。一方面我们要善于发现问题,同时也要善于求助,作者在编写本书的过程中借助了一些网络社区和Wiki的帮助,再加上自己的处理,才让这本书活色生香。更巧妙的是,Wiki作为本书的延伸,还将不断地扩充,形成了一个动态的C安全编码的生态环境。这种长远的眼光在令我赞叹的同时,也令我深思,在如今这个时代,团队协作越来越成为一种潮流,而用户群体的主动发现,汇报并解决问题的流程同样可以不恰当地形容为一种团队协作,这是一种无意识但异常强大的力量。如果我们能够在开发产品的过程中善用这份力量,将会使我们事半功倍。

  从另一个方面来看,系统化地将问题(建议)归类也是本书成功的一点原因。本书中对的风险评级和优先级的量化使用令我印象颇深。通常我们在日常的学习生活中,错误就是错误,并不会有意识地将其归类,更别说量化其风险评级了。而对于一个项目来说,量化问题的风险和优先度能够为解决问题提供一个很好的指南。对于“这个问题好像要花费更多的时间,那个应该少一点”这种语句来说,“这个bug的优先度是L3,那个是L2,所以先解决这个”更加简洁明快。推而广之,在今后的团队协作中,量化的思维依旧适用,从绩效考评到界面的设计,对模糊的言语来说,一个准确的数词描述总能够更胜一筹。

  此外,危机意识和小心谨慎的确是大型项目中的法宝。纵观书中的许多问题,很多都是一些细小琐碎的错误。然而尽管是这样的小失误,在今后的日子中若日积月累,亦会导致巨大的漏洞。小心谨慎虽然不能帮助我们避免掉工作中的所有失误(显而易见,这也是不太可能的,毕竟人无完人,金无足赤),但是能够让我们回避一些致命的低级失误。而由于人的惰性吗,心理上的小心谨慎难以具体地施行,因此我们需要一些工具,制度来规范我们的行为。比如说GitHub,比如说visual studio,又比如说小组内制定的代码规范等等。好的工具和制度是有灵魂的,它不单单是一种冷冰冰的铁律,而是团队协作精神的集体体现。

  因此,在团队协作构建一个项目期间,《C安全编码标准》给我带来的启示如上所述。对于我来说,团结和利用好用户是调试的一种好手段,量化评级则是有效交流和执行任务的稳固根基,危机意识和小心谨慎是团队成员抵御错误的坚实堤坝,有效利用这几点,相信将是我们良好工作的开端。

防微杜渐——读《C安全编码标准》的更多相关文章

  1. C#编码标准--编码习惯

    C#编码标准--编码习惯 0.  书写程序时的大小写规则: a) 类:PascalCase表示法.如 MyClass b) 枚举值:PascalCase表示法.如 Colors.Red c) 枚举类型 ...

  2. javascript编码标准

    前面的话 编码标准是有争议的.几乎每个人都有自己的标准,但对标准应该是什么样的,则似乎很少能达成共识.但编码标准意味着,通过共同语言和一致的结构,把开发人员从无意义的工作中解放出来.允许开发人员把创新 ...

  3. VP9 vs H.265——下一代视频编码标准的王道之争

    目前下一代主流的视频编码标准有 ITU-T VCEG 推出来的 H.265 和 Google 推出 VP9 . H.265 在 H.264 的基础上保留其中的部分技术,并对相关技术加以改进研发而成.新 ...

  4. Java安全编码标准

    Java安全编码标准 具体参考Rules 输入验证和数据净化(IDS)规则风险评估概要 IDS00-J净化穿越受信边界的非受信数据 IDS01-J验证前标准化字符串 IDS02-J在验证之前标准化路径 ...

  5. 视频基础知识:浅谈视频会议中H.264编码标准的技术发展

    浅谈视频会议中H.264编码标准的技术发展 浅谈视频会议中H.264编码标准的技术发展 数字视频技术广泛应用于通信.计算机.广播电视等领域,带来了会议电视.可视电话及数字电视.媒体存储等一系列应用,促 ...

  6. C# 编码标准(二)

    先八卦一下,昨天写了C# 编码标准(一),得到了@h82258652的补充,感到非常欣慰,一是感觉他的观点扩展了我的视野,丰富了我的看法,所以更坚定了我继续写博客的想法,由于是五笔打字,经常不写东西, ...

  7. 音视频处理之H264编码标准20170906

    一. H264基础概念 1.名词解释 场和帧 :    视频的一场或一帧可用来产生一个编码图像.在电视中,为减少大面积闪烁现象,把一帧分成两个隔行的场. 片:             每个图象中,若干 ...

  8. Android编码标准

    只是练习是很难找工作那会儿在,简历基本上都是赶出去石沉大海,因为有项目开发没有实践经验.没有牛逼的背景.更重要的是,没有真才实学,虽然我在大学时读的是计算机专业,它可以被认为是一个技术教育.但--你知 ...

  9. 关于nodejs的几个干货(读中文文件编码问题/发送邮件/定时任务)

    关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了. 下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后 ...

随机推荐

  1. Centos7下安装redis实战(单机版以及集群)

    一.背景 因项目需要,要引入redis做缓存,就在centos7下亲自安装了一遍redis,刚好趁着这个机会就来把redis的概念以及单机版和集群版redis安装步骤记录下来,在此和大家一起分享. 二 ...

  2. HTML5本地储存sessionStorage的销毁数据问题

    前几天项目中用到了本地储存,虽然说也就是几个api,但之前有一个问题一直没有去想,我们知道本地储存分为两种,一种是临时储存,关闭浏览器后数据就会销毁,另外一种是没有时间限制的储存,我们做的这个页面比较 ...

  3. 《Netty权威指南》目录

    一.基础篇 走进Java NIO 1. Java 的 I/O 演进之路:https://www.cnblogs.com/zengzhihua/p/9930652.html 2. NIO 入门:http ...

  4. 逆向工程-对native层的一次简单逆向实践

    关注一款app很久了,这款app为了防止别人逆向破解拉取数据做了很多工作: 防止别人修改apk包,执行关键动作时对dex文件进行md5验证: 防止用户调用接口批量拉数据,对返回的web网页里个人信息进 ...

  5. Java转义emoji等特殊符号

    写在前面 网上找了很多转emoji等方法,大多有两种方法 更改数据库编码格式为utf8mb4 过滤字符串中的emoji 都不是很优雅 更改数据库编码,势必影响其他数据库 过滤emoj效率比较低 处理E ...

  6. DataGridview启用列重新排序属性的作用

    DataGridview是winform中经常用的控件,今天来了解一下启用列重新排序属性的作用 默认没有选中是不能改变列前后顺序的 启用列重新排序后如下图可以拖动列标题(列标头)来改变列前后顺序

  7. gulp自动添加版本号过程中的一些要点记录

    1.打开node_modules\gulp-rev\index.js 第144行 manifest[originalFile] = revisionedFile; 更新为: manifest[orig ...

  8. Sql动态查询拼接字符串的优化

    Sql动态查询拼接字符串的优化 最原始的 直接写:string sql="select * from TestTables where 1=1";... 这样的代码效率很低的,这样 ...

  9. SQL Server系列文章目录

    SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录

  10. Java虚拟机 - 类初始化

    [深入Java虚拟机]之三:类初始化 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码.虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化: 遇到new. ...