软件架构——选择好的基础



宇宙任何事物都有产生,发展,成熟,消亡的过程。一个事物,最脆弱的时候是其产生和消亡的时候,而发展过程则是壮大的过程。比如,一种水果,最有价值的时候是其成熟期,一个正常的人,不会在水果刚结果的时候就食用他,也不会在水果长大期间,还没有成熟之前来食用它,更不会水果成熟溃烂后食用它。一种水果,最有价值的时候,就是能被人食用的成熟期。一种产品,同样是在其成熟的时候具有最佳价值,一种产品,在其刚刚产生的时候,光彩夺目,但是往往存在缺陷和不稳定的,需要不断的改进迭代来达到成熟的程度。比如,就计算机而言,大家都知道,视窗出现之前,是dos系统,视窗出现,令人耳目一新,带着美丽的光环,但是它不是强大的,最初windows95,各种问题,甚至经常出现死机的情况,经过市场不断迭代,经过windows98等的发行版,最终形成稳定的xp系统成熟产品。

对于一个需要为其他事物作为某种支撑的某种事物来说,成熟期是最稳定的。习总说:“基础不劳,地动山摇”,没错,作为基础都不牢靠,不稳定,上层建筑如何强壮?基础不劳,任何风吹草动都会使得整个建筑崩溃,不强壮的建筑是没有价值的建筑,也是存在巨大风险的建筑,它有可能随时将所有的一切吞噬。

曹刿,善用锐气锋芒,大败敌人;刘伯温善用大风,在其最旺的时候火烧陈友谅;关键在于把握时机,是个度的问题。君子善用其机,智者善用其利而巧避其害。

对于软件技术而言,我们的架构基本架构在底层的技术基础之上,我的的设计属于上层建筑,我们必须问我们的上层建筑选择良好的基础,强而稳固的根基是上层建筑有机会得以成功的基础。我们所用的技术,有些是传统的老的技术,有的是新出现的新技术。老技术特点就是稳定成熟,大多数人都掌握,对之非常熟悉,开发人员也乐于接受,缺点是技术太老,跟不上时代发展,对客户缺乏吸引力,甚至满足不了基本的客户需求。新技术,是跟随时代出现,有其创新性,有后发优势,可以带来老技术不具备的优点,缺点是,新出现的技术,没有经过市场检验,不稳定,有潜在的缺陷或者风险,开发人员没接触过,掌握不好,基于人的惯性思维,有些人抵触不熟悉的事物。所以,当选择技术的时候一定权衡利弊:

第一,不要盲目选择太新的技术,没有经过实践检验的东西是靠不住的。有句话说:“是骡子是马,出来溜溜”,这种技术能否胜任你的上层建筑,需要市场来检验。一个不稳定,先天缺陷的基础技术,足有葬送你的上层建筑。我相信,任何实际投入使用的项目,都不希望作为小白鼠,充当新技术的测试员。因为任何一个潜在的缺陷,都可能成为不可逾越的鸿沟。

第二,不要采用过老的技术,虽然对于老技术有把握,大家都熟悉,但是如果是已经过时的技术,尽量不要采用,就需求来说,一般也达不到需求的要求。另外,站在团队的角度考虑,团队也需要技术迭代,不可能抱着老掉牙的技术吃饭,那样会自己淘汰自己。尽管简约是美,但是当简约不能解决问题的时候,复杂也是没有选择的。

第三,当你采用某种技术的时候,一定要通读这种技术的发行说明,加以充分了解,了解可能存在的为问题,对可能存在的风险加以规避。了解那些项目使用了此技术,效果如何,如果可能,尽量到论坛看看,了解有哪些bug,有哪些解决不了的问题。

总之,我们不要小白鼠,不要冒进,也不要保守,选择最合适的,大规模使用的技术,采用大规模使用的稳定版本。经过市场检验过的最新版本,个人认为是合适的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值