前端工程师也能给火箭写代码了🚀

2020-06-04 05:11:08 +08:00
 zachguo

https://yasoob.me/posts/software_engineering_within_spacex_launch/

SpaceX 内舱操作界面基于 Chromium 和 JS 开发。

13020 次点击
所在节点    程序员
82 条回复
Vegetable
2020-06-04 10:22:28 +08:00
JavaScript——航天级编程语言
aogu555
2020-06-04 10:26:47 +08:00
前端的这个前端定义的是用户端,操作端,难道前端就只剩下 js 了吗?
icebreaker12
2020-06-04 10:46:21 +08:00
任何可以用 js 来写的应用,最终都将用 js 来写
nicevar
2020-06-04 10:51:11 +08:00
火箭偏离轨道, 因为 node_modules 太重导致
alphatoad
2020-06-04 11:41:31 +08:00
@mostkia 我不是这方面领域的专家,不过我记得之前看到过科普文,高频芯片在太空会出问题,不知道原理是什么
hakono
2020-06-04 11:53:14 +08:00
@alphatoad 因为宇宙射线。
和医院里跟 x 光机凑得近的设备没做好防辐射处理的话,CPU 或者内存会出现随机的存储运算错误一样道理。

以前的航天项目在电子系统的防辐射上相当花钱,spaceX 直接放弃这么做,准备了多套一样的系统并行计算然后互相对比运算结果确保计算结果一致。这么一搞之后电子系统成本直接爆降,龙飞船的控制系统成本才几万美元的样子。
alphatoad
2020-06-04 11:56:50 +08:00
@hakono 谢谢,这确实是工业界会用的方法,大型 ecc
AlphaTr
2020-06-04 12:02:36 +08:00
仅在一夜之间,Electron 风评即由「笨重臃肿的 Chrome 马甲套壳」变成了「稳定安全的航天级 GUI 基础架构」。

在飞船 UI 系统宕机时,宇航员手册中记载了最后的应急方案,那就是删掉 node_modules 然后 npm install 。

「面试造火箭」一语成谶,「宇宙飞船 UI 架构设计」现已加入 BAT 前端面试题库。

前端培训班题材纷纷由「高仿美团饿了么首页」转向「高仿宇宙飞船控制台」,全套教学视频 + 源码仅需 998 。

各大前端框架争相游说各国载人航天团队,史称前端太空竞赛。

社区开始争论 React Hooks 和 Vue Composition API 哪个更适合登月。

SpaceMVC 项目取代 TodoMVC,成为了下一个前端框架的 battle 标准。

工程师一旦发现飞船超重,第一个排查问题的位置就是 node_modules 。

某国湿婆神号飞船任务失败,原因竟是该国程序员屏幕上的咖喱混淆了 == 和 ===,导致类型比较出错。

转自知乎: https://www.zhihu.com/question/396878847/answer/1261374042
fakeshadow
2020-06-04 12:08:51 +08:00
宇航员: 启动紧急逃逸
显示器: TypeError: ‘undefined’ is not a function
Huelse
2020-06-04 13:37:13 +08:00
楼上是想笑死我吗
不过这一套下来的确能省很多很多成本
newmlp
2020-06-04 13:49:02 +08:00
@idealhs 就是个飞船而已,把人送上去,在把人接回来,没那么多复杂的使用环境
Phariel
2020-06-04 14:04:00 +08:00
面试造火箭 入职。。。 入职还真是造火箭!🐶
sadfQED2
2020-06-04 14:27:52 +08:00
我好奇火箭的代码是不是用 jetbrains 写的?那我用的也是航天级开发工具?
shijingshijing
2020-06-04 14:32:47 +08:00
@hakono
@alphatoad

这个东西的学名叫单粒子翻转(SEU, Single Event Upsets),简单来讲就是单个 cell 可能在某种情况下受宇宙射线影响从 0 编程 1 或者反过来。地球上 SEU 察觉不到是因为电离层的保护已经将这些射线大部分屏蔽掉了,事实上几乎每家大型半导体公司都会对此作出一定的说明和应对:
Intel 的 https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01206-introduction-single-event-upsets.pdf

Xilinx 的
https://www.xilinx.com/support/documentation/white_papers/wp395-Mitigating-SEUs.pdf

应对 SEU 的措施有很多,硬件层面做 Radiation Hardening,系统设计方面使用三重表决系统( SpaceX 就是三套 FlightControl 表决,可以简单理解为斗地主),还有其他各种冗余设计,双核单步执行实时比较等等。

硬件方面航空航天领域里面,用的最多的是 PowerPC,代表作是 BAE 的 PowerPC 750,据说火星车上用的这款芯片能做到电路板裸露到外面长达一定时间没有影响,足够完成关机以及其他保护措施。当然不仅仅是 CPU 需要做 Radiation Hardening,内存也需要,整个电路板也会有相应的抗辐照,抗高温,耐低温,抗震等等设计。SpaceX 的理念是不关注最底层的失效可能性,从整个系统层面提高可用性,这样做能够尽可能降低成本,同时保留足够的可用性(一般用 10 的负 9 次方这种概率值来衡量)这样做也是有科学道理的,因为即使是上面的 Radiation Hardening,三重表决等等都做了,也只能是尽可能的 mitigation,而无法彻底 elimination,所以只要指标达到,我在系统层面做优化,在设备层面做优化,在元件层面做优化都是可以的。

这个领域有一个很形象的比喻,从系统到设备到元件乃至到最底层的晶体管都不是完美的,每一层都像一片瑞士奶酪那样充满着孔洞,我们能做的就是将这些奶酪一层层叠起来,尽量让整个奶酪没有孔洞。
Chenamy2017
2020-06-04 14:42:45 +08:00
@ochatokori js 一统宇宙了吧。
glasslion
2020-06-04 15:48:56 +08:00
@nuistzhou 电子设备比人娇嫩多了
jsq2627
2020-06-04 16:40:35 +08:00
https://iss-sim.spacex.com/
来来来,感受一下
CBS
2020-06-04 16:41:14 +08:00
为什么不用 Android,Android 什么时候才能站起来,气抖冷
BryceBu
2020-06-04 16:52:57 +08:00
楼上都是人才
zaul
2020-06-04 17:57:27 +08:00
js 牛逼

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

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

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

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

© 2021 V2EX