摘要:對于程序員來說,更意味著代碼的組織,工作成員之間的協作方式。我常犯的一個錯誤是直接在或分支上直接,而團隊是不允許這樣做的。
先介紹下背景,博主由運營轉行前端,入職一個月,完成了一個相對較大的模塊。由于基礎相對薄弱,犯下了不少錯誤,故想記錄下來警醒自己和分享各位。
前端技術棧是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails。
1.未遵循MVC分離思想MVC說起來非常簡單易懂,即model+view+controll,數據-視圖-控制分離,特定的模塊做特定的事情,便于程序的維護和拆分。我的體驗是我有這個意識,卻常常寫出不合規范的代碼。
出現問題的原因是抽象是不符合人的天性的,天性就是怎么簡單怎么來,不會顧及到整體架構如何。
解決辦法也很簡單,改! 不停的修改你的代碼,改到完美為止!改的過程中不斷告訴自己,我這樣寫是錯的,下次不能這樣寫。堅持一段時間很有效果。
2.缺少必要的注釋大段的if-else缺少注釋,讓維護者無法快速分辨分支邏輯。特定地方存在hack或復雜邏輯的代碼,缺少注釋會讓后來者不明所以。為了你好,也為了后來者好,請務必加上代碼。說不準以后還是由你來維護這段代碼。
3.不變和變化的部分拆分程序員中流傳著一句話,此處不要寫死,將來必改。有經驗的程序員會將一些業務層的邏輯抽象出來,寫成配置文件,好處就是若后續需求有改變,只需改配置文件即可,肯定不會引入bug。
4.忽視測試部分程序員中又流傳著一句話,沒有測試的代碼等于沒寫。雖不敢全部贊同,卻也有幾分道理。從測試用例驅動開發,持續集成,每次編譯自動跑測試用例,能夠保證系統的穩定同時也減輕測試成本。自己改的的部分做好自測,理解需求,做一個有責任心的工程師。
5.直接操作數據你應該通過方法去操作數據,而不是直接操作數據,這樣能夠保證你總能操作數據正確。
例如一個類中定義的屬性發生變化了,代碼中所有涉及到直接操作該屬性的代碼都需要修改。如果通過方法操作該屬性,則僅需修改操作方法,對于外部調用者,類屬性變化被屏蔽了,遵循了解耦的原則,代碼穩定性大大提高。
hard code=>魔法數字,后果是代碼中不明所以的數字到處亂飛,讓人讀來莫名其妙,全然不動其中的意思。如果你不想你的代碼被人破譯,請盡情的使用hard code吧
7.寫重復的代碼DRY,don"t repeat yourself! 這個話題聊起來估計三天三夜也說不完。電腦擅長人不愿意干的、重復的事情,所以電腦解放了人類。那么程序員如何解放自己呢?那就是不寫重復的代碼,其中一個準則就是三次。一件事情重復三次,就可以從中提取出規律。
Example: 1, 2, 3, ....
Example: 1, 2, ....
8.不懂debug和如何解決問題寫代碼從debug開始。每一個初學C語言的人都會遇到各種各樣的問題,譬如缺了分號,if判斷寫成賦值。初學者不了解語言和其中的坑,唯一能解決問題的就是一步一步進入代碼的執行,找到其中不合預期的地方,即為bug所在。找一個稱手的IDE,學習一下debug,80%的問題就會被文檔和debug解決
9.不規范的工作流制定合理的工作流程能夠減少風險事故的可能和提高工作效率。
對于程序員來說,work flow更意味著代碼的組織,工作成員之間的協作方式。
我常犯的一個錯誤是直接在alpha或master分支上直接commit,而團隊是不允許這樣做的。所有的修改必須只能通過 merge 的方式合并到主分支,這樣的好處在于避免bugfix僅在alpha上處理,而忘記merge到master上。這些都可以通過 CI 或者git hook 等一些腳本或工具完成。
良好的編碼習慣不是一日養成的,要從各個細節處不斷修正提高。好的代碼結構清晰,讀來賞心悅目,壞的代碼,混亂糟糕,讓維護者忍不住罵娘。一位初學者要不斷地讀大師的代碼,汲取其中的養分,不斷修改自己的代碼,祝愿各位有朝一日都能寫出優雅的代碼。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81329.html
摘要:對于程序員來說,更意味著代碼的組織,工作成員之間的協作方式。我常犯的一個錯誤是直接在或分支上直接,而團隊是不允許這樣做的。 先介紹下背景,博主由運營轉行前端,入職一個月,完成了一個相對較大的模塊。由于基礎相對薄弱,犯下了不少錯誤,故想記錄下來警醒自己和分享各位。 前端技術棧是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails。 1....
摘要:對于程序員來說,更意味著代碼的組織,工作成員之間的協作方式。我常犯的一個錯誤是直接在或分支上直接,而團隊是不允許這樣做的。 先介紹下背景,博主由運營轉行前端,入職一個月,完成了一個相對較大的模塊。由于基礎相對薄弱,犯下了不少錯誤,故想記錄下來警醒自己和分享各位。 前端技術棧是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails。 1....
摘要:下面列舉了我曾經犯過的最嚴重的個相關的錯誤有些同樣也反映在其他語言數據庫的使用上。用服務器端的驗證每個字符串,不要寄希望與。登錄的時候,必須以一個為依據查找正確的。和是最強有力的競爭者這個兩者都是開源的,而且都沒有被公司收購。 對于大多數web應用來說,數據庫都是一個十分基礎性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中舉足輕重的一份子。對于很多新手們來說...
摘要:原文出自本文總結了程序員常犯的個錯誤。可以看看為什么在中被設計成不可變父類和子類的構造函數以上這段代碼出現編譯錯誤,因為默認的父類構造函數未定義。如果程序員定義構造函數,編譯器將不插入默認的無參數構造函數。 原文出自:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 本文總結了J...
閱讀 3477·2021-09-06 15:13
閱讀 1527·2021-09-02 10:19
閱讀 2473·2019-08-30 15:52
閱讀 918·2019-08-29 15:25
閱讀 1565·2019-08-26 18:36
閱讀 495·2019-08-26 13:23
閱讀 1331·2019-08-26 10:46
閱讀 3498·2019-08-26 10:41