技术方案的思考方法

栏目: 数据库 · 发布时间: 6年前

内容简介:最近在公司技术晋升中担任评委工作,算上这次总共参加了两次晋升评审,看到了一些技术人员晋升中的问题,稍微掌握了一些规律。借着这次评审,谈谈在技术方案思考中的一些方法。技术人员晋升时,最容易出现的问题就是罗列成绩,自己以前也是这种思路。今天谈到的思考方法,并不是为了晋升而做,而是在日常开发工作中也非常有用。

0 背景

最近在公司技术晋升中担任评委工作,算上这次总共参加了两次晋升评审,看到了一些技术人员晋升中的问题,稍微掌握了一些规律。

借着这次评审,谈谈在技术方案思考中的一些方法。

技术人员晋升时,最容易出现的问题就是罗列成绩,自己以前也是这种思路。今天谈到的思考方法,并不是为了晋升而做,而是在日常开发工作中也非常有用。

经常有人的技术方案被批评过度设计。这次晋升评审中,也有一个开发同学被批评是这种思路。这个同学先是讲了中台架构的技术方案,当时的对话大致如下:

评委:这个架构分层的依据是什么?
开发:这个分层方案遵循了阿里的中台架构方案。
评委:这个分层方案一定是对的吗,很好的解决了所面对的问题吗?
开发:阿里作为业界领头羊,具有很大的业务量,这种分层没什么问题。
评委:你才用了这种分层方案之后,有遇到什么问题吗?
开发:(2分钟的思考),遇到了,xxxxx

这个开发之前已经晋升评审过两次,都失败了,之前的评委给到的评语都是过度设计。通过这番话,也不能就直接说这个研发就是过度设计了,因为无从判断;但至少知道这个开发对技术方的选型是有问题的,也许这个技术方案选型对了,但这个结果只能看概率。

1 问题推导解决方案

从上面的案例来看,方案选型的重要前提是 问题是什么 ,因为只有把问题解释清楚了,才知道具体要做什么,解决什么,否则没有问题,所有的解决方案都是无本之木。

为了更好的解释,我们举个例子:

线上有个对外(公网)http接口性能较差,需要做性能优化

之前在与很多研发说类似性能问题时,他们第一个念头是加 redis 缓存。但只要问为什么要加缓存,有什么必要性,他们一般给到的回答是:大家都这么做。再简单问一下为什么选择redis而不是memchace或其他cache?回答也都是:一般行业做法,或者redis可以持久化等表面回答。

这个选型过程之所以经不起推敲,最大的原因在于不知道要解决什么,也就是有两点没有清楚:

  • 定义问题
  • 分析问题

1.1 定义问题

简单来说,就是问题到底是什么。比如例子中的性能问题,这个大的方面是http接口性能不好,那这个是因为依赖接口性能不达标,还是接口调用顺序有问题,还是请求的数据量大?因为性能问题是个很大的问题,需要精确的定位。

按上面的分析来看,如果是请求数据量大,可能会导致网络传输时间较长,而且对底层数据库的压力较大;如果是依赖接口调用顺序问题,http接口可能依赖了10多个接口,每个接口响应时间都在10ms,但都是串形调用;这两种问题,对应的解决方案是有很大差异的。

1.2 分析问题

定义问题和分析问题应该是个循环往复的过程,在清晰认知问题之前,会不断的分析问题,定义问题。分析问题,就是把面对的问题,拆解并深入。比如例子中,如果是请求数据量大,这种数据量是真实需求吗,数据量是否不可避免,如果不可避免,那是否可以拆分多个接口实现;数据量大,对数据库有多大影响;这两种影响对问题的占比是多少等等。

分析问题把问题拆解深入,就像庖丁解牛一般,之后再进行合并同类项。

2 方案的衡量指标

对问题定义及分析完毕之后,怎样才算是解决了这个问题,或者衡量问题解决程度。

比如性能问题,最终目标是什么,如 avg<50ms,99线 <100ms 999线 <150ms。再细化下去,没有long-sql,没有long-service等指标,数据一致性高,数据实时性要求ms级。

衡量指标,不单单检验解决方案有效性,也能够指导方案的实施。比如没有long-sql,这点就要求方案要关注到对db的印象,数据实时性要求高,在方案上就不会使用缓存了。

制定衡量指标,有以下关键点:

  • 指标数据化
  • 指标的优先级
  • 指标的阶段性目标

问题的解决方案一般会有多种,要选出最优(合适)解决方案,就需要根据衡量指标做判断。在方案实施上线后,才能根据衡量指标确认问题是否已经解决,如果没有解决还有哪些指标需要完成。

3 总结

解决问题过程中,都会集中在解决方案上,但分析并定义问题、并制定合理的衡量指标,整个解决方案就已经完成了一半以上。清晰认知问题,解决方案就已经呼之欲出了。剩下的一半工作量就是方案推进执行,这涉及到项目管理,在之后的文章里再做阐述。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

iOS应用逆向工程 第2版

iOS应用逆向工程 第2版

沙梓社、吴航 / 机械工业出版社 / 2015-4-1 / 79.00

你是否曾因应用上线的第一天即遭破解而无奈苦恼,想要加以防范,却又束手无策? 你是否曾为某一应用深深折服,想要借鉴学习,却又无从下手? 你是否已不满足于public API,想要进军Cydia开发,却又求学无门? 你是否已产生“不识Apple真面目,只缘身在App Store中”的危机感,想要通过阅读来一窥这冰山一角外的整个北极,却又找不到合适的书? 你是否已经因无法跨越开发......一起来看看 《iOS应用逆向工程 第2版》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具