心心念念的优化完成了,虽然不是很完美

2023-06-13 14:53:53 浏览数 (1)

核心模块有个功能点,一直以来想着将其优化掉(虽然在线上稳定运行了这么多年),要么没时间,要么懒的搞,一拖再拖。期间也想了各种方案,无奈不是很完美,恰好吴老师进群了,随向有着20多年经验的吴老师进行了请教,也跟A总,E总等进行了讨论,慢慢的也有了优化思路,于是用了大概一天的时间,基于这几个大佬的方案,进行了优化。

需求

项目中有这样一个需求,根据一个类别名以及其对应的类型,创建对应的数据结构。需求很简单吧。。。

优化前的版本,先创建一个配置,然后程序启动的时候,加载跟配置,然后根据配置内容进行相应的操作。

配置如下:

config.json

代码语言:javascript复制
{
"phone_brand":"string",
"gender":"int"
}

解析如下:

代码语言:javascript复制
// parse config.json
if (pare("config.json").failed()) {
  return;
}
for (const auto & item : parse.elements()) {
  auto name = item.first();
  auto type = item.second();
  if (type == "string") {
    mp[name] = std::make_shared<Session<std::string>>(name);
  } else if (type == "int") {
    mp[name] = std::make_shared<Session<int>>(name);
  }
}

其实,说实话,如果没有洁癖的话,这段代码也不是不可行

0 人点赞