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

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

转载于:https://www.cnblogs.com/zhuweisky/archive/2005/09/11/234301.html

软件的艺术之美源于权衡(Trade-off)相关推荐

  1. 「镁客·请讲」VR的拓荒者,幻境视界让VR内容拥有艺术之美

    视界之外,幻境之上,"VR+"将精致的内容变得更美. 幻境视界创始人周志强说:"做设计,需要尊重甲方,尊重设计.但是商业性的设计或多或少会给设计师留下遗憾.所以,我可能更 ...

  2. 修改软件的艺术:如何重构遗留代码

    重构是指在不改变外部行为的前提下对代码的内部结构进行重组或重新包装. 想象一下,如果你是若干年前的我,正在对经理说你要让整个团队花上两周(一个完整的迭代周期)来重构代码.经理问:"好的.你会 ...

  3. pc端汽车obd软件下载?_人人美剧,不可多得的PC端观影软件

    今天为大家补上前面3天拖更的文章.嘿嘿希望大家喜欢哦,如果还有其他需要的资源等等欢迎在下方文章评论留言告诉小编,看见了都会及时更新哦! 人人美剧 软件是一款观看美剧软件,是Win的商店里面的,功能比较 ...

  4. 京东方数字艺术产业论坛:感受科技的艺术之美

    11月26日下午,"新生活主艺"2019京东方数字艺术产业论坛暨新品发布会在北京雁栖湖国际会展中心隆重召开,来自产.学.研三界的代表及京东方的合作伙伴齐聚一堂.会议宣布筹建 &qu ...

  5. 《精益软件开发艺术》译序

    在现今,敏捷软件开发已经不是什么新鲜事物了--市面上已经有大量的书籍,网络上也有大量的页面,聚焦于此领域.如果有人还总把"敏捷"挂在嘴上喋喋不休,反倒可能会被认为是后知后觉,落伍久 ...

  6. 对话“未知的边界”元宇宙艺术展 | Layaverse 邀您体验次元畅享艺术之美

    2022年8月20日,Layaverse 元宇宙重磅上线"芭莎艺术-未知的边界"元宇宙艺术展,开辟艺术与元宇宙探索的新旅程. "未知的边界"艺术展,Layave ...

  7. 利用aboboo,轻听app等软件以及通过看美剧方式学习英语

    1.1集美剧看1-2遍视频,之后可以导出音频以及lrc文件. 2.用aboboo的软件将音频分成自己需要的大小,比如:每份大概20-30句这样.导出音频以及对应lrc. 3.将音频和lrc放到轻听ap ...

  8. 修改软件的艺术:构建易维护代码的9条最佳实践

    内容简介 遗留代码就是指因为种种原因格外难以修正.改进以及使用的代码,这样的代码有很多,每天我们都会因为遗留代码而损失时间.金钱和机遇,软件产业通常轻视可维护性,所以到最后企业花在维护代码上的成本比一 ...

  9. 玩转 CSS 的艺术之美

    你将获得 深刻理解各种CSS原理 解构不为人知的CSS技巧 概念.技巧.场景三合一,实现"神奇"效果 强化吸收CSS知识体系,玩转各种神操作骚技巧 作者介绍 JowayYoung, ...

最新文章

  1. HTML元素的基本特性
  2. 深度学习在超市商品识别中的解决方案分享
  3. linux 编程笔记1 crusher for linux
  4. 带你少走弯路:强烈推荐的Keras快速入门资料和翻译(可下载)
  5. 零基础学Python(第十三章 元组)
  6. 对传统视觉惯性的颠覆
  7. html5波浪线条,HTML5 svg炫酷波浪线条动画插件
  8. 实例39:python
  9. Git(9)-diff
  10. 菜鸟linux的sed,Linux sed命令菜鸟入门
  11. python获取方法的装饰方法_python中的方法和装饰器
  12. 实现SharePoint的无限潜力
  13. 实战制作U盘工具去除XP系统管理员密码
  14. JavaScript通过百度OCR实现图像文字识别及常见错误解释
  15. Java Stream流
  16. Envoy 调试流量的常用技巧直播分享及问答整理
  17. 实时获取SDN网络拓扑中交换机流表项的思路
  18. Markov Chain Monte Carlo 和 Gibbs Sampling算法
  19. Lesson 29 Come in, Amy
  20. 整整26本!由单墫教授主编、葛军等人操刀的高中数学教材都在这里!

热门文章

  1. coreboot学习10:coreboot第一阶段学习小结
  2. clipse中运行maven提示org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
  3. linux添加qcc,Alpine Linux添加Let’s Encrypt CA证书或者自签CA证书
  4. python拿什么做可视化界面好_5大Python可视化库到底选哪个好?一篇文章搞定从选库到教学...
  5. 【算法】多路查找树 B树 B+树
  6. 60-10-060-命令-kafka-run-class.sh
  7. 【Kafka】kafka 0.10.0 版本低级消费 API
  8. 【redis】mac安装redis
  9. 95-242-040-源码-快照-Flink 分布式快照的设计-存储
  10. Scala与Java混编译:java日志不打印的问题