こんにちは、基本的にVisual Studio使いのMilkです。
というより、これに慣れすぎたために、他の統合開発環境が分かりません。一種の病気です(笑)
さて、Android Studioを使い始めたのですが、あれこれと使い勝手が難しい。
コーディングする上で、いつもの手の動きにしっくりこないとコーディング効率がガッツリ下がります。
また、コーディングスタイルも言語によってちょいちょい違います。
所謂、字下げスタイル問題(宗教戦争の域に発展するプログラマのパンドラの箱)
字下げスタイルって何?
コーディングする上で、ソースコードを見やすくするために段々に行を書くのです。
どこで区切って段々を組むか。それが字下げ。
また、字下げスタイルは色々な派閥があって、プログラマは各々好きなスタイルがあるのだ。
では、敢えてここで宣言しよう!
私は、BSD/オールマンスタイル支持者だと!!
(いやーん。Javaの人々に袋叩きにあうwww)
K&Rスタイル? 私は全然慣れない・・・
というより、これで書かれるとソースコードの可読速度が半減する。
どこからどこまでがひとつの塊なのかが理解できない。もう、理由はそれだけ。
ほんとそれだけ・・・
では、ここでちょっとだけ例を上げましょう。
K&Rスタイル
public class WeatherApi{ private static final String API_ENDPOINT = "http://weather.livedoor.com/forecast/webservice/json/v1?city="; public static String getWeather(String cityId) throws IOException{ URL uri = new URL(API_ENDPOINT + cityId); HttpURLConnection connection = (HttpURLConnection) uri.openConnection(); StringBuilder sb = new StringBuilder(); try{ BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = br.readLine()) != null){ sb.append(line); } }finally{ connection.disconnect(); } return sb.toString(); } }
とくに、tryの箇所を見てほしい。私はもうこの時点でダメ。try{がどこで閉じているのか分からなくなるのです。
参考書片手に、あれこれ打ち込んで・・・あれ?括弧の数が合わないぞ??どこ?どこよwww
って大混乱。
さらに、他人のソースだともうパニック。うへぁ・・・助けてくだしぁ・・・全部括弧を直してもいい??って言うぐらいである。
(プログラマ失格・・orz)
BSD/オールマンスタイル
public class WeatherApi { private static final String API_ENDPOINT = "http://weather.livedoor.com/forecast/webservice/json/v1?city="; public static String getWeather(String cityId) throws IOException { URL uri = new URL(API_ENDPOINT + cityId); HttpURLConnection connection = (HttpURLConnection) uri.openConnection(); StringBuilder sb = new StringBuilder(); try { BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = br.readLine()) != null) { sb.append(line); } } finally { connection.disconnect(); } return sb.toString(); } }
私みたいな、初心者プログラマはこの形のほうが嬉しい。なんでって?そりゃー{ }が縦にそろってるからさ。
それがひとつの塊だってのが、ひと目で分かる。確かに行数が多くなるのは難点だけど、初心者にはそんなことより分かりやすさだ。
あと、読みやすいってのは後でメンテナンスがしやすいってこと。凝った作りにされた後、いざ保守するぞって時に「うわぉ・・・なんて書いてあるのか分からんぞ・・・どこにバグが入ってんだ?」となる。
まぁ、これは字下げスタイルだけの問題じゃないけど。
でもね。これは人それぞれのコーディングスタイルなので、争っちゃだめだぞ☆
鶏卵問題と同じで、絶対に結論出ないから。
という訳で、何がしたいかというと、Android StudioはJavaですので、基本的にK&Rスタイルなんです。だからそれをBSD/オールマンスタイルにしたい!ってことなんです。(あぁ〜、またJavaの人々に怒られるww)
字下げスタイルの設定
Android Studioは以下の場所で字下げスタイルを変更できます。
「File」-「Settings...」を選択します。
すると以下のような画面が出てくるはずです。
「Editor」-「Code Style」-「Java」と選んでいきましょう。すると、「Wrapping and Braces」というタブがあるはずです。
ここが、コーディングのスタイルを選択できる項目です。チェックボックスを押してみたり、コンボボックスを選択してみよう。すると、右側のコーディング例が変更されるはずだ。
詳しい設定項目内容は以下のサイトにまとめられていました。(ありがとうございます。)
因みに、私が設定した項目は以下の項目
- Braces placement - in class declaration → Nextline
- Braces placement - in method declaration → Nextline
- Braces placement - Other → Nextline
- if()' statement always - 'else' on new line → check
- 'try' statement - catch on new line → check
- 'try' statement - finally on new line → check
あと「Blank Lines」のタブを修正
- Keep Maximum Blank Lines - in declarations: → 1
- Keep Maximum Blank Lines - in code: → 1
- Keep Maximum Blank Lines - Before'}' → 0
すると、空行を調整できる。
さて、ここまでやってどんな意味があるかだけど、Android Studioにはコードを自動調整(書いた後に整えてくれる)機能があるのだ。
今度は「Keymap」の項目を選択してください。
こんな画面が出てくるはず。
検索で「Reformat Code」と打ち込もう。すると、Ctrl+Alt+L のショートカットが割り当ててある機能がある。
でも、これって例えばUbuntuの場合は画面ロックのショートカットと被っているので使えないんです。
なので、これに新しいショートカットを追加します。
該当の項目をダブルクリック。すると「Add Keyboard Shortcut」と出てきます。
これを選択すると以下のような画面が出てくるはずです。
「First Stroke」となっている箇所にカーソルを当てて、自分の割り当てたいショートカットキーを押下します。
私の場合はF10にしました。
因みに、他のショートカットと被っているとConflictsに赤文字で警告が出ますよ。
これまでできれば、後は好きにコードを書きまくって、汚くなっても「Reformat Code」機能を使っちゃいましょう。
便利、べんりー。
やっと、これで楽にコーディング出来るようになりました。
それでは!adios!!