怎么加少lua程序debug

来源:互联网 发布:c语言 static 变量 编辑:程序博客网 时间:2024/04/27 20:30



错漏百出的程序,必定会影响一个程序员的声誉,得不到别人的信任,别人也不会让你负责重要的工作,也会对程序员的心理造成影响。
开始阅读这篇文章时,请记住一点,一个程序员最重要的工作不是写代码,不是测试程序结构,而是逻辑结构设计和逻辑流图。
一、设计阶段
    设计阶段一定要将整个逻辑思考清楚,只要有一点没有清楚,都不能开始编写代码,做到成竹于胸,逻辑要清晰,工整流畅。设计阶段主要是输入数据类型,逻辑数据流图和数据返回,数据的每个状态都有烂熟于心,只有这样才能开始代码的编写。千万不要拿到需求就开始编写代码,边写代码,边写逻辑,写好了在回过头来重构。这样很容易出错。
    
二、代码阶段
One>> 变量和数据配置
当使用到table存储数据时,尽量使用宏变量,这样方便以后需求的扩展
local _attr = {}
_attr[1] = "GOOGLE"
_attr[2] = "BAIDU"

这样直接使用数字的索引会在以后产生很多问题,如果改为
_MACO = {
GOOGLE = "GOOGLE",
BAIDU = "BAIDU",
}
_attr[_MACO.GOOGLE] = "GOOGLE"
_attr[_MACO.BAIDU] = "BAIDU"

Two>> 使用统一的函数接口,具有相似功能模块合并
使用统一的函数接口的好处是方便别人阅读程序,和便于修改程序,因为数据集中
比如有两个函数,GetName和GetAge
function GetName(char_id)
    return char_id.name
end

function GetAage(char_id)
    return char_id.age
end
函数这样处理不是不可以,但是当模块变大后,会产生很多接口,修改起来浪费精力,这样的接口是可以集成为一个函数GetAttr
function GetAttr(char_id,attr_type)
    if attr_type == "name"
        return char_id.name
    elseif attr_type == "age"
        return char_id.age
    end
end

Three>>尽量使用单值返回,避免多值返回,多值每个值的语义不一样,外部调用很容易出错,比如
function GetMoney(char_id)
    local total_money = BandCount(char_id)
    if total_money < 0 then
        local e_code = 60014              --错误码
        return e_code
    end
    return toal_money,e_code              --金钱,错误码
end
local my_money = GetMoney(id) 这样的函数是为非常危险的,因为将错误码当成金钱,返回值的语义改变了

Thour>>因为lua语言没有拼写错误检测的,在书写变量函数时,一定要小心谨慎

Five>>尽量使用local变量,避免删除造成语义改变

三、测试阶段
当完成一个功能,先不要急着测试,首先要做的是在逻辑上讲程序走一遍,发现没有拼写错误、逻辑错误、语法错误、语义错误时;才进行进行单元测试,单元测试时,将逻辑处理涉及到情况进行详细的分类,再按类别输入测试数据。测试永远是程序最后一个动作,而最多的是逻辑思考。永远要记住一条,世上没有完全的测试,测试只能检测到98%已经算好了。

原创粉丝点击