架构师的悟道1:性能和易用性的权衡

架构的终极目标是:降本增效

架构的工作内容是:性能和易用性的权衡

假如框架每一个环节的易用性有那么一点微不足道的提升,整体开发效率的提升是这一点的N倍。

// 普通框架的消息handler
void on_login(int msg_id, char* buf, int len)
{
    // 在业务线程创建消息消息类
    auto msg = new find_class(msg_id);
    // 在业务线程反序列化
    msg.encode(buf, len);

    // 业务操作
    msg.xxx
    ...

    // 在业务线程销毁消息对象
    delete msg;
}
void on_skill(int msg_id, char* buf, int len)
{
    // 在业务线程创建消息消息类
    auto msg = new find_class(msg_id);
    // 在业务线程反序列化
    msg.encode(buf, len);

    // 定位玩家对象
    auto player = find_player(msg.player_id);

    // 业务操作
    msg.xxx
    ...

    // 在业务线程销毁消息对象
    delete msg;
}

// 注册消息handler
reg_handler("msg_login", on_login);
reg_handler("msg_skill", on_skill);

// 优秀框架的消息handler

// 在框架层的“反序列线程”执行:
//     创建消息对象、反序列化和销毁消息对象
// 充分释放“业务线程”的CPU空间提高处理业务逻辑能力
void on_login(msg_login* msg)
{
    // 直接业务操作
    msg.xxx
    ...
}

// 在框架层的“反序列线程”执行:
//     创建消息对象、反序列化和销毁消息对象
// 充分释放“业务线程”的CPU空间提高处理业务逻辑能力
void on_skill(msg_skill* msg, player_t* player)
{
    // 直接业务操作
    player.xxx = msg.xxx
    ...
}

// 注册“普通”消息handler
reg_handler("msg_login", on_login);
// 注册“玩家”消息handler
reg_player_handler("msg_skill", on_skill);

posted @ 2025-08-31 00:38  码客-ygluu  阅读(2)  评论(0)    收藏  举报