最近因?yàn)榧尤胍粋€(gè)新的團(tuán)隊(duì)闷串,才開始認(rèn)真的關(guān)注關(guān)于編寫高質(zhì)量代碼的話題瓮钥,學(xué)習(xí)總結(jié)的同時(shí),記錄下這段讓自己再一次認(rèn)真學(xué)習(xí)的過(guò)程。
想成為架構(gòu)師碉熄、項(xiàng)目經(jīng)理桨武、分析師、設(shè)計(jì)師等這些角色具被,首先你應(yīng)該是程序員玻募。很難想象一個(gè)沒有編寫過(guò)“Hello World”的架構(gòu)師能夠構(gòu)思出什么樣牛(qi)逼(pa)的,所以代碼是前進(jìn)的基石一姿,So,高質(zhì)量的代碼更是不可或缺的跃惫。
“代碼首先是給人看的叮叹,之后才是給機(jī)器運(yùn)行的”這句話相信都聽過(guò)或者說(shuō)過(guò),個(gè)人理解編寫高質(zhì)量代碼的關(guān)鍵思想是代碼應(yīng)當(dāng)易于理解爆存,編寫的代碼應(yīng)該讓他人理解代碼所需的時(shí)間最小化蛉顽。代碼易于理解,無(wú)論是對(duì)于代碼的創(chuàng)作者或者日后接手的維護(hù)者來(lái)說(shuō)先较,都是一個(gè)福音携冤,因?yàn)樾枨笫菚?huì)變的,代碼需要變更闲勺。
大家都編寫過(guò)簡(jiǎn)短的代碼曾棕,但總是越簡(jiǎn)短越好嗎?看看下面這段代碼:
showName=((null != findUserById("123") && findUserById("123").isAvailable==true) ? findUserById("123").getShowName() : "游客") ;
再看看下面這段代碼:
showName="游客";
User user=findUserById("123");
if(null != user && user.isAvailable==true){showName=user.getShowName();}
對(duì)比上面的這兩段代碼菜循,雖然第二段比第一段多了兩行翘地,但是看上去比第一段更容易理解,而且在性能上比第一段更好癌幕。因此衙耕,縮短程序代碼是一個(gè)好目標(biāo),但是理解代碼的最小時(shí)間是一個(gè)更好的目標(biāo)勺远。
寫到這可能會(huì)有一個(gè)問題橙喘,如果遇到其它目標(biāo)和易讀性相沖突怎么辦?個(gè)人覺得在向其它目標(biāo)努力的時(shí)候胶逢,同時(shí)也是可以保證易讀性的厅瞎,兩者可以同時(shí)兼行。后續(xù)會(huì)記錄在編寫代碼時(shí)的建議及注意事項(xiàng)宪塔。