內疚的程序員

fmms 12年前發布 | 9K 次閱讀 程序員

英文原文:Guilty Developer Syndrome 

我發現,當程序員開發了一個項目,然后要把它移交給其他程序員時,他們會對開發這個項目時做出的一些決策感到內疚。我問他們當時為什么選擇這樣做,他們會羞愧的說,“唉,我知道這不是最好的實現方法,如果現在再去做,肯定不會采用那樣的方式。”有些人可能會辯護,或強調一下外部因素,比如工期壓力。但我的觀點是,程序員不需要為老的項目感到太多的內疚。

經驗

我承認,我曾經有一次重新發球的經驗。那是一個作為內部工具使用的 Ruby on Rails 項目。我之前對這種技術架構了解不多。基本上就是把東西按照需求拼湊起來,它運行很正常。沒有多少測試,設計上必然是沒有體現出最好的設計原則。但它能用。

接著,我做了一個 6 個月長的 Rails 項目,過程完全是 TDD 的。在此之后,出現了一個機會,需要調整那個內部工具,增加一些功能。

我很高興有這次機會。我感覺對這種技術有了更好的了解,能夠看出代碼中存在的問題,知道如何用更好的 Rails 或 Ruby 技術來解決這些問題。這讓人很興奮。不止一次,我驚奇于那些老的代碼竟然能正常的運行。我想,絕大多數程序員都很少能有這樣的機會,除非他們是在維護一個老項目,我想這是一次很有價值的經歷,讓我在事后看清了我自己寫的程序。

綜合分析

但后來,我開始意識到,程序員不必要為自己開發出的產品感到內疚。新的技術和實踐方法不斷的出現,等待著你去學習,每一次你都要權衡取舍,總會有事后諸葛亮的情況出現。我應該現在重構這個類,還是放到以后再說?我是需要把設計的容易擴展,或者根本不需要這樣?做這個項目時我們是否應該首先盡量的減少技術上的風險?

在針對某一問題我遍歷群書后,對解決這類問題我學會了新的技術,新的方法。但這并不能妨礙我們當前的工作。我們不可能百分百的知道我們所需要的知識,我們能想到的方案只是能滿足解決當前問題需求。

我相信,程序員都已經盡了他們最大的努力。但這并不能免除程序員犯錯誤,并從錯誤中學到經驗,也不能保證他們能夠進行先知先覺的學習。

我想說的是,程序員如果沒有足夠的知識以最佳的方式來解決所有的問題或在困境中做出最正確的抉擇,他不必為此不安。在之后的歲月里認識到了自己的錯誤,這是自己進步的標識。每一次都把事情做的正確無誤,這暗示一種技術的停滯,或完美主義。哪一種更有可能?

你是否也有過這樣的一種愿望,希望能夠重新來一次,改變某個軟件項目中的某些東西?有過看著自己寫過的代碼感到惡心的時候?把事情做對,還是把事情做完?平衡點在哪里?在評論里留下你的想法吧!來自: 外刊IT評論

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!