亚洲成a人片在线不卡一二三区,天天看在线视频国产,亚州Av片在线劲爆看,精品国产sm全部网站

        2022年it個人工作總結(jié)范文

        發(fā)布時間:2022-04-04 11:16:28

        • 文檔來源:用戶上傳
        • 文檔格式:WORD文檔
        • 文檔分類:規(guī)章制度
        • 點擊下載本文

        千文網(wǎng)小編為你整理了多篇相關(guān)的《2022年it個人工作總結(jié)范文》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在千文網(wǎng)還可以找到更多《2022年it個人工作總結(jié)范文》。

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

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

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

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

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

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

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

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

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

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

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

        網(wǎng)址:http://puma08.com/qywd/gzzd/387765.html

        聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至89702570@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。