Airbnb and React Native Expectation(爱彼迎弃用RN原因 翻译)

到目前为止,大多数iOS开发人员可能都听说过Airbnb正在远离React Native。看到网上的反应有点奇怪——人们表现得很高兴,几乎在庆祝这一宣布。我在twitter上看到一些iOS开发人员对Airbnb尝试使用RN存在质疑。但我不是在这里谈论iOS开发者社区的狭隘,我是在这里谈论Airbnb(相当优秀)的博客文章。

这些博文非常棒,因为Airbnb首先列出了它对React Native的期望,然后解释了这项技术在多大程度上满足了(或未能满足)这些期望。这是一个彻底的、诚实的讨论,关于大型团队如何评估技术,以及这些团队如何面对他们的决策的后果。

所以我真的很喜欢这些文章,但我不认为它们是完整的。稍后将进行更详细的讨论。首先,我想谈谈Airbnb的实际期望。我在这里总结一下,但是你确实应该自己读一下这些文章。

以下是Airbnb对React Native的目标,我将其解释为对技术的期望:

1.让我们作为一个组织更快地行动。

2.保持原生(Native)的质量标准。

3.为移动设备编写一次产品代码而不是两次。

4.改善开发人员的体验

好的,那四件事怎么样了?好吧,我再说一遍:

“工程师能够以无与伦比的速度前进”,但也有技术和文化方面的障碍减弱了这些期望。

而且,取得的成功是指:“我们能够完成许多我们不确定的事情。”但他们指出了同样的技术挑战和缺乏内部工程资源,这有时会让团队感到沮丧。

最重要的失败原因(*):“我们在三个平台而不是两个平台上支持代码”,这听起来很严峻。而且,“我们的应用程序中只有一小部分是React Native”,这意味着他们有很多开销,但没有太多的好处。我想更详细地讨论这个期望,但在需要太多时间了。

一个“混合包”,有些东西更简单,更快,同时其他的东西会变得更糟糕。

(*注意:我对#3作为失败的描述一直存在争议;你应该阅读Leland Richardson的帖子回复我,以便对Airbnb在Android和iOS之间共享代码的经验进行非常精彩和细致的澄清。)

好吧乍一看,这看起来很有希望,对吧?我的意思是,Airbnb表示“60%[工程师]会将他们的经历描述为惊人的”,因为您团队的大多数人都参与其中。但5%是“强烈消极”?有趣。很有意思。我们很快就会回到这里,首先让我们谈谈第三个期望。

每个人都在谈论的重点是第三点:Airbnb预计能够在Android和iOS上重复使用代码,但却失望了。他们希望“一次编写,随处运行”体验。这就是我对这些帖子的问题以及如何讨论它们。

React Native显然不是“一次编写,随处运行”,尽管这是一种常见的误解。您可以编写一个应用程序并部署到Android和iOS的想法很有吸引力,像Expo这样的解决方案确实存在,但跨平台代码重用并不是React Native的主要卖点。 React Native是一个“一次学习,随处写”的平台;而不是为多个平台构建一个应用程序,React Native的主要卖点是它允许您使用React。

就是这样。

因此,当人们将Airbnb的决定定位为React Native的失败时,我想知道他们对React Native的用途有多了解。如果你期望技术可以做一些不是为它设计的东西,那么当它无法实现时你会感到失望,这不是技术的错,是吗?而且,如果您的应用程序仅仅是“只有一小部分”使用该技术,那么您将无法获得尽可能多的好处。

我试图不把它作为Artsy-vs-Airbnb的讨论框架,但是很难避免这种比较,因为Artsy在我们的React Native代码上取得了如此巨大的成功。我认为其中很大一部分来自于我们如何构建我们的React Native代码:所有JavaScript都在自己的存储库中,并且它作为CocoaPod发布。本机应用程序只是导入该pod并从中实例化视图控制器,就好像它们是普通的视图控制器一样(因为它们,它们的视图恰好是React Native组件)。对于我这种很不满意在Artsy的应用程序中使用js的人,在没写任何js代码之前我们使用了一年RN的原生代码包,这很大限度地减少了我的开销。

这种感觉会让我回归文化。我认为这些博客文章在描述其体验的技术部分方面做得非常出色,但他们缺乏对采用React Native的非技术障碍的详细描述。

什么样的障碍? 好吧,不要再提起iOS开发者社区的狭隘,但是...... iOS开发人员在更广泛的软件行业中享有盛誉。 查理·奇弗(Charlie Cheever)在世博会发布的观点撰写有关这一主题的文章,可以这样说:

[...]组织中有些人认为自己是iOS程序员、Android程序员很难对React Native感到高兴。 特别是iOS程序员对它非常不满意,并且普遍认为JS是公司代码库的一种侵扰,而Android程序员则有更复杂的感受。(重点补充。)

当我看到一个团队的大多数人将他们的经历描述为“惊人”,并且该团队的极少数人(但很普遍,我敢肯定)将其描述为“非常消极”,这让我对Airbnb上有关React Native的内部讨论感到疑惑。

我明白了,我真的做到了。我认为JavaScript也是一种感染。我花了很长时间才克服它。我的意思是,如果你被聘请编写Swift / Objective-C而且你的团队突然要求你使用JavaScript,那么很自然会感到沮丧,甚至生气。 但你知道吗?工程师不只是编写代码,更重要的是解决问题。当然工程师会对他们团队使用的工具有所了解,我认为未来的博客文章应该涵盖Artsy如何减轻原生iOS开发人员和我们的React Native选择之间的紧张关系。 但是我希望我们能够更加关注我们的感受。

Airbnb的经验恰好可以作为拒绝使用RN的参考。如果你的公司的文化只允许原生开发,那么RN肯定是不合适的。

Airbnb选择离开React Native的原因不仅仅有技术还有文化,虽然我理解为什么他们没有宣传这些紧张局势,但它给人的印象是Airbnb的决定完全基于技术优势。事实并非如此。

github链接:blog/2018-06-23-airbnb-and-react-native-expectations.html.markdown at master · ashfurrow/blog · GitHub

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 原文地址:https://medium.com/airbnb-engineering/react-native-a...
    莫寂岚阅读 3,240评论 0 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,457评论 25 707
  • 孩子是世界上最容易原谅我们的那个人。 但这不应该成为我们一次次伤害孩子的理由。 不少父母说:我总是忍不住对孩子发火...
    书香一缕_eaeb阅读 352评论 0 0
  • 雨天,总该去写点诗句。雨,是缠绵于天地间的诗。说是去写点诗句,其实不过是藏在心底的诗意被雨所勾引出来,然后经由文字...
    之_翼阅读 475评论 0 2