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要素:正确性、可靠性、有效性、完整性、可用性、可维护性、灵活性、可测试性、可移植性、可重用性、可互操作性。

  • 相关阅读:
    <p>1、查询端口号占用,根据端口查看进程信息</p>
    CentOS查询端口占用和清除端口占用的程序
    Spring Boot Maven 打包可执行Jar文件!
    linux下运行jar
    maven 工程mybatis自动生成实体类
    java反射教程
    SQL Server 文件和文件组
    Angular CLI 使用教程指南参考
    mac osx 下 浏览器 开启 java
    es 查询分词字段为空的数据
  • 原文地址:https://www.cnblogs.com/zhuweisky/p/234301.html
Copyright © 2011-2022 走看看