前言
機(jī)緣巧合翻到這幾篇10幾年前的文章,仍覺很有指導(dǎo)作用, 特別是宏和PCH相關(guān)的內(nèi)容,因?yàn)橹白鯫C項(xiàng)目和Swift的混編,在將歷史OC模塊Module化時(shí),這塊是報(bào)錯(cuò)最多和最難處理的部分。翻譯于此僅作記錄。
正文
代碼氣味。我曾在工作中提到過 "代碼氣味",結(jié)果發(fā)現(xiàn)同事們并不知道我的意思。這基本上是一個(gè)換尿布的比喻:"如果很臭,那就就換掉"。
代碼氣味并不是 "讓人掩鼻而過的可怕代碼"。相反,它只是一種簡單的跡象,表明有些東西可能需要更改。很多時(shí)候,在別人描述代碼氣味之前,你不會(huì)注意到它。這就是 Kent Beck 和 Martin Fowler 在《重構(gòu):改善既有代碼的設(shè)計(jì)》一書中所做的工作:創(chuàng)建一個(gè)代碼缺陷列表,以及如何處理這些缺陷。
Objective-C 代碼特有的氣味
本合集的代碼缺陷目錄與面向?qū)ο缶幊痰牧己脤?shí)踐有關(guān)。我將開始一個(gè)專門針對 Objective-C 代碼氣味的系列。以下是一份暫定清單,您可以先睹為快:
1、Objective-C 中 9 種避免使用 Xcode 預(yù)處理器宏的方法
2、狂野的 #imports: 如何馴服文件依賴關(guān)系
3、4 種預(yù)編譯頭文件(PCH)削弱代碼的方式
4、Objective-C 中的點(diǎn)符號(hào)一定是惡魔嗎?
......也許不是!我轉(zhuǎn)變了,請參閱《我接受的點(diǎn)符號(hào)》......
5、Objective-C init:為什么避免向 self 發(fā)消息會(huì)有幫助?
我認(rèn)為這將會(huì)很有趣,有時(shí)甚至?xí)馉幾h(有人會(huì)說 "點(diǎn)符號(hào)(Dot Notation) "嗎?)
其他資源
- 重構(gòu):改變我一切的一本書
- 馬丁·福勒解釋 “代碼氣味(code smell)”
- 重構(gòu)書中的代碼氣味摘要, 使用重構(gòu)來修復(fù)他們
譯自 Jon Reid 的 Code Smells in Objective-C
侵刪