防微杜渐——读《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. spring cloud(服务消费者(利用ribbon实现服务消费及负载均衡)——初学二)

    Ribbon是一个基于HTTP和TCP客户端的负载均衡器,利用ribbon实现服务消费,并实现客户端的负载均衡. 一.准备工作(利用上一节的内容) 启动服务注册中心 启动computer-servic ...

  2. Vue + Element UI 实现权限管理系统 前端篇(二):Vue + Element 案例

    导入项目 打开 Visual Studio Code,File --> add Folder to Workspace,导入我们的项目. 安装 Element 安装依赖 Element 是国内饿 ...

  3. Linux系统修改防火墙配置

    防火墙配置文件位置 /etc/sysconfig/iptables 需要开放端口,请在里面添加一条内容即可: 1 -A RH-Firewall-1-INPUT -m state --state NEW ...

  4. 【PyTorch深度学习60分钟快速入门 】Part0:系列介绍

      说明:本系列教程翻译自PyTorch官方教程<Deep Learning with PyTorch: A 60 Minute Blitz>,基于PyTorch 0.3.0.post4 ...

  5. 第一次项目上Linux服务器(八:——搭建Nginx图片服务器)

    一.准备工作 安装Nginx,参考历史博客 二.搭建Nginx图片服务器 1.效果 例如:图片通过xftp服务上传到/home/java/upload目录下,我想通过访问Nginx服务器来访问xftp ...

  6. 【LeetCode题解】844_比较含退格的字符串(Backspace-String-Compare)

    目录 描述 解法一:字符串比较 思路 Java 实现 Python 实现 复杂度分析 解法二:双指针(推荐) 思路 Java 实现 Python 实现 复杂度分析 更多 LeetCode 题解笔记可以 ...

  7. Asp.net core WebApi 使用Swagger生成帮助页实例

    最近我们团队一直进行.net core的转型,web开发向着前后端分离的技术架构演进,我们后台主要是采用了asp.net core webapi来进行开发,开始每次调试以及与前端人员的沟通上都存在这效 ...

  8. 使用 SQLServer On Linux 作为开发数据库遇到的编码问题

    在维护旧的项目的时候,遇到了使用 varchar 类型存储中文的情况,本地数据库是直接使用来自上古时期的 T-SQL 创建的.为了方便,我就没有安装 Windows 版的 SQLServer,直接用的 ...

  9. 【17】迭代器模式(Iterator Pattern)

    一.引言 在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合.在这一章中,将介绍一下迭代器模式. 二.迭代器模式的介绍 迭代器是针对集合 ...

  10. lastIndex()与IndexOf()的区别

    lastIndex()与IndexOf()的区别 str.indexOf() indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置(从左向右).没有匹配的则返回-1,否则返回首次出现位 ...