成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Russ Olsen:我得到的最佳編程建議

開發 前端
收到的最佳編程建議來自于我的職業生涯早期,那時我正在一個令我愛恨交加的系統上工作。那個系統最酷部分是我們正在做計算機輔助設計——想象一下Adobe Illustrator,不過它是為工程師設計的。

Russ Olsen作為《Eloquent Ruby》一書的作者,同時也是一名Clojure開發者。他把一個與古老的CAD[1]程序、辦公室政治、及其進展有關的故事娓娓道來,整個故事可以總結為一句簡單的口頭禪:“千萬別碰其他人的代碼!”

姓名:

Russ Olsen

編程能力及工作經驗:

從穿孔卡片到ClojureScript無所不能。

最顯著的成就:

作者,《Design Patterns in Ruby | Ruby設計模式》,《Eloquent Ruby》

最常用的編程語言

Ruby為首,Clojure緊隨其后。

建議:

我收到的最佳編程建議來自于我的職業生涯早期,那時我正在一個令我愛恨交加的系統上工作。那個系統最酷部分是我們正在做計算機輔助設計——想象一下Adobe Illustrator,不過它是為工程師設計的。那時候,具有交互式圖形的CAD軟件堪稱高科技的頂峰。讓我痛恨的事情是,系統很慢、慢得令人抓狂:你會坐在那里,看著畫面中一條接一條地出現令人痛苦的線條。完成一個簡單的繪圖會花費幾十秒,然而當顯示復雜畫面時,你就有機會去喝杯咖啡慢慢等了。即便我們用早期的計算機標準來衡量,該系統的性能也是極其糟糕的,這一定傳達了某些信號。如果是黑客(hacker)會做些什么?而你又該做些什么?

[[93669]]

我所做的就是仔細查看代碼。盡管圖形部分不是我的職責范圍,但是我花了數個夜晚和周末樂此不疲地鉆研此問題,設法弄清系統如此緩慢的原因。我并沒有花很長時間就找到了這個問題:一旦你啟動該系統,你實際上就開啟了兩個進程。一個進程是正常的CAD系統,而第二個進程則用于完成與繪圖功能有關的全部工作。這兩個程序彼此之間通過某種類似套接字(socket-like)的網絡連接進行通訊。顯然,開發圖形子系統的程序員已經愛上了客戶端/服務器(client/server)風格的程序,并且已經在我們的CAD系統中如法炮制了他自己的程序。問題在于,由于我們是在這種早期硬件上運行該系統,因此將全部繪圖壓縮為一個有限的套接字要耗費我們一個數量級的性能,然而我們對正在付出的成本卻給不出充分的理由。

我用接下來的整個周末將把系統整合到一起,這個版本中所有的內容被打包到單個進程中。系統的變化更是引人注目。現在,簡單圖像差不多瞬間就能繪制出來,然而更為復雜的圖像也只需抿口咖啡的工夫就能完成。星期一早上,我一遍又一遍地演示我的整合版本:首先是給我的老板演示,接著是我老板的老板,然后又是他的老板,直至全體高層領導。

然后就大難臨頭了。許多那些老板的老板的老板非常生我的氣,但是沒有人可以或打算闡明個中緣由。我的一些同事見到我就像見了瘟神一樣,避之唯恐不及。慢慢地我想通了,我已經闖入一些錯綜復雜的跨部門權力斗爭之中。因為我用我自己的笨方法并沒有給圖形處理加速,而是為某個組織派系提供了制勝法寶,同時也讓其他派系感到很不爽。最終,他們勉強地將第二個進程連同套接字(socket)一起移除了,從而我們獲得處理速度更快的圖形。不過興高采烈的人卻寥寥無幾。

就在那時,所有員工的最大老板要我去他的辦公室走一趟,并送給了我一個關鍵的建議。隨著辦公室的門牢牢地關上,他轉過身來,二目圓睜地看著我,然后說道:

“今后,千萬別碰其他人的代碼!(In the future, stay the Hell out of other people’s code.)”

[[93670]]

實際上,這是個很糟糕的建議,從那以后的數年中,我都以自己的方式對它置之不理。不過這些話還是有價值的,因為我曾多次回憶起它們。

每當一些惱人的新員工帶著一個明顯行不通的餿主意來找我時,“千萬別碰其他人的代碼!”這句話就會在我的腦海里回蕩,而且聲音越來越大。

每當其他工程師對我的代碼有見解時,我記得當時心里是這么想的,你應該管好你自己的技術工作,但同時我又力求解除我的自尊心。

在后來的那些年里,隨著我自己也在建立并管理軟件開發團隊,我已經意識到,對于那種古來的項目而言,可能會有整整一打程序員都知道系統到底為何如此緩慢,而且也知道該如何修復它。盡管他們心知肚明,但是他們卻把解決方案爛在肚子里。因為在那種組織里,與讓系統變得更好相比,還有一些更重要的事情(派系之爭、辦公室政治等等)要關注。“今后,千萬別碰其他人的代碼,”,這句話假設將會有未來。但是,擁有未來的最好方法是讓以下內容成為團隊的一部分:看重系統進步高于辦公室政治(progress over politics)、奇思妙想高于固步自封(ideas over territory)、自告奮勇高于彬彬有禮(initiative over decorum)。

@高翌翔 譯注:[1] CAD,Computer-aided design,即計算機輔助設計,指使用計算機系統來協助設計的創建、修改、分析、或優化。詳細內容參見維基百科

原文鏈接:http://blog.jobbole.com/26279/#4_2,3_0_3730b5f816de44_298

【編輯推薦】

  1. 最有價值的編程忠告
  2. 這也是C#代碼嗎?代碼閱讀性進階
  3. C#異步編程及其同步機制
  4. C#實現平衡多路查找樹(B樹)
  5. Bill Wagner:我得到的最佳編程建議
責任編輯:張偉 來源: 伯樂在線
相關推薦

2015-06-02 11:04:02

編程最佳編程建議

2012-09-03 11:03:10

程序員編程

2012-08-20 09:53:48

編程編程建議程序員

2011-11-28 09:48:01

編程建議語言

2013-08-12 09:45:06

最佳編程方法編程方法編程

2016-01-29 10:26:47

云端云遷移

2015-09-08 09:25:07

編程經驗教訓

2019-08-23 15:54:55

編程語言程序員電腦

2011-07-19 09:30:58

活動目錄復制

2012-02-28 09:49:45

Linux編程建議

2010-10-14 10:43:43

編程

2021-03-11 09:12:42

編程代碼開發

2014-02-24 13:30:23

編程能力程序員

2021-11-23 17:57:50

編程語言Java python

2013-06-20 09:38:57

2011-11-30 12:38:47

企業防毒防毒方案拯救三

2012-05-30 15:58:39

Java編程代碼

2023-10-23 11:06:23

微軟Arm咨詢服務

2012-09-03 14:34:39

Java編程代碼

2018-02-02 12:12:46

開始習慣代碼經驗
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女久久久久久久 | caoporn国产精品免费公开 | 久久精品二区 | 国产精品久久久久久久久久久久午夜片 | 欧美激情精品久久久久 | 男女羞羞网站 | 国产高清在线精品 | 中文字幕在线播放不卡 | www.久久| 国产九一精品 | 天堂视频免费 | 五月精品视频 | 综合久久久 | 武道仙尊动漫在线观看 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲国产成人精品女人 | 亚洲精品v日韩精品 | 日韩不卡一二区 | 午夜伦理影院 | 欧美日韩一区精品 | 久久久久国产精品人 | 手机av免费在线 | 午夜精品一区二区三区在线观看 | 亚洲一区二区免费视频 | 日韩激情免费 | 免费视频成人国产精品网站 | 亚洲精品国产区 | 五月婷婷在线视频 | aaa天堂 | 欧美综合视频在线 | 成年人黄色免费视频 | 日韩aⅴ片 | 久久成人亚洲 | 玖玖国产 | 成人在线一区二区三区 | 色婷婷综合久久久久中文一区二区 | 国产九九九 | 97热在线 | 影音先锋欧美资源 | 特黄视频| 国产精品美女一区二区 |