程式設計師不需要為老的專案感到太多的內疚
我發現,當程式設計師開發了一個專案,然後要把它移交給其他程式設計師時,他們會對開發這個專案時做出的一些決策感到內疚。我問他們當時為什麼選擇這樣做, 他們會羞愧的說,“唉,我知道這不是最好的實現方法,如果現在再去做,肯定不會採用那樣的方式。”有些人可能會辯護,或強調一下外部因素,比如工期壓力。 但我的觀點是,程式設計師不需要為老的專案感到太多的內疚。
經驗
我承認,我曾經有一次重新發球的經驗。那是一個作為內部工具使用的Ruby on Rails專案。我之前對這種技術架構瞭解不多。基本上就是把東西按照需求拼湊起來,它執行很正常。沒有多少測試,設計上必然是沒有體現出最好的設計原則。但它能用。
接著,我做了一個6個月長的Rails專案,過程完全是TDD的。在此之後,出現了一個機會,需要調整那個內部工具,增加一些功能。
我很高興有這次機會。我感覺對這種技術有了更好的瞭解,能夠看出程式碼中存在的問題,知道如何用更好的Rails或Ruby技術來解決這些問題。這讓 人很興奮。不止一次,我驚奇於那些老的程式碼竟然能正常的執行。我想,絕大多數程式設計師都很少能有這樣的機會,除非他們是在維護一個老專案,我想這是一次很有 價值的經歷,讓我在事後看清了我自己寫的程式。
綜合分析
但後來,我開始意識到,程式設計師不必要為自己開發出的產品感到內疚。新的技術和實踐方法不斷的出現,等待著你去學習,每一次你都要權衡取捨,總會有事 後諸葛亮的情況出現。我應該現在重構這個類,還是放到以後再說?我是需要把設計的容易擴充套件,或者根本不需要這樣?做這個專案時我們是否應該首先儘量的減少 技術上的風險?
在針對某一問題我遍歷群書後,對解決這類問題我學會了新的技術,新的方法。但這並不能妨礙我們當前的工作。我們不可能百分百的知道我們所需要的知識,我們能想到的方案只是能滿足解決當前問題需求。
我相信,程式設計師都已經盡了他們最大的努力。但這並不能免除程式設計師犯錯誤,並從錯誤中學到經驗,也不能保證他們能夠進行先知先覺的學習。
我想說的是,程式設計師如果沒有足夠的知識以最佳的方式來解決所有的問題或在困境中做出最正確的抉擇,他不必為此不安。在之後的歲月裡認識到了自己的錯誤,這是自己進步的標識。每一次都把事情做的正確無誤,這暗示一種技術的停滯,或完美主義。哪一種更有可能?
你是否也有過這樣的一種願望,希望能夠重新來一次,改變某個軟體專案中的某些東西?有過看著自己寫過的程式碼感到噁心的時候?把事情做對,還是把事情做完?平衡點在哪裡?在評論裡留下你的想法吧!
相關文章
- 內疚的程式設計師程式設計師
- 為什麼 .NET 程式設計師不需要加班 而Java 程式設計師老加班程式設計師Java
- 大學老師告訴我:20年內程式設計師會被取代,未來不需要程式設計師...程式設計師
- 不要因為沒有為開源事業做貢獻而感到內疚
- 大學教程式設計的老師為何不去當高收入的程式設計師?程式設計師
- 一個欠缺太多的程式設計師自省程式設計師
- 程式設計師其實根本不需要專案預估!程式設計師
- 老程式設計師:當程式設計成為你的第二職業程式設計師
- 老程式設計師的下場程式設計師
- 一個“老”程式設計師的思考程式設計師
- 老程式設計師的思想變遷程式設計師
- 洩了氣的老程式設計師程式設計師
- 一些程式設計師可以瞭解的專案/內容程式設計師
- 老程式設計師:當程式設計成為第二職業程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 程式設計師、設計師、專案經理眼中的對方程式設計師
- 最讓程式設計師感到崩潰的10種程式語言程式設計師
- 一個BAT老程式設計師的忠告!BAT程式設計師
- 老程式設計師眼中的簡明AI程式設計師AI
- 一個老程式設計師的建議程式設計師
- 無人機在火星升空!程式設計師應該感到自豪的日子無人機程式設計師
- 如何成為真正專業的程式設計師程式設計師
- 元宵節專為程式設計師設計的燈謎程式設計師
- 為什麼專案經理拿的錢比程式設計師多?程式設計師
- 風變,我的程式設計啟蒙老師程式設計
- 老程式設計師的10條中肯建議程式設計師
- 聘用老程式設計師的4大原因程式設計師
- 為省房租而住在車內的谷歌程式設計師谷歌程式設計師
- 程式設計師的內心需求程式設計師
- 成為專業程式設計師的6個技巧程式設計師
- 成為專業程式設計師的 6 個技巧程式設計師
- 老程式設計師被新程式設計師拍在沙灘上?程式設計師
- 為什麼程式設計師老愛買雲伺服器?程式設計師伺服器
- 老程式設計師都去哪了?程式設計師
- 程式設計師的專案週期(表情包版)程式設計師
- 搞笑圖組:程式設計師的專案週期程式設計師
- 一個新手程式設計師的專案經驗程式設計師
- programmer-browser:專為程式設計師設計的瀏覽器程式設計師瀏覽器