都说 Rails 是 REST 风格的 web 开发框架,按照 REST 架构管理资源,
那软件架构风格还有哪些呢?
REST 架构风格与之相比优势到底是什么呢?
asp.net、java spring 这些框架是属于什么风格呢,与 rails 相比各自的优势劣势怎么体现
最近在看 java spring,你看他的 guides 上第一篇的标题就是Building a RESTful Web Service
https://spring.io/guides
大部分关于 REST 的疑问都在 REST 那篇论文里有答案,你这个问题尤其是这样,所以 google 一下“架构风格与基于网络的软件架构设计”就可以了
别担心,虽然是论文,其实很容易看懂,而且已经翻译成中文了
REST 其实无非两点:
asp.net、java spring 这些框架是属于什么风格呢,与 rails 相比各自的优势劣势怎么体现
这些框架也可以用 REST,也可以不用,没有硬性规定。
我觉得这是两个问题。
第一个是网络应用的风格有哪些(Network-based Architectural Styles),REST 是一种,还有 Data-flow Styles,Replication Styles,Hierarchical Styles etc,这个在 Roy 的论文第三章都有提到(英文版论文请点这里)。而 REST 是在考量了 性能(Performance),扩张性(Scalability),容易修改(Modifiability)etc 这些网络应用的关键要素后提出的解决方案(性质参考第二章)。
第二个问题就是框架了,也就是 Rails。REST 首先只是指导原则,并没有提出任何实现的细节,而 Rails,或者其他的框架都是具体的实现,就是是尊重 REST 的原则。REST 风格的特点在于:
所以 Rails 框架根据这些指导做出了具体的实现。对于开发者来说要做的,就剩下三个任务:
符合了这样风格的框架之间没有本质的优劣区别,不同之处落在了语法上,本身语言的特性上,框架易用性(是否是 convention over configuration)等等。
P.S. 论文发表的时间是 2000 年,那是在有了实验结果以后才敢的发表(治学严谨啊),真正提出这个风格的时间大概是 1996 年。那个时候互联网还在襁褓中,所以阅读论文的时候可以抛开 rails 或其他框架的具体实现细节,就当是读一份互联网应用风格发展的简史。
上班前随意写了一些,希望有解答问题。