毒瘤1:时尚&潮流
在系统设计之初,学习和参考业界的的技术实现很有必要,也很有价值,是一剂良药,但如果盲目崇拜和copy不走样业界方案,那就是一碗毒药;
1、系统的设计具备约束性,约束主要分为三个方面:一方面是业务、一方面是技术路线、一方面是运维;
业务方面:业务的特点是什么?业务量是多少?业务的服务标准是什么?一定程度上决定了系统架构的选择。系统的非功能性设计,我们常说的可用性、扩展性、伸缩性、安全性、性能等要做到什么程度,是基于业务特点来确定的,而在设计方案的选择上,非功能的设计占了很大权重;
类比:如果你是三口之家,还有孩子要上学,那你需要的是一栋学区的公寓,而不是郊区的别墅;
技术路线:对一个组织而言,应该在技术规划上有总体的技术路线,建设一些基础设施、设计原则、设计规范、设计指引,在总体的技术路线下,对技术的选择有一定的包容性;
类比:不管是造公寓还是盖别墅,都得按照小区的规划来,违章建筑尽量不要;
运维方面:设计还需要考虑系统运维方的环境和要求,考虑系统和平台、考虑运维和管理;
类比:在马尔代夫是水上屋,在美利坚是乡村别墅,在唐镇国际社区是大平层,没有优劣,只有适合;
设计是一种权衡,是否实现了业务要求,符合了技术路线,满足了运维需求;
2、系统的设计具备独特性:
正因为设计需要去考虑【业务】【技术路线】【运维】几方面的因素,而往往各个组织这几方面的情况有所不同,即使在统一的组织内部,不同的业务特质也不尽相同,所以从合理性的角度来说,每个系统的设计都具备自己的独特性;
3、系统的设计具备演变性,没有一个完美的设计,只有不断完善的设计;
设计需要有一定的前瞻性,需要考虑一些将来可能出现的问题,但是往往计划赶不上变化,特别是在目前这个信息爆炸的时代,让规划变得很难。而且,很多目前一些成型的设计方案也都是在业务磨练的过程中不断调整,优化出来的。
正因为设计具备【约束性】【独特性】【演变性】,所以我们的设计方法,更加不能拿来主义。
毒瘤2:高标准&严要求
不同的业务种类:系统的规模决定了资源的投入,包括开发资源、硬件资源、运维资源;而业务的要求,决定了系统的规模。对于成熟的业务&创新的业务,对于核心的业务&外围的业务,该采用怎么样的设计原则?集卡是否要用跑车的地盘?
高估的业务容量:业务的成熟度、业务的规模对整个系统的设计起着关键性的作用,对业务客观地分析,务实地评估业务量,受益匪浅。吞吐量要求提升10%,数据量要求增加10%,业务不确定性增加10%,带来的是开发资源+硬件资源+运维资源成倍地增加;
如果就是要买一辆装货的车,每天就装个100来斤的蔬菜,那就别想着整一个集卡,也别想着百公里加速要在5秒以内这些事情。。。
如果患了这两个毒瘤会怎样?呵呵,慢性病,谁患谁知道~~
up方方土,一个混在金融行业的屌丝程序员,喜欢代码,喜欢咖啡,喜欢旅行