2 Star 2 Fork 0

OpenNJet / community

 / 详情

任务2: 优化配置文件产生

进行中
任务 成员
创建于  
2023-06-27 16:45

背景:
目前许多的软件配置都是结构化的,如下面的NGINX配置示例:

http {
    server {
        access_log logs/access.log;
        location /A {
            access_log logs/access.log;
        }
        
        location /B {
            access_log logs/access.log;
            location /C {
                access_log logs/access.log.child;
            }
        }
        
        location /D {
            access_log off;
        }    
    } 
}

但实际上,如果一个指令可以配置在不同层面,其具有继承关系,其配置可以优化。上面的配置可以简化为

http {
    server {
        access_log logs/access.log;
        location /A {
            #access_log logs/access.log;  此处不在需要配置,直接继承server层的access_log
        }
        
        location /B {
            #access_log logs/access.log;  此处也不在需要配置,直接继承server层的access_log
            location /C {
                access_log logs/access.log.child;
            }
        }
        
        location /D {
                access_log off;
        }    
    } 
}

问题:
在工具自动产生配置文件时,需要优化,以减少产生的配置文件大小,并方便维护

需求:
1 给定一个具备任意层级、每个节点具备任意属性的树状数据结构,如果该节点的子节点具备和父节点的相同属性,可以进行裁剪。
2 在中间层节点属性变化时,需要对其子节点进行变更。如下图示例:输入图片说明

评测:
根据背景介绍自己设计数据结构,提供可执行程序,1输出优化后的数据结构,2输出对中间层调整后的数据结构

评论 (0)

Aria 创建了任务
Aria 修改了描述
chenluboTM 修改了描述
chenluboTM 修改了描述
chenluboTM 修改了描述
chenluboTM 修改了描述
chenluboTM 修改了描述
chenluboTM 修改了描述
chenluboTM 修改了描述
Aria 添加了
 
新手引导
标签
Aria 任务状态待办的 修改为进行中
Aria 修改了标题
展开全部操作日志

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(1)
10570963 gebona 1680227251
1
https://gitee.com/njet-rd/community.git
git@gitee.com:njet-rd/community.git
njet-rd
community
community

搜索帮助