摘要:
软件架构师的主要职责是什么?是抉择、是权衡。把软件称为艺术一点都没有夸张,可以说软件是科学、工程、与艺术的结合体。软件的艺术体现在权衡上。在这一期的《程序员》杂志上看到了一篇“鱼与熊掌--完美主义架构师的梦魇”,其中关于权衡要素的论述正切合我之所想,现将主要部分转摘如下,如果想了解更详细内容,请在本期程序员阅读全文。(1)Time or Space 时间 vs. 空间 牺牲内存换取时间或牺牲时间以节省内存是我们常用的伎俩。 (2)Elegancy or Efficiency 优雅 vs. 效率 比如,多态很优雅,却是以效率为代价,而丑陋的函数指针却正好相反。(3)Fashion or Fam. 阅读全文