防微杜渐——读《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系统下YUM安装安装Mongodb 3.4

    第一步 查看是否存在Mongodb配置yum源 切换到yum目录 cd /etc/yum.repos.d/ 查看文件 ls 第二部 不存在添加yum 源 创建文件 touch mongodb-3.4. ...

  2. php -- 连接Mysql 数据库

    ----- 022-mysql.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  3. mpvue图片轮播遇到的问题

    小程序官方写法: <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" i ...

  4. vue父组件传参给子组件

    其实组件之间传参有很多种方法: 1.通过本地存储 2.使用vuex状态管理 今天记录一下第三种方法 1.首页我们先创建一个项目(创建项目自行百度) 2.打开项目,在components文件夹下新建一个 ...

  5. 精读JavaScript模式(一)

    一.前言 为什么读这本书? 其实做前端开发,一个需求给不同工作经验的人去做,只要完工时间不算苛刻,大家都是能实现的.功能实现虽然大致相同,但当我们回归代码去看实现方式,代码书写的美观程度,以及实现的方 ...

  6. JVM学习记录-线程安全与锁优化(一)

    前言 线程:程序流执行的最小单元.线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址.文件I/O等),又可以独立调度(线程是C ...

  7. 使用EntityManager批量保存数据

    @PersistenceContext EntityManager em; 从别的系统中定期同步某张表的数据,由于数据量较大,采用批量保存 JPA EntityManager的四个主要方法 ① pub ...

  8. SQLServer之视图篇

    1 视图介绍          视图是从一个或者几个基本表(或视图)导出的表.它与基本表不同,是一个虚表.数据库中只存放视图的定义,而不存在视图对应的数据,这些数据仍然存放在原来的基本表中.所以一旦基 ...

  9. EF批量操作数据与缓存扩展框架

    前言 在原生的EF框架中,针对批量数据操作的接口有限,EF扩展框架弥补了EF在批量操作时的接口,这些批量操作包括:批量修改.批量查询.批量删除和数据缓存,如果您想在EF中更方便的批量操作数据,这个扩展 ...

  10. CSS学习笔记02 CSS选择器

    1.通配符选择器 通配符选择器用“*"号表示,是所有选择器中作用范围最广的,能匹配页面中所有的元素 /*设置当前页面中所有标签的颜色为红色*/ * { color: red; } 2.标签选 ...