Prefixed naming is bad, quit following Android’s bad example

Recently I’ve been working on a couple of Android apps and I’ve noticed all Android examples have all their private fields with silly m prefixes. The reason for this is years ago the original Android team made a bad decision when making their code naming conventions for the project, possibly made in 2003 when the project started which is forgivable. Unfortunately I’m seeing these prefixes spill over into open source Android apps and random code examples on Stack Overflow (even when it’s clear the names were not part of copied example code). So now the Android team’s laziness to not overhaul their code style or even to use a different code style for examples is now affecting a lot more than just their own team.

Here’s an example of the insanity from an open source project I bumped into the other day,

    protected FSKConfig mConfig;
    protected FSKEncoder mEncoder;
    protected FSKDecoder mDecoder;

    protected AudioTrack mAudioTrack;
    protected AudioRecord mRecorder;
    protected int mBufferSize = 0;
    protected boolean mScrollLock = true;

    protected ScrollView mScroll;
    protected TextView mTerminal;
    protected EditText mInput;

The reason prefixed names are bad is because in the present we all have color highlighting for different kinds of variables along with the auto complete list usually listing the kind of variable next to the name. We don’t need a third place to tell us if something is a member or local variable and this particular way of telling us also reduces the code readability and has the tendency of messing with auto complete ordering.

IntelliJ's wonderful autocomplete showing us whether something is a local or member variable
IntelliJ’s wonderful autocomplete showing us whether something is a local or member variable

Slightly canned example of the havoc prefixing can wreck on autocomplete
Slightly canned example of the havoc prefixing can wreck on autocomplete in Sublime 3

If Android used GOTOs (for non-legitimate reasons) then would you too?

Only cool people share. You do wanna be cool right?Share on Reddit0Share on Facebook0Share on StumbleUpon0Tweet about this on Twitter0

Leave a Reply

Time limit is exhausted. Please reload the CAPTCHA.