成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

新手程序員常犯的十個(gè)錯(cuò)誤

blankyao / 2600人閱讀

摘要:對(duì)于程序員來(lái)說(shuō),更意味著代碼的組織,工作成員之間的協(xié)作方式。我常犯的一個(gè)錯(cuò)誤是直接在或分支上直接,而團(tuán)隊(duì)是不允許這樣做的。

先介紹下背景,博主由運(yùn)營(yíng)轉(zhuǎn)行前端,入職一個(gè)月,完成了一個(gè)相對(duì)較大的模塊。由于基礎(chǔ)相對(duì)薄弱,犯下了不少錯(cuò)誤,故想記錄下來(lái)警醒自己和分享各位。

前端技術(shù)棧是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails

1.未遵循MVC分離思想

MVC說(shuō)起來(lái)非常簡(jiǎn)單易懂,即model+view+controll,數(shù)據(jù)-視圖-控制分離,特定的模塊做特定的事情,便于程序的維護(hù)和拆分。我的體驗(yàn)是我有這個(gè)意識(shí),卻常常寫(xiě)出不合規(guī)范的代碼。

出現(xiàn)問(wèn)題的原因是抽象是不符合人的天性的,天性就是怎么簡(jiǎn)單怎么來(lái),不會(huì)顧及到整體架構(gòu)如何。

解決辦法也很簡(jiǎn)單,改! 不停的修改你的代碼,改到完美為止!改的過(guò)程中不斷告訴自己,我這樣寫(xiě)是錯(cuò)的,下次不能這樣寫(xiě)。堅(jiān)持一段時(shí)間很有效果。

2.缺少必要的注釋

大段的if-else缺少注釋?zhuān)尵S護(hù)者無(wú)法快速分辨分支邏輯。特定地方存在hack或復(fù)雜邏輯的代碼,缺少注釋會(huì)讓后來(lái)者不明所以。為了你好,也為了后來(lái)者好,請(qǐng)務(wù)必加上代碼。說(shuō)不準(zhǔn)以后還是由你來(lái)維護(hù)這段代碼。

3.不變和變化的部分拆分

程序員中流傳著一句話,此處不要寫(xiě)死,將來(lái)必改。有經(jīng)驗(yàn)的程序員會(huì)將一些業(yè)務(wù)層的邏輯抽象出來(lái),寫(xiě)成配置文件,好處就是若后續(xù)需求有改變,只需改配置文件即可,肯定不會(huì)引入bug。

4.忽視測(cè)試部分

程序員中又流傳著一句話,沒(méi)有測(cè)試的代碼等于沒(méi)寫(xiě)。雖不敢全部贊同,卻也有幾分道理。從測(cè)試用例驅(qū)動(dòng)開(kāi)發(fā),持續(xù)集成,每次編譯自動(dòng)跑測(cè)試用例,能夠保證系統(tǒng)的穩(wěn)定同時(shí)也減輕測(cè)試成本。自己改的的部分做好自測(cè),理解需求,做一個(gè)有責(zé)任心的工程師。

5.直接操作數(shù)據(jù)

你應(yīng)該通過(guò)方法去操作數(shù)據(jù),而不是直接操作數(shù)據(jù),這樣能夠保證你總能操作數(shù)據(jù)正確。
例如一個(gè)類(lèi)中定義的屬性發(fā)生變化了,代碼中所有涉及到直接操作該屬性的代碼都需要修改。如果通過(guò)方法操作該屬性,則僅需修改操作方法,對(duì)于外部調(diào)用者,類(lèi)屬性變化被屏蔽了,遵循了解耦的原則,代碼穩(wěn)定性大大提高。

6.代碼中存在hard code

hard code=>魔法數(shù)字,后果是代碼中不明所以的數(shù)字到處亂飛,讓人讀來(lái)莫名其妙,全然不動(dòng)其中的意思。如果你不想你的代碼被人破譯,請(qǐng)盡情的使用hard code

7.寫(xiě)重復(fù)的代碼

DRY,don"t repeat yourself! 這個(gè)話題聊起來(lái)估計(jì)三天三夜也說(shuō)不完。電腦擅長(zhǎng)人不愿意干的、重復(fù)的事情,所以電腦解放了人類(lèi)。那么程序員如何解放自己呢?那就是不寫(xiě)重復(fù)的代碼,其中一個(gè)準(zhǔn)則就是三次。一件事情重復(fù)三次,就可以從中提取出規(guī)律。

Example: 1, 2, 3, ....

Example: 1, 2, ....

8.不懂debug和如何解決問(wèn)題

寫(xiě)代碼從debug開(kāi)始。每一個(gè)初學(xué)C語(yǔ)言的人都會(huì)遇到各種各樣的問(wèn)題,譬如缺了分號(hào),if判斷寫(xiě)成賦值。初學(xué)者不了解語(yǔ)言和其中的坑,唯一能解決問(wèn)題的就是一步一步進(jìn)入代碼的執(zhí)行,找到其中不合預(yù)期的地方,即為bug所在。找一個(gè)稱(chēng)手的IDE,學(xué)習(xí)一下debug80%的問(wèn)題就會(huì)被文檔和debug解決

9.不規(guī)范的工作流

制定合理的工作流程能夠減少風(fēng)險(xiǎn)事故的可能和提高工作效率。
對(duì)于程序員來(lái)說(shuō),work flow更意味著代碼的組織,工作成員之間的協(xié)作方式。
我常犯的一個(gè)錯(cuò)誤是直接在alphamaster分支上直接commit,而團(tuán)隊(duì)是不允許這樣做的。所有的修改必須只能通過(guò) merge 的方式合并到主分支,這樣的好處在于避免bugfix僅在alpha上處理,而忘記mergemaster上。這些都可以通過(guò) CI 或者git hook 等一些腳本或工具完成。

良好的編碼習(xí)慣不是一日養(yǎng)成的,要從各個(gè)細(xì)節(jié)處不斷修正提高。好的代碼結(jié)構(gòu)清晰,讀來(lái)賞心悅目,壞的代碼,混亂糟糕,讓維護(hù)者忍不住罵娘。一位初學(xué)者要不斷地讀大師的代碼,汲取其中的養(yǎng)分,不斷修改自己的代碼,祝愿各位有朝一日都能寫(xiě)出優(yōu)雅的代碼。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81329.html

相關(guān)文章

  • 新手序員常犯十個(gè)錯(cuò)誤

    摘要:對(duì)于程序員來(lái)說(shuō),更意味著代碼的組織,工作成員之間的協(xié)作方式。我常犯的一個(gè)錯(cuò)誤是直接在或分支上直接,而團(tuán)隊(duì)是不允許這樣做的。 先介紹下背景,博主由運(yùn)營(yíng)轉(zhuǎn)行前端,入職一個(gè)月,完成了一個(gè)相對(duì)較大的模塊。由于基礎(chǔ)相對(duì)薄弱,犯下了不少錯(cuò)誤,故想記錄下來(lái)警醒自己和分享各位。 前端技術(shù)棧是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails。 1....

    Andrman 評(píng)論0 收藏0
  • 新手序員常犯十個(gè)錯(cuò)誤

    摘要:對(duì)于程序員來(lái)說(shuō),更意味著代碼的組織,工作成員之間的協(xié)作方式。我常犯的一個(gè)錯(cuò)誤是直接在或分支上直接,而團(tuán)隊(duì)是不允許這樣做的。 先介紹下背景,博主由運(yùn)營(yíng)轉(zhuǎn)行前端,入職一個(gè)月,完成了一個(gè)相對(duì)較大的模塊。由于基礎(chǔ)相對(duì)薄弱,犯下了不少錯(cuò)誤,故想記錄下來(lái)警醒自己和分享各位。 前端技術(shù)棧是 ES6 + backbone + react + antdUI,后端使用的 Ruby on Rails。 1....

    Kerr1Gan 評(píng)論0 收藏0
  • PHP序員犯的11個(gè)MySQL錯(cuò)誤

    摘要:下面列舉了我曾經(jīng)犯過(guò)的最嚴(yán)重的個(gè)相關(guān)的錯(cuò)誤有些同樣也反映在其他語(yǔ)言數(shù)據(jù)庫(kù)的使用上。用服務(wù)器端的驗(yàn)證每個(gè)字符串,不要寄希望與。登錄的時(shí)候,必須以一個(gè)為依據(jù)查找正確的。和是最強(qiáng)有力的競(jìng)爭(zhēng)者這個(gè)兩者都是開(kāi)源的,而且都沒(méi)有被公司收購(gòu)。 對(duì)于大多數(shù)web應(yīng)用來(lái)說(shuō),數(shù)據(jù)庫(kù)都是一個(gè)十分基礎(chǔ)性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中舉足輕重的一份子。對(duì)于很多新手們來(lái)說(shuō)...

    RebeccaZhong 評(píng)論0 收藏0
  • Java序員犯的10個(gè)錯(cuò)誤

    摘要:原文出自本文總結(jié)了程序員常犯的個(gè)錯(cuò)誤??梢钥纯礊槭裁丛谥斜辉O(shè)計(jì)成不可變父類(lèi)和子類(lèi)的構(gòu)造函數(shù)以上這段代碼出現(xiàn)編譯錯(cuò)誤,因?yàn)槟J(rèn)的父類(lèi)構(gòu)造函數(shù)未定義。如果程序員定義構(gòu)造函數(shù),編譯器將不插入默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù)。 原文出自:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 本文總結(jié)了J...

    Andrman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<