面试官说 APP 热修复和热更新不是一个东西

2021-12-27 08:45:49 +08:00
 Geo200

某券商面试,介绍了自己在 react-native 做的热更新工作时,也使用了 [热修复] 的描述,但面试官直接说我这个不是热修复,只有原生的实现才是热修复。个人一直认为这两个词是可以混用的,而且热修复一词,只要不需要重新下载 APP 我觉得都可以认为是 [热修复] ,不知道是我知识有盲区还是面试官故意踩我,求指导

6224 次点击
所在节点    职场话题
29 条回复
chaselen
2021-12-27 08:54:27 +08:00
不是一回事? 😅
Innovatino
2021-12-27 08:58:48 +08:00
面试官有病,咬文嚼字没话找话
AilF
2021-12-27 09:07:51 +08:00
在我的理解中,这两个就是一回事 😂
x86
2021-12-27 09:09:34 +08:00
你问他,你爸是不是你爹
yuan925
2021-12-27 09:16:09 +08:00
面试管说的没错,不算踩你。
修复一般是指 fix ,更新是指 feature 发布,完全不是一会事,使用的技术也不一样。
比如 iOS 热修复,一般是脚本( js 、lua 等)动态运行 runtime 特性来修复线上原生 bug ;而热更新,是指基于框架( rn 、weex 等)来发布新功能。
说是一会事的,你觉得用 rn 可以来修复原生 bug 么?底层实现都不一样。
meteor957
2021-12-27 09:18:53 +08:00
直接跟他说英文。以前碰到过跟我 bb 重排和回流的区别的,
Geo200
2021-12-27 09:29:28 +08:00
@yuan925 有点道理,可以理解版本发布是热更新、改 bug 是修复,但如果使用框架开发的场景,针对某个 bug 而发布的版本是热更新还是热修复呢?
nightmarks
2021-12-27 09:32:16 +08:00
不做线上版本发布工作的人一般不会知道这些,就是个版本号的区别而已,说实话有点咬字眼
cnrting
2021-12-27 09:35:41 +08:00
应该说 fix 属于 update 的一种吧
louiswang002
2021-12-27 09:36:16 +08:00
就像 jspatch 和 react native 的区别一样吧
jackbrother
2021-12-27 09:37:31 +08:00
@yuan925 那用热修复的方式去新增功能呢?
louiswang002
2021-12-27 09:39:06 +08:00
@Geo200 我觉得面试官问的方向有点问题,应该针对这两个技术的细节,而不是扣字眼
whenov
2021-12-27 09:47:53 +08:00
@yuan925 fix=修复,update=更新,feature=特性
whenov
2021-12-27 09:48:37 +08:00
update = fix + feature
yuan925
2021-12-27 09:50:23 +08:00
@jackbrother 这种方式是不可取的。一般热修复都是根据原生代码,翻译成脚本语言来 fix 某个 bug ,代码量小,非常的不直观。用来开发新功能,工作量会成指数级的增加,可维护性也差。
yuan925
2021-12-27 10:01:38 +08:00
一个个都在扣字眼真没必要,中文翻译也是描述不准备的。
app 开发动态代码下发,用于 bugfix 和跨平台开发,完全就是两种技术,这也是面试管想问的,不要搞错重点了。
sunny352787
2021-12-27 10:17:12 +08:00
我这边做游戏的,热更新和热修复还真就是两回事

比如我们用的 Unity 开发,原生使用 C#代码,通过第三方库的形式可以引入 lua 脚本

有一部分普通的逻辑使用 lua 开发,例如 UI 之类的,会一直用 lua 写下去,后面更新也一直用 lua 提交,这个我们叫热更新

而另一部分比较核心的对性能要求比较高的代码使用 C#原生开发,线上出现错误的时候通过一些临时打补丁的方式可以做一些修复但会影响性能,等到下一次发包的时候会在 C#层面将这部分代码修改掉同时移除之前的临时补丁,这种临时补丁的方式我们就叫热修复

我估计可能面试官想要的是类似这种的说法吧
murmur
2021-12-27 10:35:21 +08:00
热修复是修 java 部分?
zerofancy
2021-12-27 10:45:02 +08:00
在我的理解里,两者确实不是一回事。
安卓原生用 java(或 Kotlin 开发),语言本身是没有动态特性的,热修复是 hook 了 classloader 使得能够优先加载后来下发的类。
whistleryz
2021-12-27 10:53:22 +08:00
显然面试官对这方面是有研究的,只不过面试水平可能有待提高,本着问题而不是交流的方式跟你聊,让面试的同学聊的不开心了。

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

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

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

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

© 2021 V2EX