Fighting bird分享 http://blog.sciencenet.cn/u/tonia

博文

软件架构师应该知道的97件事(一)

已有 6625 次阅读 2010-9-13 22:10 |系统分类:科研笔记

优秀的软件架构师应该同时掌握业务知识和技术能力。

1. Don't put your resume ahead of the requirements.
客户需求重于个人简历

2. Simplify essential complexity; disminish accidental complexity.
简化根本复杂性,消除偶发复杂性

3. Chances are, your biggest problem isn't technical.
关键问题可能不是出在技术上

4. Communication is King; clarity and leadership, its humble servants.
以沟通为中心,坚持简明清晰地表达方式和开明的领导风格

5. Application architecture determines application performance.
架构决定性能

6. Seek the value in requested capabilities.
分析客户需求背后的意义

7. Stand up!
起来发言

8. Everything will ultimately fail.
故障终究会发生

9. You're negotiating more often than you think.
我们常常忽略了自己在谈判

10. Quantity
量化需求

11. One line of working code is worth 500 of specification.
一行代码比五百行架构说明更有价值

12. There is no one-size-fits-all solution.
不存在放之四海皆准的解决方案

13. It's never too early to think about performance.
提前关注性能问题

14. Architecting is about balancing. Balance stakeholders' interests with technical requirements.
架构设计要平衡兼顾多方需求,平衡兼顾相关各方的业务需求和项目的技术需求

15. Commit-and-run is a crime.
草率提交任务是不负责任的行为

16. There can be more than one.
不要在一棵树上吊死

17. Business drives.
业务目标至上

18. Simplicity before generality, use before reuse.
先确保解决方案简单可用,再考虑通用性和复用性

19. Archtects must be hands on.
架构师应该亲力亲为

20. Continuously integrate.
持续集成

21. Avoid scheduling failures.
避免进度调整失误

22. Achitectural tradeoffs.
取舍的艺术

23. Database as a fortress.
打造数据库堡垒

24. Use uncertainty as a driver.
重视不确定性
注:
如果出现两个合理的选择,架构师应该停下来,设法找出介于两者之间的具有更低重要性的决策,而不是简单地在两者之间做出选择。

25. Warning: problems in mirror may be larger than they appear.
不要轻易放过不起眼的问题

26. Reuse is about people and education, not just architect.
让大家学会复用
注:
即便是最精美的架构、最优雅的框架、可复用性最高的系统,也必须满足以下条件才可能被复用:
- Know it's there 大家知道他们存在
- Know how to use it 大家知道如何使用它们
- Are convinced that it's better than doing it themselves 大家认识到利用已有资源好过自己动手

27. There is no "I" in architecture.
架构里没有大写的"I"
注:
自我可能是最大的敌人。

28. Get the 1000-foot view.
使用“一千英尺高”的视图
注:
“三万英尺高”的视图是指架构图里的框框线条,表示依赖关系、数据流和共享资源等;另一种视图是源代码,好比站在地面上看大地。前者太抽象,后者细节太多,以至于看不清整个架构。需要介于两者之间的“一千英尺高”的视图。

29. Try before choosing.
先尝试后决策

30. Understand the business domain.
掌握业务领域知识

31. Programming is an act of design.
程序设计是一种设计

32. Give developers autonomy.
让开发人员自己做主

33. Time changes everything.
时间改变一切
注:
- Pick a worthy challenge 选择值得投入精力的工作
- Simple rules 简单原则 KISS(keep it simple and stupid)
- Be happy with that old stuff 别跟以前的工作过不去

34. “Software Architect” has only lowercase a's; deal with it.
设立软件架构专业为时尚早

35. Scope is the enemy of success.
控制项目规模

36. Value stewardship over showmanship.
架构师不是演员,是管家

37. Software architecture has ethical consequences.
软件架构的道德责任

38. Skyscrapers aren't scalable.
摩天大厦不可伸缩
注:尽早发布、递归式部署

39. Heterogeneity wins.
混合开发的时代已经来临
注:混合编程是指在同一套软件系统中同时采用多种核心编程语言。架构师可以把若干个强大的开发工具组合起来使用(mashup)。

40. It's all about performance.
性能至上

41. Engineer in the white spaces.
留意架构图里的空白区域
注:软硬件、细节的考虑

42. Talk the talk.
学习软件专业的行话
注:包括架构模式和设计模式

43. Context is King.
具体情境决定一切

44. Dwarves, Elves, Wizards, and Kings.
侏儒、精灵、巫师和国王
注:小说《Cryptonomicon》:侏儒最勤劳、有精湛的手艺,精灵最有风度和修养、天赋很高,巫师拥有无限的魔力、能够创造奇迹,还有国王拥有团结所有种族的能力。软件架构师好比国王,应该熟悉各种人的性格特点,招聘不同性格的人加入自己的团队。

45. Learn from architects of buildings.
向建筑师学习
注:
要成为伟大的建筑师,优雅丰富的心灵远比聪明才智重要。
盖房子和别的手艺一样,所以努力都是为了结果,为了完成令人满意的工作。合格的建筑应该符合以下三个条件:实用、坚固、令人愉悦。
建筑师首先应该是伟大的雕塑家,或者伟大的画家,否则他只不过是个建筑工人。
天底下没有完美的建筑。

46. Flight repetition.
避免重复

47. Welcome to the real world.
欢迎来到现实世界

48. Don't control, but observe.
仔细观察,别试图控制一切

49. Janus the architect.
架构师好比两面神
注:罗马神话里两面神(Janus)是司守门户和万物始末之神,他有两张面孔,兼顾前与后、过去与未来的能力。

50. Architects' focus is on the boundaries and interfaces.
架构师当聚焦于边界和接口

其他见:http://www.sciencenet.cn/m/user_content.aspx?id=362756

https://wap.sciencenet.cn/blog-425672-359261.html

上一篇:Hadoop Linux 环境搭建之路
下一篇:《互联网计算的原理与实践》(一)
收藏 IP: .*| 热度|

1 唐常杰

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-29 04:13

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部