欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一名IT工程師在Coverity的職業(yè)生涯

工程師人生 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:工程師吳畏 ? 2018-07-12 14:47 ? 次閱讀

好久沒(méi)有寫博客,一方面因?yàn)楣ぷ魈?,另一方面是因?yàn)闆](méi)有發(fā)現(xiàn)什么好寫的。可是后來(lái)發(fā)現(xiàn)沒(méi)什么好寫的原因其實(shí)也是因?yàn)楣ぷ魈α?。忙得不正常,所以沒(méi)有很多時(shí)間和精力來(lái)研究和欣賞自己喜歡的東西了。

我在一家叫做 Coverity 的公司工作,我住在三藩市(San Francisco)。Coverity 是一個(gè)奇怪的公司,三藩市是一個(gè)奇怪的城市。

Coverity 制造一種叫做“靜態(tài)分析”(static analysis)的軟件。這種軟件可以在不運(yùn)行程序的情況下,經(jīng)過(guò)對(duì)代碼的分析,自動(dòng)的找到程序里面可能出現(xiàn)的問(wèn)題。這有點(diǎn)像我之前給 Google 做的那個(gè) Python 分析器,只不過(guò)針對(duì)另外的語(yǔ)言(C,C++Java 等),分析的側(cè)重點(diǎn)不同,能處理代碼的規(guī)模也貌似大一些。還有就是這么多年了,久經(jīng)沙場(chǎng)考驗(yàn)了。

Coverity 具有世界上最先進(jìn)的一些技術(shù),所以麻雀雖小,卻讓很多人離不開它??峙潞苌儆腥酥?,這小小的公司的忠實(shí)客戶,包括了一系列的大拿:美國(guó)宇航局, 波音, 洛克希德馬丁,雷神(Raytheon),BAE Systems,豐田,歐洲原子能中心(CERN)…… 貌似幾乎所有對(duì)代碼質(zhì)量不敢有絲毫差錯(cuò),又不得不用像 C++ 這樣毛病眾多的語(yǔ)言的公司,都購(gòu)買了 Coverity 的產(chǎn)品。比如最近的火星好奇者號(hào)上的所有200多萬(wàn)行代碼,都經(jīng)過(guò)了 Coverity 的靜態(tài)分析。當(dāng)然,如此精密的設(shè)備不可能光靠 Coverity 查一下錯(cuò)就能確保萬(wàn)無(wú)一失,它必須依靠很多其它的技術(shù),但 Coverity 確實(shí)是這些東西的開發(fā)過(guò)程里面比較重要的部分。

我必須承認(rèn),Coverity 給了我足夠的啟發(fā),甚至間接的讓我發(fā)現(xiàn)了自己之前做的 Python 靜態(tài)分析里面存在的一些問(wèn)題。Coverity 的產(chǎn)品在大規(guī)模的代碼上面的成功,也讓我意識(shí)到了自己在 Python 分析器里的一些突發(fā)奇想的設(shè)計(jì)的正確性和價(jià)值。如果我現(xiàn)在做一個(gè)新的 Python 分析器,它將比原來(lái)的精確和高效(也可以推廣到其它語(yǔ)言比如 JavaScript)。我也清楚的看到,Coverity 自發(fā)研制的一些“不大嚴(yán)謹(jǐn)”的做法,其實(shí)比程序語(yǔ)言領(lǐng)域里面一些看似高深的“邏輯”還要“正確”。這些微妙的“提示信息”,讓我把多個(gè)領(lǐng)域的知識(shí)串通了起來(lái)。所以我覺(jué)得跟這公司還有點(diǎn)臭味相投,加入 Coverity 也是不枉此行的。

然而我也發(fā)現(xiàn),Coverity 缺少我擁有的程序語(yǔ)言理論知識(shí)。絕大部分的 Coverity 工程師沒(méi)有系統(tǒng)的學(xué)習(xí)過(guò) lambda calculus 和函數(shù)式編程。在我的 Python 分析器中,其實(shí)包含了 Coverity 還沒(méi)有的技術(shù)。Python 的靜態(tài)分析本來(lái)就比 C++ 和 Java 之類的難,然而我的實(shí)現(xiàn)卻異常的簡(jiǎn)單。這些微妙的技術(shù),貌似很多人都可以說(shuō)他“會(huì)做”,但是他們卻很難把它做對(duì)。這就像“CPS 轉(zhuǎn)換”一樣,很多人都說(shuō)他會(huì)做,可是真正做對(duì)的只有極少數(shù)人(我是其中之一)。這些技術(shù)源自于我對(duì)程序語(yǔ)言本質(zhì)的理解,源自于 Dan Friedman, Kent Dybvig 和 Amr Sabry 等老師的教誨,也源自于我自己辛勤的實(shí)驗(yàn),實(shí)驗(yàn),再實(shí)驗(yàn)…… 在我簡(jiǎn)短而優(yōu)雅的代碼中,包含了許多人需要花費(fèi)好幾倍的代碼長(zhǎng)度才能達(dá)到的目標(biāo)。所以雖然 Coverity 的工程師們技術(shù)實(shí)力很強(qiáng),但在代碼的簡(jiǎn)單程度和對(duì)程序語(yǔ)言語(yǔ)義的理解上,真的很難達(dá)到我的程度。

這就是為什么我經(jīng)常能夠一眼就看出 Coverity 產(chǎn)品里存在的問(wèn)題,并且很快的修正錯(cuò)誤。舉一個(gè)簡(jiǎn)單的例子,有一天我修改了一行代碼,使得產(chǎn)品在某些 benchmark 上的內(nèi)存使用量減少了一半。我為什么可以做到這一點(diǎn)呢?因?yàn)樵谖业?Python 分析器里,這個(gè)問(wèn)題是從一開頭就不存在的。它源自于一種幼稚的解釋器寫法,有點(diǎn)像 GoF 的《Design Patterns》里的那種。Coverity 的代碼里面有好些類似的問(wèn)題,都是我自己根本不可能犯的錯(cuò)誤,我都沒(méi)有機(jī)會(huì)給他們改進(jìn)。我不是想貶低同事們的水平,他們都是 Stanford, Berkeley 等學(xué)校畢業(yè)的高手,可是我也很清楚自己的技術(shù)地位。

所以我就經(jīng)常發(fā)現(xiàn)這樣的麻煩事:我順手改掉了一個(gè)自認(rèn)為很顯然的問(wèn)題,或者一個(gè)我根本不會(huì)犯的錯(cuò)誤,然后就發(fā)現(xiàn)有大批的測(cè)試需要被修改,我也會(huì)被要求寫出“regression test”,用以防止同樣的錯(cuò)誤再次發(fā)生。某些同事對(duì)于測(cè)試的戰(zhàn)戰(zhàn)兢兢的態(tài)度,其實(shí)跟我當(dāng)年在 Google 實(shí)習(xí)的時(shí)候沒(méi)有什么兩樣??吹竭@里的問(wèn)題了嗎?這些我“根本”不會(huì)犯的錯(cuò)誤,幾分鐘時(shí)間順手就改掉了,但是我卻要花成天的工夫去修改和創(chuàng)建測(cè)試,防止它“再次”發(fā)生。我不得不說(shuō),在這些測(cè)試上所花費(fèi)的工夫,占用了比我修改代碼多好幾倍,甚至幾十倍的工夫!

想想這六個(gè)月以來(lái)我干了些什么,再比較一下在 Google 實(shí)習(xí)的那六個(gè)月獨(dú)自從頭做出來(lái)的東西,我發(fā)現(xiàn)自己簡(jiǎn)直什么也沒(méi)有干。這就是我不喜歡“測(cè)試驅(qū)動(dòng)開發(fā)”(TDD)的原因。在 Google 的六個(gè)月里,我無(wú)視同事對(duì)于測(cè)試的要求,從無(wú)到有的做出了如此精密的系統(tǒng),一個(gè)測(cè)試都沒(méi)有寫照樣做得好,為什么呢?因?yàn)槲业拇a非常的簡(jiǎn)單清晰,我隨時(shí)都可以把它們完整的呈現(xiàn)在頭腦里面,從而讓“心靈之眼”可以看到可能出現(xiàn)的錯(cuò)誤。也許這就是所謂的“邏輯思維”。

對(duì)測(cè)試過(guò)分依賴的人,往往不具有這樣的思維能力。他們不能夠看到代碼最簡(jiǎn)單的本質(zhì),所以需要做很多試探,以求達(dá)到“近似解”。為了不至于偏差很多,就寫很多測(cè)試,用以捕捉和防止每一次的錯(cuò)誤。這就像一個(gè)初學(xué)畫畫的人,一點(diǎn)一點(diǎn)的描,用橡皮反復(fù)的擦,可總也抓不住事物的精髓。這些人對(duì)“錯(cuò)誤”的記憶能力特別強(qiáng),往往深入的追究一塊代碼是“如何”錯(cuò)的,“為什么”是錯(cuò)的,下次如何才能不犯同樣的錯(cuò)誤。

然而我卻沒(méi)法記住之前的代碼是如何錯(cuò)的,我也不想知道為什么它是錯(cuò)的,我只記得“正確”的代碼是什么樣子。錯(cuò)誤的方式有千萬(wàn)種,可是正確的卻往往只有一個(gè)。把腦力浪費(fèi)在記憶錯(cuò)誤的東西,這就是為什么很多人不能寫出真正優(yōu)美而正確的代碼。我受到的訓(xùn)練讓我可以直接得到正確的結(jié)果,所以測(cè)試對(duì)于我來(lái)說(shuō)分量沒(méi)有那么重。當(dāng)我的代碼需要大量的測(cè)試才能確保正確的時(shí)候,那就是它該被推翻重寫的時(shí)候。所以我的代碼往往沒(méi)有任何補(bǔ)丁和變通,可以說(shuō)是無(wú)懈可擊。這就像是一個(gè)真正會(huì)畫畫的人,他閉目沉思,然后一氣呵成。當(dāng)然,優(yōu)美的代碼并不是一蹴而就的,有的代碼被我推翻重來(lái)幾十次才最后成功,但我最后的代碼不留下絲毫錯(cuò)誤的痕跡。所以我覺(jué)得,看一個(gè)程序員的水平,不要看他留下來(lái)多少行代碼,而要看他刪掉了多少行。

我覺(jué)得做 Coverity 的工程師真累。這種累不止在于以上的技術(shù)層面的繁瑣,而且在于管理層對(duì)工程師的缺乏尊重以及不必要的壓力。這讓我在受到了足夠的“啟發(fā)”之后,開始懷疑是否還有繼續(xù)為它工作的價(jià)值。對(duì)于公司管理,以及對(duì)于 IT 行業(yè)總體的看法,我還是以后再講吧。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1772

    瀏覽量

    57842
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1573

    瀏覽量

    68672
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4841

    瀏覽量

    69147
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    月薪 3 萬(wàn)的嵌入式工程師都在用,串口屏到底神在哪?

    作為一名資深的嵌入式工程師,我深知選擇硬件組件時(shí),性能、可靠性、易用性和成本效益都是至關(guān)重要的考量因素。月薪3萬(wàn)的嵌入式工程師們之所以傾向于使用串口屏,主要是基于以下幾個(gè)方面的考量
    的頭像 發(fā)表于 02-12 10:33 ?127次閱讀
    月薪 3 萬(wàn)的嵌入式<b class='flag-5'>工程師</b>都在用,串口屏到底神在哪?

    電子工程師的電源設(shè)計(jì)經(jīng)驗(yàn)分享

    作為一名電子工程師,電源設(shè)計(jì)直是我在工作中重點(diǎn)關(guān)注的領(lǐng)域。電源設(shè)計(jì)不僅需要扎實(shí)的理論基礎(chǔ),還需要豐富的實(shí)踐經(jīng)驗(yàn)。以下是我多年工作中總結(jié)的些經(jīng)驗(yàn):
    的頭像 發(fā)表于 01-21 15:53 ?143次閱讀

    OpenAI從谷歌DeepMind挖角三高級(jí)工程師

    近日,據(jù)Wired最新報(bào)道,OpenAI人才爭(zhēng)奪戰(zhàn)中取得了顯著成果,成功從競(jìng)爭(zhēng)對(duì)手谷歌DeepMind“挖角”了三高級(jí)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)領(lǐng)域的專家。 據(jù)悉,這三工程師分別是Lu
    的頭像 發(fā)表于 12-04 14:13 ?364次閱讀

    Victor Labián Carro:以好奇心成就 RISC-V 職業(yè)成功之路

    將對(duì)邏輯的熱情融入RISC-V職業(yè)生涯IT職業(yè)的成功之路通常是由好奇心、奉獻(xiàn)精神和不斷發(fā)展的意愿鋪蓋而成的。VictorLabiánCarro,RVFA,現(xiàn)職為AxeleraAI的客戶工程師,他把
    的頭像 發(fā)表于 09-10 08:08 ?324次閱讀
    Victor Labián Carro:以好奇心成就 RISC-V <b class='flag-5'>職業(yè)</b>成功之路

    嵌入式軟件工程師如何提升自己?

    ,可以為自己的職業(yè)生涯打下堅(jiān)實(shí)的基礎(chǔ),并實(shí)現(xiàn)個(gè)人的職業(yè)目標(biāo)。愿每位嵌入式軟件工程師都能在這個(gè)充滿挑戰(zhàn)和機(jī)遇的領(lǐng)域中取得成功!
    發(fā)表于 06-12 11:20

    索尼誠(chéng)邀軟件工程師參與PS免費(fèi)手游平臺(tái)設(shè)計(jì)

    據(jù)悉,近日,澳大利亞知名媒體TweakTown發(fā)現(xiàn),索尼互動(dòng)娛樂(lè)正在為其旗下的PlayStation Studios Mobile招募一名資深的軟件工程師,負(fù)責(zé)設(shè)計(jì)PlayStation的免費(fèi)手機(jī)游戲平臺(tái)。
    的頭像 發(fā)表于 05-23 17:08 ?789次閱讀

    大廠電子工程師常見(jiàn)面試題#電子工程師 #硬件工程師 #電路知識(shí) #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    個(gè)電源工程師的成長(zhǎng)路徑

    即將走馬上任電源工程師這個(gè)崗位,請(qǐng)問(wèn)各位大佬,這個(gè)崗位的職業(yè)路徑般是怎樣的?
    發(fā)表于 04-08 14:19

    Domo與Tableau和Power BI?前Tableau工程師建議最大化BI工具潛能

    作為一名解決方案工程師,TannerBrockbank曾在兩家流行商業(yè)智能(BI)公司工作:Tableau和Domo。在他的職業(yè)生涯中,使用過(guò)許多BI工具。他發(fā)現(xiàn)部分組織選擇使用兩種BI解決方案
    的頭像 發(fā)表于 03-28 08:04 ?506次閱讀
    Domo與Tableau和Power BI?前Tableau<b class='flag-5'>工程師</b>建議最大化BI工具潛能

    SOLIDWORKS助學(xué)生鑄就夢(mèng)想中的職業(yè)生涯

    科技日新月異的今天,SOLIDWORKS作為款三維CAD設(shè)計(jì)軟件,不僅成為了工程師和設(shè)計(jì)的得力助手,更是學(xué)生實(shí)現(xiàn)職業(yè)夢(mèng)想的強(qiáng)大工具。S
    的頭像 發(fā)表于 03-12 14:43 ?312次閱讀
    SOLIDWORKS助學(xué)生鑄就夢(mèng)想中的<b class='flag-5'>職業(yè)生涯</b>

    單片機(jī)如何通過(guò)代碼控制硬件:一名工程師的分享

    今天跟大家聊聊單片機(jī)是怎樣通過(guò)代碼來(lái)操控硬件的。作為一名單片機(jī)工程師,我們平時(shí)的工作就像是給單片機(jī)編寫“指令集”,讓它按照我們的意圖去驅(qū)動(dòng)各種硬件設(shè)備。
    的頭像 發(fā)表于 03-06 14:46 ?1645次閱讀
    單片機(jī)如何通過(guò)代碼控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程師</b>的分享