<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpaceX火箭發(fā)射成功,他們也在用Python!

          共 2814字,需瀏覽 6分鐘

           ·

          2020-06-01 23:23

          本文經(jīng)授權(quán)轉(zhuǎn)自:程序員的那些事(id:iProgrammer )。未經(jīng)許可,禁止二次轉(zhuǎn)載。


          北京時(shí)間5月31日凌晨3點(diǎn)22分,NASA 與 SpaceX 合作,獵鷹9號(hào)火箭順利升空。這是 SpaceX 公司首次利用載人龍飛船,把兩位宇航員送入地球軌道。


          197e22afc28a45266f6dba29e644350b.webp

          (獵鷹9號(hào)火箭升空)


          31日22點(diǎn)30分,載人龍飛船與國(guó)際空間站成功對(duì)接。


          6月1日凌晨1點(diǎn)23分左右,搭乘龍飛船的兩位美國(guó)宇航員進(jìn)入國(guó)際空間站。


          88ba043c1b3e83b05ecc3210b3c76e9a.webp

          空間站上的三位宇航員與龍飛船上的兩位宇航員(右一右二)碰面


          Dragon 飛船和 Falcon 9 火箭都廣泛使用定制版的 Linux 系統(tǒng),飛行軟件使用 C/C++ 編寫(xiě),飛船內(nèi)的圖形顯示應(yīng)用是基于 Chromium/JS。


          可能有程序員(包括我自己)對(duì) SpaceX 工程師們用到的技術(shù)棧感興趣了。于是就搜尋相關(guān)公開(kāi)信息。


          終于找到?2013 年 SpaceX 的軟件工程師在 Reddit 做過(guò)一次公開(kāi)回應(yīng),回答網(wǎng)友們的提問(wèn)。


          一、SpaceX 軟件工程師團(tuán)隊(duì)在干什么


          SpaceX 軟件工程師的目標(biāo)有 2 個(gè):


          • 火箭和航天器上運(yùn)行的代碼;

          • 火箭和航天器的設(shè)計(jì)和制造過(guò)程的代碼;


          工作內(nèi)容范圍就很大了,從大型 Web 應(yīng)用到小型嵌入式計(jì)算平臺(tái)都有涉及。


          SpaceX 軟件工程師的技術(shù)棧:


          • C#、MVC4、EF、MSSQL (REST);

          • Javascript、Knockout、Handlebars、LESS;

          • C++、Linux、C、Python、LabVIEW、MATLAB;


          看到這,肯定有人冒出疑問(wèn)了,C# 和 MVC 與火箭發(fā)射沒(méi)有關(guān)聯(lián)吧?


          d2ae9cea7ff1d373dfc4e2340d14680f.webp


          嗯,沒(méi)關(guān)系,它們是用來(lái)開(kāi)發(fā)內(nèi)部信息系統(tǒng)的。1e782ecf8945217191a84c9fff77241e.webp


          SpaceX 有 4 個(gè)獨(dú)立的軟件團(tuán)隊(duì)。


          1、飛行軟件團(tuán)隊(duì)


          大約有 35 人(這是 2013 年的人數(shù))。獵鷹9號(hào)火箭、蚱蜢火箭和龍飛船上所有的代碼,都由飛行軟件團(tuán)隊(duì)包圓了。


          此外,他們還得:

          • 編寫(xiě)仿真軟件,測(cè)試飛行代碼;

          • 編寫(xiě)部署在地面站的通信和分析軟件;

          • 在飛行任務(wù)控制部門(mén)工作,為現(xiàn)役任務(wù)提供支持。


          2、企業(yè)信息系統(tǒng)團(tuán)隊(duì)


          建立內(nèi)部軟件系統(tǒng),讓 Spacex 得以運(yùn)轉(zhuǎn)。


          這個(gè)團(tuán)隊(duì)中的成員身兼多職,但他們開(kāi)發(fā)和發(fā)布的旗艦產(chǎn)品,幾乎所有 SpaceX 員工都在使用的內(nèi)部 Web 應(yīng)用程序。


          包括:

          • 創(chuàng)建采購(gòu)訂單和填寫(xiě)零件庫(kù)存的人員,

          • 工程師創(chuàng)建設(shè)計(jì)和工作訂單,

          • 技術(shù)人員在現(xiàn)場(chǎng)打卡并根據(jù)這些設(shè)計(jì)查看當(dāng)天的工作內(nèi)容。

          • (基本涉及到方方面面了。市面上有一些商業(yè)化產(chǎn)品可以滿(mǎn)足他們的需求,但 SpaceX 是自己開(kāi)發(fā)了)


          SpaceX 正在從一個(gè)研究和工程公司轉(zhuǎn)型為一個(gè)制造公司,該團(tuán)隊(duì)功不可沒(méi)。他們充分利用了C#/MVC4/EF/SQL、Javascript/Knockout/Handlebars/LESS 和 REST API。


          3、地面軟件團(tuán)隊(duì)


          這個(gè)團(tuán)隊(duì)大約有 9 人。主要在 LabVIEW 中編碼,開(kāi)發(fā)用于任務(wù)和發(fā)射控制的 GUI,供工程師和操作人員監(jiān)控飛行器遙測(cè)和指揮火箭、航天器和平臺(tái)支持設(shè)備。


          他們?cè)诟叨确植际较到y(tǒng)中推送高帶寬的數(shù)據(jù),并實(shí)現(xiàn)由嚴(yán)格要求的復(fù)雜用戶(hù)界面,以確保操作人員能夠及時(shí)控制和評(píng)估航天器。


          LabVIEW 是什么?

          LabVIEW(英語(yǔ):Laboratory Virtual Instrumentation Engineering Workbench)是由美國(guó)國(guó)家儀器公司所開(kāi)發(fā)的圖形化程序編譯平臺(tái),由杰夫·考度斯基(Jeff Kodosky)發(fā)明,程序最初于 1986 年在蘋(píng)果電腦上發(fā)表。


          LabVIEW 早期是為了儀器自動(dòng)控制所設(shè)計(jì),至今轉(zhuǎn)變成為一種逐漸成熟的高級(jí)編程語(yǔ)言,目前廣泛的被應(yīng)用于工業(yè)自動(dòng)化之領(lǐng)域上。


          圖形化程序與傳統(tǒng)編程語(yǔ)言之不同點(diǎn)在于程序流程采用"數(shù)據(jù)流"之概念打破傳統(tǒng)之思維模式,使得程序設(shè)計(jì)者在流程圖構(gòu)思完畢的同時(shí)也完成了程序的編寫(xiě)。—— 維基百科


          4、航電測(cè)試團(tuán)隊(duì)


          他們與航電硬件設(shè)計(jì)工程師一起合作,編寫(xiě)測(cè)試軟件,盡早發(fā)現(xiàn)硬件問(wèn)題。


          該團(tuán)隊(duì)的主要任務(wù):寫(xiě)出非常全面和強(qiáng)大的軟件,以便能夠在大批量的情況下自動(dòng)發(fā)現(xiàn)硬件的問(wèn)題。


          測(cè)試軟件通常是在機(jī)械環(huán)境測(cè)試的時(shí)候運(yùn)行。


          【說(shuō)明】:可能有童鞋要問(wèn),前文技術(shù)棧提到了 Python,怎么沒(méi)有說(shuō)用在哪方面呢。測(cè)試團(tuán)隊(duì)做自動(dòng)化測(cè)試時(shí),肯定用了 Python。


          我們來(lái)看看 SpaceX 部分涉及測(cè)試的崗位要求:


          47874258970349d9d0ce39ef00ea117b.webp

          46315cdd1ed4fda0d994706758dc3189.webp

          eba03e8c3280a36d95df1bbc137b620c.webp



          二、SpaceX 工程師答網(wǎng)友問(wèn)


          問(wèn):導(dǎo)航/推進(jìn)控制系統(tǒng)用了哪種操作系統(tǒng)?

          答:龍飛船和獵鷹9號(hào)用的是 Linux。


          b2e6a0148810540fc320fc6dc18c5fa9.webp


          問(wèn):主力編程語(yǔ)言是哪個(gè)?

          答:火箭和飛船都是 C++。


          d02ae9e77e478f4a41332e10cd04662f.webp


          問(wèn):你們當(dāng)前最大的項(xiàng)目代碼量是多少?

          答:運(yùn)載工具代碼約為幾十萬(wàn)行。


          問(wèn):維護(hù)麻煩嗎?

          答:不麻煩,這就是我們的工作!實(shí)際上,我們對(duì)代碼庫(kù)非常滿(mǎn)意。


          問(wèn):你們最具挑戰(zhàn)性的項(xiàng)目是什么?為什么?

          答:龍飛船對(duì)接國(guó)際空間站是一個(gè)重大挑戰(zhàn)。因?yàn)楸仨氁_(kāi)發(fā)許多新代碼。


          (程序員的那些事 補(bǔ)充:今天成功發(fā)射的龍飛船,可以自動(dòng)與空間站完成對(duì)接。第一代龍飛船需要借助空間站上的機(jī)械臂。當(dāng)然,載人龍飛船也保留了人工對(duì)接的選項(xiàng)。SpaceX 在 2013 年的龍飛船是第幾代,我沒(méi)查。9558c6f7fa34ad100b5528fb521318c9.webp


          問(wèn):你們覺(jué)得最有成就的是什么?

          答:龍飛船對(duì)接國(guó)際空間站。


          7b36031dbf36ae3fa3d0146a5d5d727e.webp


          問(wèn):你們?cè)趺雌胶夤ぷ?生活?我聽(tīng)說(shuō)在 SpaceX 很容易職業(yè)倦怠。你們都在煎熬嗎?


          答:SpaceX 體現(xiàn)了小型企業(yè)的心態(tài)。我們?nèi)纪顿Y于 SpaceX 及其成功。話雖如此,我們的工作時(shí)間卻更長(zhǎng)。歸根結(jié)底,還是要看你生活中最重要的是什么。我們當(dāng)然要應(yīng)對(duì)職業(yè)倦怠,那就是休假?:-)。


          就我個(gè)人來(lái)說(shuō),大多數(shù)時(shí)候我甚至沒(méi)有注意到我已經(jīng)工作了12~14個(gè)小時(shí)。我看著時(shí)鐘,想著“時(shí)間真快在哪里?”。我認(rèn)為這證明了我們對(duì)項(xiàng)目感到興奮的程度。當(dāng)你真正享受自己的工作時(shí),并不會(huì)感覺(jué)像是在工作。話雖如此,我仍然會(huì)時(shí)不時(shí)地休假,借以保持理智。


          aea589c5ad320fb4050a5fe3973eb7dc.webp


          (程序員的那些事 補(bǔ)充:我查看了 SpaceX 的招聘信息,很多技術(shù)崗位,基本都有一個(gè)額外要求:必要的時(shí)候,能加班。0eafa65b6edd028b12956c825ffddd46.webp?)


          45aab26ad27f02375d78c9b81ad32dae.webp


          還有個(gè)當(dāng)年正在攻讀天體物理學(xué)的學(xué)位的童鞋問(wèn):


          對(duì)于航天行業(yè),你們覺(jué)得最常用/最有用的編程語(yǔ)言是什么?我的編程經(jīng)驗(yàn)非常少,而且很想開(kāi)始學(xué)習(xí),因?yàn)檫@個(gè)行業(yè)的每一個(gè)方面/研究似乎都需要對(duì)編程有一定的了解。


          SpaceX 工程師的回復(fù):


          對(duì)于所有軟件工程師來(lái)說(shuō),C 語(yǔ)言是一門(mén)很好的入門(mén)語(yǔ)言。它迫使你學(xué)習(xí) CPU 是如何工作的,內(nèi)存是如何工作的,等等。一旦你掌握了 C 語(yǔ)言之后,再去看 C++。


          我們團(tuán)隊(duì)所有人都有不同的背景,沒(méi)有什么特別的路徑,我們都是沿著一條路走到這里的。就我個(gè)人而言,我在學(xué)校里得到的最好經(jīng)驗(yàn)就是做了個(gè)人編程項(xiàng)目。這年頭在網(wǎng)上和應(yīng)用商店里有很多機(jī)會(huì),可以做一個(gè)產(chǎn)品,公開(kāi)自己的作品讓他人看到。


          最后附上一個(gè)視頻:動(dòng)畫(huà)演示 SpaceX 龍飛船如何送宇航員去國(guó)際空間站

          (視頻轉(zhuǎn)自騰訊太空)

          好文章,我在看??

          瀏覽 75
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  凹凸精品一区二区三区四区在线 | 狠狠干b| 天天影视网色欲 | 中文字幕+乱码+中文字幕明步 | 亚洲区成人777777精品 |