码迷,mamicode.com
首页 > 其他好文 > 详细

导致选型失败的原因有哪些?

时间:2019-01-29 11:01:47      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:cin   link   技术选型   性能   关键技术   blink   个人   sys   nes   

虽然刚工作几年接触不到技术选型,因为大部分已有架构设计、总体设计的人确定了,但随着个人工作成长,未来很可能要面临技术选型,其实如果你真的动手做些自己的项目的话,也面临着技术选型,只是看你是否足够重视罢了。吸取别人失败的教训会让我们少走弯路。

其原因大致可概括为:缺乏估算、实验不够与轻视经验。这三点该如何理解呢?

| 缺乏估算

简单来说就是对技术模型维度的分析,考虑某个组件是否有可能达到我们想要的目的,确认它是否真的做到了。

就像选择一门开发语言,我们会考虑它的内存模型和性能指标,而数据库选型,我们则会考虑其存储模型、数据量级及成本开销。如果是开源项目,还要考虑它的社区活跃度、分值支持率及文档完整性等。

对于像中间件这种关键技术项,除了考虑它的健壮性、扩展性及灵活性等基本要素,你还应适当阅读核心源码,不能因为耗费精力过多、嫌麻烦,就一笔带过。

| 实验不够

既然是估算,那就有可能存在偏差。比如一个语言虽说具有自动管理内存的功能,但并不代表它在所有场景下都会起作用,因此需要实际场景实验,毕竟用实际数据说话是最靠谱的。

所以,要对核心业务进行场景镜像构建,并使用工具对服务进行特定场景下的分析,或通过提高压力、增加容量或者针对性的测试,来验证是否达到预期,并分析不同场景之间的差异和表现。比如可以尝试在开发环境做一次,在集成测试环境做一次,最后在仿真环境再做一次。

在实际工作中,这几步往往被简化,而我觉得,如果你希望中间件这种关键技术项在生产环境中运行稳定且高效,你就应该严格走好每一步。

| 轻视经验

在技术选型上,我一向忌讳 “在百度搜一下,觉得差不多了就照抄” 的方式,尤其对于中间件这类基础服务来说,忽视经验的举动都是危险行为,在还没弄清楚原理与本质之前,如何才能确定这项技术是否经得起产线的考验?

比如我对分布式数据库进行技术选型,通过百度搜索下,肯定出现许多看上去极其靠谱的信息,但我们的需求是解决并发与读取频率较高,而数据块不大,对于交易系统而言,必须确保数据安全,显然这样的需求无法使用关系型数据库,因为性能是瓶颈,然而看看网上写的,几乎所有的关系型数据库都会说自己能够满足高性能场景。

在实际工作中,我会先列出需求,再细分需求,待明确评判标准之后,或通过基于已有经验进行实验,或走访外部团队进行学习,将经验带回后再进行实验,千万不可盲目的跟风走,哪个热门就选哪个,这些方式不但不正确,而且后患无穷。

 吃草的罗汉

导致选型失败的原因有哪些?

标签:cin   link   技术选型   性能   关键技术   blink   个人   sys   nes   

原文地址:https://www.cnblogs.com/doit8791/p/10328466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!