Code Smells in Objective-C

September 18, 2011 — 8 Comments

Code Smells

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.”

“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!

And in the meantime, check out these related resources:

Photo by *bethography* (license), adapted by Jon Reid

Jon Reid

Posts Twitter Facebook Google+

I'm passionate about not just improving our code, but improving the way we code.

8 responses to Code Smells in Objective-C

  1. Hi Jon,
    I think you’ve picked a great topic here. I know that there will be things that I will be able to learn from. I look forward to your next post.
    Take care,

  2. Jon,
    I’m looking forward to your series. You have me curious about #4 :-)

  3. Just after reading that “Preprocessor use” may cause code smell I became instantly intrigued. Would you mind giving me a hint of what that might be?

  4. Hi Jon,
    Great topic!!.
    Looking forward to your next post. – Mayur

Leave a Reply


Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> 

Have you Subscribed yet? Don't miss a post!