原文地址 http://blog.backand.com/code-no-code/
以下为翻译:
编还是不编
当为一个现有的程序编写前台的时候,首批常见的问题之一就是我们如何去构建它。
选择特定的代码解决这个问题使得最后的产品具有很大的灵活性。但是基本上,它在开发和后续维护中消耗大量的金钱和时间。
某些情况下,尽可能的抽象整个开发过程,缩小需要写的代码数量是更加合理的。
在这篇文章中,我们列举了着手在现存数据上构建应用程序的一些方式以及为何选择这种方式而不是那一种。文中也涉及了相关的前端代码,并着重描述了
哪些场景下,像AngularJS这种指令驱动的(directive-driven)方式能够被高效且有效的使用。
一点点来
对于网页开发来说,我们有很多种选择,他们都有其各自的优点。
通常我们会选择不需要编程的那个方式,像www.wix.com这样的网站使得你能够不需要编程就可以构建你的网站,它让你能够使用图形化编辑工具去设计你的网站的外观界面,并尽可能使得数据存储在后端。许多托管商(hosting provider)提供这种类型的工具,这些工具在复杂程度上有所差别。如果你的网站比较小或者数据并不复杂,那么这种类别的解决方案是非常不错的。但是基本上这种网站都有一个通病,当网站描绘复杂功能时,会出现问题。(使用上述工具构建前端的)这些应用通常没有数据库,将应用程序的数据库和这种接口绑定在一块将会使得开发中牵涉某些定制的代码。另外,依赖这个(图形构建)服务(来构建前端代码)使得前端的源代码是难以被修改。后续很多事情将变得难以完成,比如 过渡到Angular。
将前端解脱出来
让我们接着往下来,我们经常会遇到这样一些服务,他们将应用程序的后端部分封装成一个API,这样使得你能够全神贯注的关注于前端的开发。比如,
你选择的某项服务会为你提供一个REST API,此时Angular只需要关注于将从这个API中获取的数据展现出来就好了。像Parse, Backand 以及Firebase这些公司都提供这样的API服务,他们为你的来自任何位置或应用的数据建立了一个数据存取点。
如果你自己专注于开发前端,而让其他人全权负责后台的开发。你将会受限于服务提供商。受制于他们是如何构建服务的,也行他们只是简单的直接从你的数据库中抽出一个REST API,或许他们允许定制组件开发。然而,大多数情况下,前端是你唯一可以完全定制的事情。
完全操作(Providing the FullStack)
要达到真正的定制常常需要使用完全的操作,这个需要使用一个像Rails这样的对象关系映射工具来开发后台。这将会使得你能够极大方便的操控底层的数据存储。虽然很多的开发框架提供工具能够使得人们从前端开发中解脱出来,但是适当的关注REST API的开发能够让你使用像AngularJS 和Bootstrap这样的工具快速的构建一个一致的时髦的界面。这种方式的缺点有两个。首先是一个不太明显的缺陷,那就是你必需有一个开发团队来依据现存数据需要的界面来开发REST API。这个过程可能需要耗费数星期甚至数月,之后,你有的也只不过是一个完成的后端。另一个比较明显的缺点是,你需要完成方方面面的事情,托管,伸缩,安全,等等等等。这个极大的增加了实现开销。并且会导致维护过程中再度开销。
多种方式融合
现在这种方式已经存在并有不止一个实现,它们使用一个能够集成你的现存数据,提供REST API的工具,并最小化涵盖可真正定制的后端开发。这样的工具有Django。它提供基本的ORM能力,提供一个做好了的针对你的数据的管理界面,这种方式可以使用内置的展示功能,也可以使用REST后端去驱动Angular前端的方式。它的缺点和上面的完全方式是相同的,只不过弱化了它的开销。你的团队使用这种方式将会降低开发时间。但内部的托管,安全,维护仍然是必须要做的。
这种方式的另一个实现是像Backand这样的Backend-as-a-Service提供商,它获取你现存的数据库,并且在几分钟之内产生一个前端的管理工具,并且后端的所有组件,包括数据库扩展,权限以及托管代码都是在外部进行管理的。Backland同样也动态的给你一个ORM并且基于你的数据建立一个REST API,给你的应用程序的界面提供一个简单的接口。这种方式使得你能够花费降到最低,且能够获得最高的产出率。虽然你牺牲了某些后端的灵活性,但是开发定制组件的可用工具可以很大程度上弥补这些。
结语
总结一下,平台的选择基本上归结于你认为你的程序可能会有多复杂。如果你愿意牺牲绝大部分的灵活性,那么你可以不用为你的项目写任何的代码,像Wix这样的工具是值得看一看瞧一瞧的。然而当你要将angular应用到展示你的数据上面的时候,你将会看到很多种方式,你可以从中有很多的选择。你的选择取决于你的开发团队的不同。比如对于平台的掌握,对于开发和基础设施的可用预算,现存的功能,团队的知识储备以及其他任何能够影响平台选择的因素。最后,开发网页应用最好的方式是这种方式:最适合你团队需要的方式。
今天,试着构建你的Angular app并且使用Backland将其连接到任何一个数据库,现在行动起来吧。