Rails 大神们聊一聊对于 Ruby 开发 App 的想法,给点意见和建议。

yan1667 · 2016年08月05日 · 最后由 oth 回复于 2016年08月17日 · 8112 次阅读

我们公司主要将 ruby 作为服务器端和 web 语言。而移动端的开发采用的是安卓和 ios。而 ruby 开发 app 需要套壳子,我想问问大家有没有好的建议和想法?

#1 楼 @huacnlee 看了下,感觉 Ruby China 这个客户端还不如 Safari 上网站的好用,主要就是顶部的 navigation 被收起来了。

我在国内用 basecamp 的客户端,速度很慢,不知道是怎么回事? 另外,国内“简单心理”的客户端应该也是 webview 套壳,感觉速度也不是很快

另外,这个视频感觉好棒啊~~~

3 楼 已删除

#2 楼 @cqcn1991 网速慢,没考虑全球访问。调试网页版可以看到,服务端处理只要几十毫秒,多的是网络延时。

#2 楼 @cqcn1991 另外,客户端代码越重也会越慢,可以看看 Ruby china 和 discourse 的 JavaScript 执行耗时。

个人建议简单 App,如果会 OC/Swift/Java 的,还是开发原生 App 吧,体验真的好不少,而且代码和逻辑非常符合各平台自己的习惯。 如果 App 业务逻辑非常复杂,做 Hybrid App,用 Web 实现业务最复杂最经常变化的那些部分,嵌入到原生 App 中。

#2 楼 @cqcn1991 Basecamp 慢主要还是网络原因,小公司用 CDN 只能解决静态资源加速,大公司用多数据中心独立部署,把用户数据直接放在最近国家的数据库,才真正解决了“大陆以外”的网络速度问题。

#2 楼 @cqcn1991 你能下到那个是 Ionic 的吧,新做的还没发布呢

#9 楼 @huacnlee 原来是https://github.com/ruby-china/ruby-china-turbolinks的插图没留全... 一方面看不到底部,一方面看不到首页...

#5 楼 @Rei #7 楼 @kgen 另外,我不是 basecamp 的用户。但是感觉在 iPhone 5s 上,看起来非常挤,不是很理解他们为什么这样设计(首页双排 table)。还是国外早早全部换成 6s 了?

我们是用 native ➕ turbolinks+ios 开发的,app 名字:简单心理

終於有 TurboLink 的 App 版本了,等了很久.......😭

#12 楼 @jun1st 就是觉得速度很慢是怎么回事?感觉比网页慢不少

讲心里话,没有一个语言是通吃天下,只有适合的场景用适合的语言。iOS 和安卓肯定是选用原生的方式开发是最好的,运行速度和体验上是不一样的。而且 iOS 和安卓有互通的地方,所以基本上学会一门,再去搞另一门是非常轻松的事情。

试图用一把锤子敲天下所有的钉子(其实好多并不是钉子对不?)的行为都是耍流氓。

其实技术选型非常朴素:如果 app 内容(外观、渲染、交互),与 web 很接近(Basecamp 恰巧就是这种类型),用 Hybrid,首选 Turbolinks。如果不是则上原生。

感觉 Rails 团队好怀念当年拔剑四顾、天下无敌的 Web 开发黄金年代啊,哈哈!

个人认为,如果本身是就是 Web 的内容,将其直接移动化,比如 Ruby China 本来就是一个网站,那么用 Turbolinks 的确非常省事。但如果一门心思的试图以 Web 的技术来适配通用的移动应用场景,那就很不合适了,老虎钳是好用,拧螺帽也不是不得行,但总觉得很有点别扭,对不对。

就好像视频中的问答一样,SQL Lite 支不支持?GPS 支不支持?等等,回答好像我记得都是肯定的,但演讲者似乎对这些场景稍稍感到有点意外,可能没这么真正用过,真正处理起来,绝对有许多坑。

所以最近几年下来,个人感觉对 Rails 团队的固步自封非常失望,越来越失望!开源社区从 Rails 身上已经学到了很多,但 Rails 团队自身却很少离开自己的舒适区,核心成员十几年都待在同一家公司,做着同一件事情。因此,Today I accept that Rails is yesterday’s software(并不太同意这篇文章,但比较接受这个标题描述的事实)。

最后,搭个便车,诚招 Rails 工程师,坐标重庆新牌坊,有意者请联系我,谢谢!

#17 楼 @xhj6

核心成员十几年都待在同一家公司,做着同一件事情。

你怎么知道的?

#18 楼 @ruby_sky @huacnlee 提到的视频中,讲者提到他在公司十多年了,再加上 DHH,至少他俩是

#19 楼 @xhj6 所以你的意思是,一个人在同一家公司工作十多年,就是不求上进?(你知道那作者是 Prototype 的作者吗?)

#17 楼 @xhj6 这哪里是固步自封呀?什么地方体现出固步自封?我觉得应该是哪些人掌握了一套有效的解决方式、正确的工作模式持续坚持而已。你怎么知道哪些人没尝试过其他语言其他框架,其他的技术实现,你以为他们都傻么。

Rails 的思想是用简单有效的方式解决复杂的事情,Tubrolinks 的出现也不是拍脑门,而是确实能解决很多实在的问题,而且简单有效,Rails 的很多设计是希望整合实现,结合 Rails 已有的技术,避免重复开发相同的功能。

是的 Turbolinks 不是万能药,你不可能靠他实现所有项目,但在项目初期,甚至后期,你依然是可以用他实现很多功能的,然后它仅仅是 iOS 开发里面的一个小组件而已,有一天你的项目有时间有需要的时候,你可以逐步的把一些功能用 Native 实现(前提是你得有哪么多时间),Turbolinks(我指客户端的组件)仅仅是 iOS 里面一个对 WKWebView 的封装而已,它并没有破坏原有的 Native 架构,所以这个对于未来的 Native 实现是没有成本(或者说成本非常低的),当然也是相对 React Native、Ionic、RubyMotion 之类的架构方式。

所以为何不用呢?Turbolinks 能帮你项目起步的时候快速实现 iOS 功能,当然你要牛逼并且有时间有资金,你当然可以找几个 iOS 和 Android 工程师开发 Native 的 App。

还有一点是我认为 Turbolinks 还是更多的为 Rails 而设计的,只有 Rails 的项目用起来才会那么顺畅,我前面说到那些快速实现的基础是 Web 开发者得有熟练的 Rails 基础。

#17 楼 @xhj6 我觉得没你说的这么夸张,并不是固步自封,而是现在本身 mobile 开发真的就是一个烂摊子

有网站,还有 mobile. Mobile 要是一个还好,偏偏一个安卓一个 iOS

谁愿意一套代码写 3 遍呢...尤其是 ruby 社区非常追求开发效率,讲究复用(DRY),讲究小团队 在这个前提下,我们自然希望,用尽可能少的代码,去实现尽可能多的事情,所以才会去追求 Turbolink

#20 楼 @ashchan #21 楼 @huacnlee

Sorry, 说“固步自封”太过了!其实我当然知道他们很牛,解决问题的方案也在一直引领潮流。但是我的感觉是需求的固化使得这些牛人们 也许 会对 Rails 的欠缺之处缺乏同理心,“在我这儿用得好好的啊?”,会不会这样呢,仅仅只是我的猜测。

我的失望之处就主要来源于 Rails 对移动化的支持来得太晚、太浅、太不够,比如对前端的支持和跟进肯定是像 @huacnlee 所讲的那样,尝试了很多框架,回头来还是觉得目前绑定 JQuery 就够了,为什么呢?我以为是需求的单一化所造成的,对于他们来讲够用了而已。

但是对于 Web 开发来讲,对于创业公司和小团队来讲,Rails 在团队人员跟得上的情况下,仍然是黄金利器。我本人以及本人的团队在可以预见的两三年内仍然会坚持使用 Rails,对 Turbolinks 这种方案也非常感兴趣,所谓的“失望”只是观看视频的过程中的一点小感慨而已。

#22 楼 @cqcn1991 不能说是烂摊子,还是有很多好东西的,只是还没有入 Rails 团队的法眼,或者是没办法整合而已。

#23 楼 @xhj6 话说 mobile 这边开发如何了?我是一直想学 swift 做点 iOS 玩玩,然而确实一直抽不开时间,有时候只是想简单搞个 demo, 还不如直接撸 web 好了(如果不涉及太多移动端特性,不过之前想定位就发现 web 定位好像比较麻烦)

十几年公司不倒,聚财吸金不辍,人精简效率高,乃第一世界业界之楷模,北欧英才,偕日式菊刀,傲立美利坚硅谷,开宗创派,江湖老司机

第三世界一小撮观点,认为此举不妥,固步自封

北欧风偕菊与刀,是“痛失首金非喜迎首银“的民族无法理解的

#25 楼 @oth 本不想回此贴的,转眼间居然有 3 个人为你点赞,真是令人遗憾。

我想谈论的是:

  • 1、Rails 对移动化的支持好不好?
  • 2、Rails 核心团队面临的需求挑战是否单一或者固化?
  • 3、这种需求的单一化会不会给 Rails 的发展带来不利的影响?

我遗憾的是,我提出这个观点,您如果认为它并不符合事实,完全可以列出反驳的事实和论据,比如象 @huacnlee 那样,说明 Tubrolinks 为什么好,令人阅后有所收益,而您的回帖呢,我的理解是基本上完全仅仅只是人身攻击而已。

回避问题,动则扣大帽子,正是 “痛失首金非喜迎首银”的民族 的典型做派,我分不太清楚这究意是“文革余毒”还是“封建遗毒”,不太清楚您是否看过《影响力》这本书,但书中有一个观点可供您参考:

自我认同度越低的人,越容易去 认同 / 迷恋 / 捍卫 别人的成功。

另外,对我自己而言,不管它是北欧或是日式,我的尊敬并不会因此而多一分,也不会因此而少一分;对于技术,说老实话,我真的很少意识到它还有国别和民族的差异,动则以歧视性的角度去看人看事,归根结底还是因为自己非常自卑吧,而这,恰恰又正是 “痛失首金非喜迎首银”的民族 的典型特征之一。

我只针对“固步自封”四个字

对祖师爷团队不敬,扯别的没用

就如 @ashchan 提到没有一种方案是通吃的,每种技术方案都有它适合的场景,存在的意义,关键自己想要什么。要性能,体验,那么原生,代价是成本较高,如果要性能,要开发效率,那么试试 react native / weex,当然也并不完美。对于 web 开发者,个人也更倾向于偏 web 方案,更亲切,当然个人意见。

rubymotion 如何?可有人实践,分享下。

#28 楼 @oth 👎 这样回复不利于讨论。

#21 楼 @huacnlee MKWebView -> WKWebView

@rei 对没礼貌的人,懒得讲太多

需要 登录 后方可回复, 如果你还没有账号请 注册新账号