如何制定可适用于任何应用程序的架构决策

时间:2011-10-11 17:53:08

标签: architecture selection

我严重陷入了今天可用的各种技术。例如,要达到我可以选择Java Framework的程度;我在市场上有很多选择--Apache Wicket,Tapestry,Click,Struts,Seam,Spring,grails,play框架。然后是数据库,ORM,缓存,JavaScript框架等。 这里的任何小错误都会在开发期间或维护阶段产生严重影响,我觉得可以通过专家决策来降低。

我想向专家学习,他们如何在这样的架构决策阶段做出决定。作为通用模式,在为从头开始的任何Web应用程序开发选择框架和相关技术堆栈时,需要考虑哪些重要决策点。

例如,如果我正在为社交网站制定架构决策,我应该如何列出各种技术,对其进行分类,评估并列出最终的技术堆栈?

我正在寻找可以帮助所有人的决策制定的通用模式或流程。该过程应适用于任何应用程序。 (银行解决方案,社交网络或其他任何东西)。请指出任何有用的书籍/资源。

我查看了以下两个SO显示相关的网站,但它没有准确回答我的问题。

How to make decisions while choosing a project in an IT company?

https://stackoverflow.com/questions/4713427/social-network-development-project-technology-decision-making

1 个答案:

答案 0 :(得分:2)

首先列出所有可用技术,然后创建一个表格,用一个值评估每个条件。例如,您的列可能是“执行速度”,“开发速度”,“价格”,“可伸缩性”等,而列是每个可用的供应商/技术选择。为您需要在堆栈中进行的每个软件选择(DB,ORM,缓存等)创建这样的表格

然后看看你的项目,并选择你最重视的标准。例如,一些项目需要便宜而且不需要扩展,而其他项目可能是高成本但需要非常强大的可扩展性。然后,从每个表中选择最符合这些要求的选项。瞧!有你的筹码。