Objective-C code smells
  • Written by Zēng Liàng
  • November 22nd, 2014
  • About codestyle

Objective-C code smells

原文 If it stinks, change it.(代码存在歧义,则改变它)

Code smells. I’ve mentioned “code smells” at work, only to discover that my coworkers didn’t know what I meant. It’s basically a diaper-changing metaphor: “If it stinks, change it.”


A code smell isn’t “awful code that makes you hold your nose.” Rather, it’s a simple indication(迹象) that something may need to be changed. Quite often, you won’t notice a code smell until someone else describes it. This is what Kent Beck and Martin Fowler did in the Refactoring book: created a list of smells, and what to do about them.


Code Smells Specific to Objective-C

The book’s catalog of code smells relate to good practices of object-oriented programming. I’m going to start a series that is specific to Objective-C code smells. Here’s a tentative list to give you a preview:

  1. 9 Code Smells of Preprocessor Use
  2. #imports Gone Wild! How to Tame File Dependencies
  3. 4 Ways Precompiled Headers Cripple Your Code
  4. Dot Notation in Objective-C: 100% Pure Evil …or maybe not! I switched, see In Which I Embrace Dot Notation…
  5. Don’t Message self in Objective-C init (and dealloc)

I think this’ll be interesting, and sometimes even controversial. (Dot notation, anyone?) So be sure to come back — subscribe to keep up with the latest postings!

Other resources:

  • The Refactoring Book: A Game-Changer
  • Martin Fowler explains “code smell”
  • sSummary of code smells from the book, with the refactorings to fix them
Hey There!
What is This?