传统上,我使用Ruby on Rails构建应用程序,很少提取服务。我现在正在进入一些更易于管理和更高效的方面(SOA w / API)。
我感到困惑的是,如果我在像Go这样的东西中构建一个API服务器,我到底输了什么。假设我有一个文章模型,通过系统会有什么样的旅程?就此而言,我的意思是ORM,控制器,api等。
如果我在Go中有API,那么ORM是否在API级别上,或者我是否仍然可以使用Rails(可以与API通信)?然后控制器怎么样?如果这个堆栈甚至有意义,我就迷失了:
我关心的是,如果采用这种方法,我是否会丢失Rails附带的许多功能,例如迁移。
答案 0 :(得分:1)
使用SOA,我不会说这必然是Go或Ruby / Rails特有的。如果您只是自己使用Ruby或Go,那将是相同的。它归结为如何您的应用程序的架构。你可以用Ruby或Go来做SOA。
面向服务的体系结构有很多好处。
您可以为该列表添加更多好处。
要克服的最大障碍是初步规划,尤其是第一次。你打破了多远?什么东西应该分开?如果找不到合适的平衡点,最终可能会失去利益。
至于设计SOA架构的如何,这实际上取决于。如果我正在构建包含文章和评论的博客服务,您可以使用以下API方法:
SubmitEntry
GetEntry
SearchEntries
GetComments
SubmitComment
一般的想法是你的服务做/做所有的工作。 font-end应用程序只是一个GUI。使用MVC,您的前端仍然可以拥有一个模型 - 它只会进行API调用而不是数据库调用。
至于使用什么语言,这真的取决于你。 Go是一种令人惊叹的语言。它的社区发展很快,但它很年轻。您可能无法在Ruby中找到原本可以使用的软件包。您可能最终必须自己编写。话虽如此,Go有很大的潜力,写作很有趣!
个人经验:我工作的公司过去常常使用PHP。一年前,我们决定需要做出改变,我们决定选择Go。我们不得不自己写一些图书馆,但总的来说这是令人惊叹的一年。我们现在只使用Go(使用一些C / C ++)。