20、代码转换与重构实践

代码转换与重构实践

1. 代码异味处理

代码中常见的一种异味是注释掉的代码。对于这类代码,解决方法很简单:直接删除。因为可以从源代码仓库中恢复这些代码。

另一种常见问题是条件编译。代码中充斥着条件编译会使其难以理解。虽然有时条件编译不可避免,但在处理平台差异时,应将其作为最后的手段。例如,在查看代码时,发现大量代码被 #ifdef BOARD_V1 #ifdef BOARD_V2 包围, BOARD_V2 的出现次数多达数千次,代码规模从版本 1 到版本 2 几乎翻倍。这种暴力的方式可能不如改进设计,将不同板子的共性整合、差异分离的方法有效。建议使用链接器或函数指针来隔离平台依赖,如 TimeService LightDriver 那样,将平台相关代码分组,使平台相关和无关代码分离。

2. 重构长函数示例

为了让大家感受重构,下面以一个长函数为例进行重构。

static void processEventsDueNow(Time * time, ScheduledLightEvent * event)
{
    Day today = time->dayOfWeek;
    int minuteOfDay = time->minuteOfDay;
    if (event->id != UNUSED)
    {
        Day day = event->day;
        if ( (
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值