起码要有两个可选的解决方案
来源:互联网 发布:知乎自己的匿名回答 编辑:程序博客网 时间:2024/06/18 00:07
作者:蒂莫西·海伊
你可能听过这条规矩。如果你是一名经验丰富的架构师,你肯定知道这点:对于某个问题,如果只考虑了一个解决方案,那你就有麻烦了。
软件架构是要在所有给定的约束条件下,寻找到解决问题的最佳方案。期望第一个解决方案即满足全部的需求和约束,几乎是不可能的。一般来说,必须根据优先级次序进行权衡,选择最符合需求的解决方案。
如果对手头的问题只有一个解决方案,这意味着将没有进行折衷权衡的余地。这个唯一的解决方案很可无法令系统投资方满意。这也意味着,如果由于商业环境瞬息万变而导致优先级次序发生转变,系统很可能没有空间来适应新的需求。
这种情况即使有——也绝少是真地由于缺乏可选方案而造成的,它更可能是架构师缺乏特定问题域的经验所致。如果事实确是如此,别费力气,赶紧让更有经验的架构师助你一臂之力。
如果依照习设计架构,这个问题将更不容易为人所察觉。架构师也许己熟稔于某种单一风格的架构(例如,三层或多层的客户机-服务器系统),却没有充分认识它不适用的情。如果发现自己在还没有对比其它方法之前,就己经想当然的给出了解决方案,那么,停下来,向后退一步,问问自己,是否能够想出另一种方法。如果不能,你可以需要帮助了。
我的一个朋友,曾是一家成长中的小型互联网创业公司的技术负责人。随着用户群扩大,他们系统的负载与日俱增,性能也每况愈下,公司开始渐渐失去来之不易的用户。
于是,老板问他,“我们该如何提高系统性能?”
我的朋友回答:“买一台更大的机器!”
“还有什么其他可做的?”
“嗯……据我所知,只有这样了。”
我的朋友被当场解雇了。当然,这个老板是正确的。
0 0
- 65 起码要有两个可选的解决方案
- 起码要有两个可选的解决方案
- 最起码的知识
- 最起码的面向对象
- CAN总线为什么要有两个120Ω的终端电阻?
- CAN总线为什么要有两个120Ω的终端电阻
- 显示器的分辨率被锁定的可选解决方案
- 关于互联网流量劫持分析及可选的解决方案
- 关于互联网流量劫持分析及可选的解决方案
- SAP关于销售来自可选工厂的解决方案
- 给 Edit 两个可选值
- 男人对女人最起码的态度
- 数据倾斜的两个解决方案
- geoserver显示shapefile中汉字呈乱码问题的可选解决方案
- Android studio 启动APP选择设备列表中没有可选设备的解决方案
- 为什么要有VMA和LMA两个地址?
- 为什么要有l两个Survivor区
- JVM虚拟机问题--为什么要有两个survisor
- 【网络流】 POJ 2125 Destroying The Graph
- [BZOJ1618] [Usaco2008 Nov]Buying Hay 购买干草
- poj 1811 随机素数和大数分解(模板)
- solr 4.4添加索引是新手容易遇到的有关问题
- 分享一下MinGW和cygwin
- 起码要有两个可选的解决方案
- 注意:STM32库函数中未用到的参数也一定要初始化
- 102. Binary Tree Level Order Traversal
- Android的历史
- Python-Selenium2做Web自动化测试(12)-上传文件、下载文件、调用 JavaScript、控制浏览器滚动条
- 8.Python基础 面向对象的基本概念
- 【Java多线程】之十三:Java Callable Future Example
- LintCode-通配符匹配
- 随记