zoukankan      html  css  js  c++  java
  • 信息体系结构原则之一——复杂性和简单性

    复杂性将不断衍生,进而导致多种问题。复杂性最常见的后果是使项目彻底失败。

    复杂的设计看似灵巧,但很少能够满足需求。

    复杂性还将导致开发人员难以理解和实现解决方案,最终导致项目不能按时完成。

    即时项目得以完成,复杂性也将对其他6个数据存储目标(有用性、数据完整性、性能、可用性、可扩展性和安全性)带来负面影响。

    复杂的设计导致更难检索和更新正确的数据,这将影响有用性和数据完整性。

    多余的组件将导致额外的工作(读取、联接和更新),增加相互依赖的变量(进而导致优化起来更复杂),所有这一切都将降低系统性能。

    复杂的设计可能增加不必要的故障点。出现问题时,复杂设计导致问题的根源不明显,进而使得难以诊断并修复问题,这会增加支持费用并降低可用性。

    相对于简单设计,要根据不断变化的需求对复杂设计进行修改讲师极其困难的。

    最后,复杂的足迹还会导致更难正确地确保数据安全。

    简单的解决方案通常是优雅而容易理解的,爱因斯坦指出:应让事情尽可能简单,且不能再简单。

    “尽可能简单的解决方案”并非缺乏判断力的答案。

    最简单且能满足需求的解决方案可能比较复杂,但在所有可能的设计中,它是最简单的。

    简单性是根据解决方案涉及的组件、技术变量、内部接口和技术的数量度量的。

    无论采取什么样的原则,设计简单的解决方案都是一项艰难的任务,要做到以下几方面。

    *对需求有全面认识。

    *掌握大量可供参考的模式和解决方案。

    *对技术规范和行业术语有全面的认识。

    *创造性的掌握行业知识,知道何时及如何改善技术系统。

    *对用于实现设计的工具和设备以及解决方案的运行环境有深入认识。

    *设计人员之间相互信任,彼此分享和改进想法,而不考虑个人得失。

    *不断优化设计,直到设计出优雅而简单的解决方案。

    *对复杂性抱有健康的敬畏心态

    制定设计方案时,应当能够多花几小时乃至几天相互协作,提出能够在满足需求的情况下消除表或进程的想法。

    合理地降低复杂性将减少实现的工作量,增加提供可行性产品的概率。

    在设计上多花的每一分钱都将在实现阶段甚至产品生命周期内的支持费用方面得到很好的回报。

    有些人认为,将简单性视为诸多如设计数据库等复杂任务的首要设计目标简直可笑。

    但笔者认的经验表明,如果设计小组重视简单性,项目成功的可能性将很大;如果他们不把简单性当回事,则最好不同他们合作。

  • 相关阅读:
    nyoj--76--超级台阶
    nyoj--17--单调递增最长子序列
    poj-2406-Power Strings(KMP)
    poj-1611-The Suspects(并查集)
    poj 2031--Building a Space Station(prim)
    poj 3259-- Wormholes(SPFA)
    nyoj 21--三个水杯(隐式图bfs)
    HDU
    HDU
    CodeForces
  • 原文地址:https://www.cnblogs.com/yyyymmmmdddd/p/2543076.html
Copyright © 2011-2022 走看看