防微杜渐——读《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. 【从0到1学Web前端】CSS定位问题一(盒模型,浮动,BFC) 分类: HTML+CSS 2015-05-27 22:24 813人阅读 评论(1) 收藏

    引子: 在谈到css定位问题的时候先来看一个小问题: 已知宽度(假如:100px)div框,水平居中,左右两百年的分别使用div框填充.且左右div自适应. 效果如下图: 这个问题的难点主要是浏览器宽 ...

  2. VMware虚拟机克隆Linux(CentOS)系统后找不到eth0网卡的问题(图文详解)

     问题现象: 有时候,会使用VMware虚拟机的的克隆功能,快速的复制已安装好的Linux系统. 可是克隆完之后,会发现没有eth0网卡. 解决办法: 1.编辑/etc/udev/rules.d/70 ...

  3. Intellij IDEA Spring Boot 项目Debug模式启动缓慢问题

    问题 Intellij IDEA Spring Boot 项目Debug模式启动缓慢 环境 os: windows10 idea :2018.1 解决方法 去除所有断点就正常了,很诡异,原因未知.

  4. 15 图-图的遍历-基于邻接矩阵实现的BFS与DFS算法

    算法分析和具体步骤解说直接写在代码注释上了 TvT 没时间了等下还要去洗衣服 就先不赘述了 有不明白的欢迎留言交流!(估计是没人看的了) 直接上代码: #include<stdio.h> ...

  5. Linux信号和trap命令的使用

    目录 信号介绍 信号列表 控制信号 Ctrl+c显示指定内容 使Ctrl+c无任何操作 处理多个信号 处理所有信号 恢复信号 实现跳板机(实例) 信号介绍 运行Shell脚本时,如果按下快捷键Ctrl ...

  6. gitlab的md文件内使用锚点

    markdown中使用锚点的格式: [要显示的内容](#锚点的链接) 如: [工具](#tool) 又因为再markdown中每一个标题都默认是锚点,所以事情就简单了 # test ## conten ...

  7. 【IT笔试面试题整理】位操作

    如何准备: Bit manipulation can be a scary thing to many candidates, but it doesn't need to be! If you're ...

  8. 临时表 on commit delete rows 与 on commit preserve rows 的区别

    -- 事务级临时表:提交时删除数据 create global temporary  table tmp_table1 (        x     number ) on commit delete ...

  9. Hexo的搭建

    Hexo的安装与初始化 1.确保电脑已经安装Node.js,Git 打开GUI Bash,输入以下代码安装Hexo: npm install -g hexo-cli 2.运行以下命令在目标文件夹初始化 ...

  10. jdk源码->并发->Unsafe&Atomic

    synchronized关键字类似于java中的悲观锁机制,接下来介绍一种java的乐观锁机制Unsafe类 CAS CAS简介 CAS全称是Compare And Swap,即比较交换,它是在并发执 ...