読者です 読者をやめる 読者になる 読者になる

自分のコードをちょっと見なおしてみる

Androidアプリ作るためのコード書いてたら
Javaらしくない命名」と「Javaだけでなく,プログラミング一般で良くないとされる命名」があるとアドバイスをもらったので答えを教えて貰う前に自分で考えてみる.

Javaらしくない命名
いきなりGitHubとかで他の人のソース見てもよく分からずに終わりそうなので,まずは「Java 命名規則」でググった.で,以下でまとめられていたサイトを参考にさせて頂いた.この中で自分がやっちゃってそうなやつだけ抜き出してみる.
Java/Android コーディング規約まとめ

Java コーディング規約

・命名規則に関する共通的な事項
-名称には英語を利用する(ローマ字表記禁止)
-大文字,小文字の違いで名前を区別する識別子を定義してはならない.
-先頭にアンダースコアを用いることを禁止する

・クラス/インターフェース
-クラス名はPascal形式(単語の先頭は大文字.複数の単語で構成されている場合は単語の区切りを大文字)
-名詞に含まれる単語は省略しない

・ローカル変数
-ローカル変数はCamel形式とする.先頭を小文字として単語の区切りを大文字とする.

・定数
-static finalとして,全て大文字で記述し,各単語をアンダースコアで区切る.

・メソッド
-メソッド名はCamel形式とする.

 

プログラミング一般でよくないとされる命名
これについて考えるときに,コイツをお供にした.

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)


以前に一度読んだのだが,内容を忘れかけているので復習の意味も込めて.今回は2章の「名前に情報を詰め込む」の部分にスコープを当てた.

・明確な単語を選ぶ
気取った言い回しよりも明確で正確なほうがいい.

・汎用的な名前を避ける
tmp,retval,fooのような汎用的な名前を避ける.エンティティの値や目的を表した名前を選ぶべき.

・抽象的な名前よりも具体的な名前を使う

・接尾辞や接頭辞を使って情報を追加する
変数名に単位を入れたり,その他重要な属性を追加する.全ての変数名にそういったものを追加するのではなく,変数の意味を間違えてしまったときにバグになりそうなところだけ使うことが大切.

・名前の長さを決める
スコープが短ければ短い名前でもいいが,スコープが大きければ名前に十分な情報を詰め込んで明確にする必要がある.また長い名前を入力するのは単語補完機能があるため問題ではない.情報として価値の無い不要な単語のせいで冗長になってしまうのが問題.

・名前のフォーマットで情報を伝える
大文字やアンダースコアなどに意味を付ける.

 

これらを確かめた上で自分のコードの一部を見てみる

私が考える修正すべき点の1つ目はローマ字表記の部分.「気になる本を登録する」のボタンオブジェクトの名前をローマ字表記にしてしまっていたこと.
2つ目はローカル変数をCamel形式にしていなかったこと.今まで全て小文字で記述していた.

修正するとしたら
Button attentionComicButton = ~
のような感じだろうか?
まだ他にも問題はあると思うので,これからもコードの書き方について考えてみようと思う.