我曾經作爲一名程式設計師的錯誤

作為iOS程序員即使有幾年的經驗,我對我實際上並不知道的事情感到驚訝,並且過了一段時間,我意識到我所做的很多小事都是完全錯誤的。

我要寫的並不是神聖的真理,我可能不會涵蓋所有內容,但我希望通過分享我有趣的自己的經驗,避免我的錯誤。

編寫一個大規模的視圖控制器

你有沒有打開一個xxxViewController.m文件,並意識到它的長度約為1-2k行,準時地調用一個叫做xxxService的單例,它處理所有的網絡或數據庫功能?相信我與否,但把#pragma標記,甚至按邏輯順序(查看週期,tableview委託/數據源,用戶界面定製,...)組織你的代碼,它仍然是你自己的噩夢,更多的窮人開發人員誰事後維護你的代碼。

我最近已經交出了其他有多年經驗的開發人員製作的項目,並且不會阻止他們擁有處理應用程序的所有調用的MainViewController。我有一個包含20k行代碼的文件(是的,這是真的)。

補丁的東西,而不是修復

當我在某個問題上停留太久時,我會通過嘗試排列結果以匹配預期結果並修復內部原因來修復錯誤。在一個沒有同行代碼審查的世界裡,或者如果你是一個孤獨機構的獨立開發者,這是可以原諒的。我年輕的自己總是會說“它有效”,但我無法表達或發現真正的問題。

當你在一個真正有壓力的工作環境下工作時,情況更是如此,並且錯誤正在以優先級高於質量的速度積累。無論你做什麼,如果承諾質量不好,你會在不久的將來支付後果。

忘記清理你的代碼

讓我們誠實地說,當有些東西不能正常工作時,我們會用很多日誌來汙染代碼庫,這些日誌會在運行代碼後出現在控制檯中。是的,我在談論那些NSLog()或debugLog(),或者諸如// TODO之類的評論:它不在這裡工作(#warning也是)。我打開了幾年前我寫的一箇舊項目,一個英文測驗應用程序,並相信我從來沒有見過這麼多無用的東西需要清理。

更乾淨的代碼也將正常字符串(警報消息文本,標題,標籤內容)或數字(年齡,特定數量,大小)移動到適當的常量值。我曾經過度使用宏#define,但現在我發現使用變量更優雅,我個人比較喜歡看到類似於:

let messageToDisplay = Constants.Alert.AddedPlayer.Message.Success

let messageToDisplay = ALERT_ADDEDPLAYER_MESSAGE_SUCCESS

缺乏溝通

如果所有不同的團體,開發者,設計師,項目經理和客戶都相互理解,一個好的項目將會達到他的目的。是的,當客戶決定改變主意時,他的代碼不得不被重寫,這總是令人討厭。更年輕的我會因為設計師這麼說而更換那些兩個高10個像素的按鈕,或者因為我沒有正確完成重寫整個模塊而感到憤怒。我會喜怒無常,不要跟人說話,如果壓力太大,就會吠叫。

現在,我會花更多時間參加會議,確保每個人都知道我的變化意味著什麼,向我的項目經理作出估計,並警告是否會出現最可能發生的問題,並長期與我的設計師交談。溝通是關鍵,而開發者自己編寫代碼的時代已經結束了。

成為一個更好的開發者......每天

我認為網上缺乏關於開發者日常生活的文章。這真的很個人化,很顯然我可能錯過了很多東西,但是我幾篇文章試圖記住我曾經做錯的事情,相信我在以後還會寫更多關於我現在做錯了什麼的東西!

我希望這篇文章能夠幫助一些開發者,如果你看到自己在做我上面寫的錯誤,那麼就要小心了

我曾經作為一名程序員的錯誤

iOS交流群:638302184。我們不只是交流技術,我們也交流生活,吃喝玩樂。


分享到:


相關文章: