第一章 假想的编译程序 要记得对空语句进行处理,最好使用NULL使其明显可见 char * strcpy(char* pchTo, char* pchFrom) { char* pchStart = pchTo; while(*pchTo++ = *pchFrom++) NULL; return (pchStart); } 某些编译程序允许用户在 && 和 | | 表达式以及 if.for 和 while 构造的控制表达式中禁止使用简单赋值,这样就可以帮助用户查出这种错误.这种做法的基本依…
通常,子系统都要对事实上现细节进行隐藏,在进行细节隐藏的同一时候.子系统为用户提供了一些关键入口点. 程序猿通过调用这些关键的入口点来实现与子系统的通信.因此假设在程序中使用这种子系统而且在其调用点加上了调试检查,那么不须要花费多少力气就能够进行很多错误检查. 当子系统编写完毕后,要问自己:"程序猿什么情况下会错误地使用这个子系统.在这个子系统中如何才干自己主动检查出这些问题?"在这篇文章中.将讲述一些用来肃清子系统中错误的技术.使用这些技术.能够免除很多麻烦.本章将以C的内存管理程序…
接着上一遍文章<<编程精粹--编写高质量C语言代码(2):自己设计并使用断言(一)>>,继续学习怎样自己设计并使用断言,来更加easy,更加不费力地自己主动寻找出程序中的错误. 首先看一个简单的压缩还原程序: byte* pbExpand(byte *pbFrom,byte *pbTo,size_t sizeFrom) { byte b, *bpEnd; size_t size; pbEnd=pbFrom+sizeFrom; while(pbFrom<pbEnd) { b=*…
编译程序只能查找出程序的语法错误,而对于"数组越界訪问","对空指针解引用"等错误.编译程序是束手无策的.同一时候我们知道測试人员所使用的黑箱測试方法所能做的不过往程序里填数据,并看它弹出什么.这就决定了对程序错误的检測可能须要点运气. 假如编译程序可以检測出"数组越界訪问","差一错误","空指针"等等错误,那么编写无错代码事实上就要简答多了. 所以我们须要一个思维转变: 不要光依赖黑箱測试方法.还应该试…
0.规则<The Elements of Programming Style><The Elements of Style> 1.假想的编译程序(1)使用编译器提供的所有的可选警告设施 增强类型静态检查的能力eg: void* memchr(const void* str, int ch, int size);那个调用该函数时,即使互换其字符ch和大小size参数,编译器也不会发出警告 但是如果在函数原型中使用更加精确的类型,就可以增强原型提供的错误检查能力void* memchr…
SublimeLinter 是前端编码利器——Sublime Text 的一款插件,用于高亮提示用户编写的代码中存在的不规范和错误的写法,支持 JavaScript.CSS.HTML.Java.PHP.Python.Ruby 等十多种开发语言.这篇文章介绍如何在 Windows 中配置 SublimeLinter 进行 JS & CSS 校验. 准备工作 安装 Sublime Text 包管理工具:http://wbond.net/sublime_packages/package_control…
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ZoXYbjuezOWgNyJKmSQmTw作者:杨昆 [编写高质量函数系列],往期精彩内容: <如何编写高质量的 JS 函数(1) -- 敲山震虎篇>介绍了函数的执行机制,此篇将会从函数的命名.注释和鲁棒性方面,阐述如何通过 JavaScript 编写高质量的函数. <如何编写高质量的 JS 函数(2)-- 命名/注释/鲁棒篇>从函数的命名.注释和鲁棒性方面,阐述如何通过 Ja…
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EWSqZuujHIRyx8Eb2SSidQ作者:杨昆 [编写高质量函数系列]中, <如何编写高质量的 JS 函数(1) -- 敲山震虎篇>介绍了函数的执行机制,此篇将会从函数的命名.注释和鲁棒性方面,阐述如何通过 JavaScript 编写高质量的函数. <如何编写高质量的 JS 函数(2)-- 命名/注释/鲁棒篇>从函数的命名.注释和鲁棒性方面,阐述如何通过 JavaScri…
 题记:这是自己的观后感,工作两年了,本来打算好好学习设计模式,或者作为客户端深入了解GPU编程的,但是突然发现还有这么一本书. <编写高质量代码改善建议>,感觉这正是自己需要的. 我是做游戏开发的,最近一段时间工作,接触到了数学编程,涉及到大量的计算,策划那边增改需求也很多,加上我的项目对性能要求很高.微量的计算影响到 性能.所以对代码质量要求很高,明显自己的代码质量已经不达标了.所以,我还是打牢固基础,编写高质量代码才是王道. 之前工作经历了很多其他人的代码,什么工作三四年,甚至四五年的代…
首先说明,本周活动有效时间为2016年8月28日到2016年9月4日.本周为大家送出的书是由机械工业出版社出版,马伟编著的<编写高质量代码:改善C程序代码的125个建议>. 编辑推荐 10余年开发经验的资深C语言专家全面从C语法和C11标准两大方面深入探讨编写高质量C代码的技巧.禁忌和实践 C语言因为既具有高级语言特性,又具有汇编语言特性,所以它是近二十几年来使用较为广泛.生命力较强的编程语言.无论是操作系统.嵌入式系统.普通应用软件,还是移动智能设备开发,它都能够很好地胜任,是公认的强大的语…