色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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è)生涯

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

好久沒有寫博客,一方面因?yàn)楣ぷ魈Γ硪环矫媸且驗(yàn)闆]有發(fā)現(xiàn)什么好寫的。可是后來發(fā)現(xiàn)沒什么好寫的原因其實(shí)也是因?yàn)楣ぷ魈α恕CΦ貌徽#詻]有很多時(shí)間和精力來研究和欣賞自己喜歡的東西了。

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

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

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

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

然而我也發(fā)現(xiàn),Coverity 缺少我擁有的程序語言理論知識(shí)。絕大部分的 Coverity 工程師沒有系統(tǒng)的學(xué)習(xí)過 lambda calculus 和函數(shù)式編程。在我的 Python 分析器中,其實(shí)包含了 Coverity 還沒有的技術(shù)。Python 的靜態(tài)分析本來就比 C++ 和 Java 之類的難,然而我的實(shí)現(xiàn)卻異常的簡(jiǎn)單。這些微妙的技術(shù),貌似很多人都可以說他“會(huì)做”,但是他們卻很難把它做對(duì)。這就像“CPS 轉(zhuǎn)換”一樣,很多人都說他會(huì)做,可是真正做對(duì)的只有極少數(shù)人(我是其中之一)。這些技術(shù)源自于我對(duì)程序語言本質(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ì)程序語言語義的理解上,真的很難達(dá)到我的程度。

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

所以我就經(jīng)常發(fā)現(xiàn)這樣的麻煩事:我順手改掉了一個(gè)自認(rè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í)候沒有什么兩樣。看到這里的問題了嗎?這些我“根本”不會(huì)犯的錯(cuò)誤,幾分鐘時(shí)間順手就改掉了,但是我卻要花成天的工夫去修改和創(chuàng)建測(cè)試,防止它“再次”發(fā)生。我不得不說,在這些測(cè)試上所花費(fèi)的工夫,占用了比我修改代碼多好幾倍,甚至幾十倍的工夫!

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

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

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

我覺得做 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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1763

    瀏覽量

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

    關(guān)注

    59

    文章

    1570

    瀏覽量

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

    關(guān)注

    30

    文章

    4787

    瀏覽量

    68589
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    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 ?269次閱讀
    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

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

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

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開發(fā)領(lǐng)域中的種專業(yè)工程師
    發(fā)表于 05-16 11:00

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

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

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

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

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

    作為一名解決方案工程師,TannerBrockbank曾在兩家流行商業(yè)智能(BI)公司工作:Tableau和Domo。在他的職業(yè)生涯中,使用過許多BI工具。他發(fā)現(xiàn)部分組織選擇使用兩種BI解決方案
    的頭像 發(fā)表于 03-28 08:04 ?431次閱讀
    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 ?259次閱讀
    SOLIDWORKS助學(xué)生鑄就夢(mèng)想中的<b class='flag-5'>職業(yè)生涯</b>

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

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

    如何搞崩個(gè)硬件工程師心態(tài)?試試對(duì)ta說這幾句

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2024年02月20日 18:05:49

    優(yōu)秀電源工程師需要哪些必備技能?

    隨著電源市場(chǎng)的不斷擴(kuò)張,開關(guān)電源行業(yè)飛速發(fā)展,企業(yè)對(duì)電源工程師的需求日益增加,對(duì)電源工程師的技能要求也日漸提高,相信沒有位電源工程師會(huì)錯(cuò)過讓自己變得更優(yōu)秀的機(jī)會(huì)。作為
    發(fā)表于 01-29 11:29
    主站蜘蛛池模板: 久久爽狠狠添AV激情五月| 熟女人妻AV五十路六十路| 亚洲精品久久久久一区二区三| G0GO人体大尺香蕉| 久久久精品久久| 小莹的性荡生活40章| WWW国产精品内射熟女| 久久亚洲免费视频| 亚洲色偷偷偷网站色偷一区人人藻| 大香网伊人久久综合观看| 美女夫妻内射潮视频| 夜夜艹日日干| 国产亚洲精品久久久无码狼牙套| 日韩大胆视频| caoporn 在线视频| 邻家美姨在线观看全集免费| 亚洲视频在线观看不卡| 国产三级精品三级男人的天堂| 骚浪插深些好烫喷了| japanesematur乱儿| 免费观看成人毛片| 中文字幕99香蕉在线| 久久99精品久久久久久园产越南| 亚洲a视频在线观看| 国产精品看高国产精品不卡| 色婷婷欧美在线播放内射| zooskoo1videos人与狗| 免费毛片网站在线观看| 做暖免费观看日本| 老年日本老年daddy| 在线观看中文字幕国产| 精品国产高清自在线看| 亚洲日本在线不卡二区| 国产在线精品亚洲第一区| 亚洲国产无线码在线观看| 国产亚洲精品线观看不卡| 午夜精品久久久久久久爽牛战| 国产精品99久久久精品无码| 色爰情人网站| 国产黄片毛片| 新影音先锋男人色资源网|