zoukankan      html  css  js  c++  java
  • 软件的艺术之美源于权衡(Tradeoff)

        软件架构师的主要职责是什么?是抉择、是权衡。把软件称为艺术一点都没有夸张,可以说软件是科学、工程、与艺术的结合体。软件的艺术体现在权衡上。在这一期的《程序员》杂志上看到了一篇“鱼与熊掌--完美主义架构师的梦魇”,其中关于权衡要素的论述正切合我之所想,现将主要部分转摘如下,如果想了解更详细内容,请在本期程序员阅读全文。

    (1)Time or Space  时间 vs. 空间
       牺牲内存换取时间或牺牲时间以节省内存是我们常用的伎俩。  

    (2)Elegancy or Efficiency  优雅 vs. 效率
       比如,多态很优雅,却是以效率为代价,而丑陋的函数指针却正好相反。

    (3)Fashion or Familiarity  不熟悉的新技术 vs. 熟练的旧技术
       是采用最新、能提高开发效率却我们不熟悉的新技术,还是继续使用我们很熟练的但是开发效率低下的陈旧技术了?

    (4)Revolution or Evolution  革命 vs. 继承
       对于遗留系统,我们是推翻重来,还是在其基础上进行改良重构并增强了?

    (5)Under-Design or Over-Design  轻度设计 vs. 过度设计
       设计,需要细化到何种程度、需要多长时间?

        架构设计的限制始终围绕了软件质量的11要素:正确性、可靠性、有效性、完整性、可用性、可维护性、灵活性、可测试性、可移植性、可重用性、可互操作性。

  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/zhuweisky/p/234301.html
Copyright © 2011-2022 走看看