代码写的又好又快的秘诀

好与快的区别就是代码质量的区别,在保证一定代码质量的前提下,去追求快。

代码时间花在 分析,测试,调试 上面

代码阅读法:

不管你的调试技巧怎么样,都没有一次性写好来的高效

常见方法:第一遍:检查语法、代码、排版、命名规则

第二遍:关注常见的编程错误:内存泄漏、访问越界、变量初始化、函数忘记返回值等等

然后将代码放在自己的脑子里面去执行。

将自己的思路分享给自己听,让自己去评审代码。

常见的编程错误

1.内存错误:这对于嵌入式系统和长期运行系统是致命的。

2.内存访问越界: 内存读和写越界的变现是出现时机随机、表现症状随机、造成后果随机,这也给调试带来的极大的难度。所以在编程时就要小心设计,仔细检查外部参数传入。

3.野指针: free掉指针之后,要立即把指针指向NULL;

4.访问空指针

5.引用未初始化变量

6.不清楚指针运算

7.结构的成员顺序引发的错误

8.结构大小的变化引起的错误

9.分配/释放不对

10.误解传值和传引用

11.符号重名

12.栈溢出

13.误用sizeof 

14.字节对齐

15.字节顺序

16.多线程变量没用valotile修饰

17.忘记函数的返回值

自动测试

assert(thiz != NULL);
if(thiz == NULL)
{
    return DLIST_RET_INVALID_PARAM
}

这样的检查输入方法有个问题,异常之后就会导致程序死掉

来源: 《系统程序员成长计划》

时间: 2024-08-01 14:05:32

代码写的又好又快的秘诀的相关文章

★★★★★★★★★★★★★★★★★★啊好烦,写代码写的要吐血了哦

全数字好域名疯狂抢99%成功率|域名注册|已备案未注册|到期删除过期域名查询|-尽在(爱酷名_ikuMing.com) 啊好烦,写代码写的要吐血了哦 写代码真的好痛苦啊,快坚持不下去了,谁来拯救我一下哦

js280行代码写2048

2048 原作者就是用Js写的,一直想尝试,但久久未动手. 昨天教学生学习JS代码.不妨就做个有趣的游戏好了.2048这么火,是一个不错的选择. 思路: 1. 数组 ,2维数组4x4 2. 移动算法,移动后有数字的对齐,无数字(我用的0,但不显示)补齐. 移动前 移动后(注意程序合并了第一行2个2,并产生了新的2) 移动算法分2步: 第一步骤:移动 第二步骤:合并 移动代码参考: function left(t,i) { var j; var len = t[i].length; for (j=

你加班太多是因为你的代码写的烂

今天看见一篇不错的文章,给大家分享一下 作为一名程序员,我渴望我加入的应该要是一支"30%的时间在写代码,而70%的时间在喝着咖啡讨论着如何将产品做好"的团队.我觉得软件工作应该成为一项技术和艺术融合的高智力活动,我们的项目经理应该是一个高度理解质量.范围和进度客观规律的明白人,"高效工作,快乐生活"才应该是我们的座右铭. 可现实情况却是,团队在一边超负荷的做着需求,一边改着没完没了的Bug.过点前夕,项目经理熬着通红通红的眼睛盯着我们整晚整晚的加班,质量专员一遍一

ios 用纯代码写程序的时候,navigationController的导航栏的设置

我们都知道,如果用storyBoard设置导航栏很容易,点击左右item的时候,进入下一个界面,导航栏的颜色是跟上一层的是一样的,用纯代码写的时候,可以在当前控制器,和从当前控制器进入到下一个控制器都用代码实现对导航栏的控制,但是,每次都写代码设置,很麻烦,所以,可以这样: 创建一个MainTabBarController的类,在Appdelegate.m里面完成: - (BOOL)application:(UIApplication *)application didFinishLaunchi

当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的

英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说“这段代码不言自明”?你的同事的这句话的实际意思是这段代码不需要写注释. 你也许注意到了,很多时候,程序员所说的话的字面意思和其真实的意思是完全不同的.不用惊异,下面你将很快知道这些暧昧的短语和其深层次的意思都是什么. 最近 Imgur 上出现了一张图片,里面列举的程序员的一些专业术语和其含义,它能很好的帮助你理解这些话的真实意思.这里是对其中的精华进行的总结. 典型的程序员之间的对话 当

牢骚 - 你代码写得丑,又不肯用好一点的IDE,这让我很为难啊。

又有人问我代码错误,发过来就是一篇巨丑无比的代码,先不说左大括号转行还和代码写在同一行的谭浩强风格,你这狗啃的一样的缩进是闹哪样!粘进VS2015里面,自动格式化,瞬间赏心悦目,编译错误出了5行,我直接粘给他,他说这些都没有错啊,然后发给了我一个VC6编译错误的截图,错误足是VS2015的三倍多,我定睛一看,MB,少写了一个右大括号,怪不得这么多莫名其妙的错,改过来之后,又是未初始化变量又是scanf少参数,反正都是VC6查不出的错呗,直接粘给他,免得之后运行出错又过来问我,我才不管这些由于用了

开发(ASP.NET程序)把写代码写至最有面向对象味道

今天看了条博文,瞬间又勾起了对设计模式的兴趣.虽然掌握的不多,但看一个学一个总归是好的.一下是文章中的内容和整理. 首先看原始代码 1 public void show2(string day) 2 { 3 string[] str = new string[] { "09:00", "11:00", "12:00", "13:00", "14:00", "15:00", "1

李冬强-用代码写view

主要代码 // //  ViewController.m //  创建view-709 // //  Created by apple on 14-7-9. //  Copyright (c) 2014年 戴维营教育. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad

用代码"写"出扫描线效果图片

我们一般采用photoshop等做图工具制作电视扫描线效果图片:首先做一个黑白相间的图案,然后用这个图案进行填充,再调整图层的模式或者透明度,效果就出来了. 现在我们不用photoshop,用css和javascript来做,方法也很简单! 步骤一. 我们先准备一张图片,以我的图片为例,命名为”青山绿水.jpg”,图片大小为1000X543. 步骤二. 在body内插入一个table表格,为表格设置class属性,值为”tvline”,设置表格的背景图片为事先准备的图片. 步骤三. 建立一个cs