面试中经常会被问到项目优化的问题。
比如
- 项目中有哪些问题。
- 项目中有哪些可以优化的地方。
- 项目中有哪些做得不好的地方。
其目的在于查考候选人是否有主观能动性,发现问题与解决问题的能力,主动思考能力,思考的高度,技术广度,视野广度等等。
看问题的地方很多,不一定局限于自己的系统或代码。可以是多维度的,比如说现在的系统流程,系统变更上线机制,监控机制,系统内部实现等等。只要是觉得不好的,或者用起来不舒服,有安全隐患的都可以提出来。然后尝试解决,请教高人。
回答时一定要讲出现状及问题(会导致会么不好的后果,最终会影响业务),最重要的是要给出解决方案。
问题一:
请求与返回参数冗余
现状:业务在请求司机信息时需要全字段返回,但业务并不会用到全部字段,这样会导致数据冗余,大量无用字段在网络中传输,对于后续的稳定性是一个隐患。
解决方案:提供可选字段参数,要什么传什么。建立字段权限机制,对于新接入的业务严格管控,对于存量业务,主动去推动改造。
问题二:
加字段,周期长
现状:业务每次提需求加新字段,要经过mysql 改表结构,代码修改,联调,测试,上线,周期大概得3-4天。
业务快速发展的情况下是完全没有办法满足的。
解决方案:
由于中台系统只是做对数字信息的透传,很少有逻辑,所以大部分可以通过配置化来加字段。
采用fussion存储(列式存储,加字段快速),对代码做配置化改造。
最终效果,加字段加配置,一小时内可以解决。
问题三:
bpm事件流配置未隔离(链路问题)
现状;bpm事件流中的结点都是一个独立的服务。具体服务的地址,调用的参数都是写在配置文件里的。
这些配置文件目前都是放在一个配置空间里,大家都可以看到,注册文件是放在一个文件里。
大家在修改时很容易影响到别的业务。
解决方案:新服务注册需要申请,分配独立的配置空间,实现服务级别隔离。
问题四:
表单配置化验证效果困难
问题五:
系统日志混乱,很多无用日,很多已知问题错误日志,很多调用方参数错误
。。。