架构的终极目标是:降本增效
架构的工作内容是:性能和易用性的权衡
假如框架每一个环节的易用性有那么一点微不足道的提升,整体开发效率的提升是这一点的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);