给iOS程序提供数据的服务器端采用什么开发更好?RoR、PHP、Java还是Node.js

2012-08-25 16:34:26 +08:00
 zieglar
服务器上本身的网站程序比较烂,不提供api支持,现阶段准备先将app开发出来,如果考虑到可维护和复用性以及后期将网站重新推翻,服务器端采用什么开发更好呢?
16729 次点击
所在节点    iDev
45 条回复
amtb
2012-08-26 10:05:19 +08:00
@ljbha007 play本身就是为了快速开发web应用而非复杂业务应用,另外play的问题在于数据库支持比较弱,如果多数据库的话,很麻烦
amtb
2012-08-26 10:09:26 +08:00
@zieglar play如果不渲染页面的话,性能不是问题而且实现和可维护个人感觉都比node要好
superisaac
2012-08-26 11:58:39 +08:00
bottle吧,简单,其实http协议就是个简单的东西,不需要那么多的所谓框架。
heroicYang
2012-08-26 12:17:18 +08:00
@zhouyang 这个回答好~
zieglar
2012-08-26 15:15:11 +08:00
@amtb 但是不仅要考虑现在提供api的问题,后期还要重构网站,所以还要为这一步考虑
remaerd
2012-08-27 02:34:46 +08:00
@zieglar 我也困惑过这个问题。当初的架构是这样的:有一个 API 服务器,专门处理 REST API,iOS 和 Web 端都通过他来访问数据。

考虑再三之后,像我这样的独立开发者,亦不打算找任何投资,费用应该越少越好。如果专门搭 API 服务器,数据库/API/iOS/网站之间的内部数据流量就会成为一笔很麻烦的费用。

你或许不知道,其实 CouchDB,MongoDB 等 NoSQL,都是具有 HTTP 接口的。这意味着,你的 iOS 客户端可以直接访问数据库,不需要另外搭建 REST API 服务器。你现在可以考虑只做数据库和 iOS,后期再考虑用 后端 + HTML5 搭建网站客户端。

我的项目比较特殊,iOS 端不需要进行用户验证,也没有任何 CUD 的操作,只需要从数据库获取资讯,所以我刚才说的解决办法比较适合我的项目。就算你要进行 CRUD,这些 NoSQL 也提供了 REST API 接口。问题不是很大。
chuck911
2012-08-27 12:10:33 +08:00
你要是跟一个IT男搭讪,提这个问题不错
在“需求比较急”的情况下问这个,简直就是扯蛋,是在释放压力么?
连php框架都‘不屑’用,还express rails django bottle,简直就是没话找话
祝你们成为好基友
zack
2012-08-27 12:17:40 +08:00
感觉看着有点困惑了,到底是做一个数据源的服务,还是要做个网站?这两个不能相提并论的。

首先要考虑清楚到底是iOS上Tcp based app还是Http based app。这个没定对的话,后面的那些讨论就都是乱来的了。
feihu
2012-08-27 12:40:02 +08:00
没用过node.js,但是看一些ppt,一般都建议node.js适用与实时性的社交应用比较多,它的用法与其他的不太一样。而且它的调优不好调,见过使用dtrace来调优的,看了两下就晕了。先确定你的app是做什么用的吧。然后在选择对应的语言
forest520
2012-08-27 12:49:34 +08:00
@amtb 请问,play渲染页面的性能有什么问题?
zieglar
2012-08-27 16:38:03 +08:00
@chuck911 …是我自己开发,你这回答的有些不知所云
zieglar
2012-08-27 16:39:20 +08:00
@zack 是基于网站数据的一个应用,应该是要基于http based
zack
2012-08-27 18:12:24 +08:00
@zieglar 我不知道你要做的具体应用的类型,但我建议数据的传输优先考虑下基于TCP sockets的方式。实际上现在很多应用都是如此的吧。

这有几个很明显的好处:

1. 数据传输量可以精简很多,只发送需要的数据即可。在数据包上可做的优化很多。
2. 客户端不需要用Poll的方式去持续更新数据,只要连接建立了,数据传输的时机很好控制。
3. sockets server是独立的,不用依赖于网站的web server。

你要写一个TCP Server的话可以考虑用Python的Twisted,当然,用Erlang和Nodejs也非常简单。但后两者在处理数据库接口和一些业务逻辑方面,可能不如Python更快能上手。

如果是要做一个网站的话,再去考虑那些Web框架吧,做一个数据服务的接口跟那个关系不大,而且TCP Server其实比你去用做网站的方式去做个类似RESTful的接口,开发和维护的代价我觉得还要更少。

个人意见,供你参考。最终还是取决于你要做的东西的实际情况而定。
zieglar
2012-08-27 18:54:26 +08:00
@zack 谢谢你的解答,很详细,不过因为我的基础不是很好,所以如何搭建一个TCP Server恐怕还要好好补课:)看那边能给我多少时间吧
PrideChung
2012-08-27 23:38:53 +08:00
晕,TCP都出来了,楼主的要求是后期要把网站推翻,那么使用RESTful的API可以让网站复用代码,TCP就没那么简单了。不用把摊子摆那么大吧,就用最熟悉的PHP先把原型做出来好了。
Demo or nothing.
amtb
2012-08-28 08:52:13 +08:00
@forest520 play是用groovy的模板,性能上比jsp有损失,具体看这里http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/
forest520
2012-08-28 09:17:30 +08:00
amtb
2012-08-28 11:51:32 +08:00
@forest520 play2要慎用,跟play1是完全两个东西。
PrideChung
2012-09-05 20:56:07 +08:00
LZ最后选了啥?八卦下。
120066825
2013-04-26 17:55:05 +08:00
推荐使用JAVA,现在很多程序员都能JAVA web轻松搞定需求 , 且JAVA程序员多 , 框架可以单采用struts2 , 只是JAVA写出来的项目的缺点也很明显:可维护性差 . 不过后来的运维和二次开发工作可以交给别的语言进行例如(node等) , 随着单提升主机的性能和增加主机集群数目 , 可以不用发愁便能解决掉性能问题 . 相当于魔兽里人族的万金流 .其实就语言来说,JAVA跟其他语言go语言什么的比起来弱爆了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/46007

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX