簡(jiǎn)評(píng): 好代碼是什么樣的?相信不同的人會(huì)有不同的看法,正如「一千個(gè)讀者,就有一千個(gè)哈姆雷特」,關(guān)鍵在于你有沒(méi)有自己的標(biāo)準(zhǔn)。
這篇文章是我個(gè)人很喜歡的一家公司 - Atomic Spin 的 blog。其中的一位主管分享的自己區(qū)別是否是好代碼的四個(gè)簡(jiǎn)單標(biāo)準(zhǔn)。
好代碼是易懂的
當(dāng)我們?cè)陂喿x代碼時(shí),我們總希望能盡可能快的理解其中的邏輯。這意味著代碼應(yīng)當(dāng)有著良好的格式,清晰而準(zhǔn)確的命名,根據(jù)邏輯被合理的組織成不同的代碼塊。
好代碼是被合理組織的
代碼里是不是有些很巨大的類?有沒(méi)有遵守依賴倒轉(zhuǎn)原則?別人在瀏覽目錄后是不是能快速找到想找的模塊?是不是能方便的抽取出某個(gè)模塊用在別的項(xiàng)目里?
好代碼是可測(cè)試的
這里單獨(dú)有一篇文章講什么是可測(cè)試的代碼。簡(jiǎn)單來(lái)說(shuō)就是盡可能的解耦,最小化對(duì)其他模塊的影響,函數(shù)功能盡可能單一。
好代碼是簡(jiǎn)單的
正如 Rich Hickey 所分享的 Simple Made Easy,好的代碼應(yīng)當(dāng)是簡(jiǎn)單的。類和函數(shù)只有一個(gè)職責(zé),并包含邏輯小而緊密的方法。模塊只有需要的依賴,也只對(duì)其他模塊暴露必要的方法,保證最小可見(jiàn)性。
可能你會(huì)覺(jué)得上面作者的這些都是廢話,但關(guān)鍵在于你是否也有自己的這樣一套標(biāo)準(zhǔn),太多的人只是實(shí)現(xiàn)功能,卻從來(lái)沒(méi)有自己去仔細(xì)思考過(guò)什么樣的代碼是好代碼。其實(shí)每個(gè)人在心里都應(yīng)該有自己的一套標(biāo)準(zhǔn),是投入了自己深刻思考的。
或許,你在看完上面作者舉出的這幾點(diǎn)后,會(huì)覺(jué)得沒(méi)什么,自己都聽(tīng)說(shuō)過(guò)也都知道。但你是否有像作者一樣的一個(gè)簡(jiǎn)單標(biāo)準(zhǔn),并時(shí)刻銘記在自己心中?在別人問(wèn)你什么是好代碼的時(shí)候,能無(wú)需思考,馬上就說(shuō)出呢?
原文鏈接:What Does Good Code Look Like?
推薦閱讀:Android 開(kāi)發(fā)工具推薦