不用文檔,或很少文檔,就能讓業務方上手
誰特么會去看文檔啊,業務方他們已經被產品經理逼得很忙了。
所以你要盡可能讓你的API名字可讀性強,對于iOS來說,objc這門語言的特性把這個做到了極致,函數名長就長一點,不要緊。
// 好的函數名:
- (NSDictionary *)exifDataOfImage:(UIImage *)image atIndexPath:(NSIndexPath *)indexPath;
// 壞的函數名:
- (id)exifData:(UIImage *)image position:(id)indexPath callback:(id<ErrorDelegate>)delegate;
為什么壞?
- 不要直接返回id或者傳入id,實在不行,用id<protocol>也比id好。如果連這個都做不到,你要好好考慮你的架構是不是有問題。
- 要告知業務方要傳的東西是什么,比如要傳Image,那就寫上ofImage。如果要傳位置,那就要寫上IndexPath,而不是用position這么籠統的東西
- 沒有任何理由要把delegate作為參數傳進去,一定不會有任何情況不得不這么做的。而且delegate這個參數根本不是這個函數要解決的問題的充要條件,如果你發現你不得不這么做,那一定是架構有問題!