質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

5244閲覧

綺麗なコードの書き方を教えてください

skies

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2015/08/25 18:01

編集2015/08/25 18:03

コーディングスタイルと言うのでしょうか?
AさんとBさんのコードを見比べている際に、for文の()内・ifと()の間の空白有無や、コメント//後ろの空白、breakやreturn上の改行有無、ブロック{}内の何も記載されてない行のインデント(タブ)の有無、の違いが気になりました。
どっちでも良いのかもしれませんが、こっちの方が良いよという書き方はありますか?
また、綺麗な書き方をするに当たって何を気をつけたら良いですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

コーディング規約はいろいろありますが、私はGoogle JavaScript Style Guideを使用しています。
ただし、スペースやインデントの付け方まで踏まえると宗教に近く、コーディング規約で縛られない部類が多いと思います。
個人的には私が尊敬する人に倣って次のように書きます。

JavaScript

1function hello (string) { 2 3 if (!arguments.length) { // 引数がないなら 4 string = 'Hello, World!'; 5 } else { 6 string = String(string); // String 型に変換 7 } 8 9 return string; 10} 11 12console.log(hello()); // "Hello, World!"

私は多少冗長になっても分かりやすい記述を求める為、空行やインデントは多めに入れています。
(※今回は説明の為、if-else を使用しましたが、普段なら三項演算子を使うと思います。)

  • ブロックが一つでも {} を省略しません
  • 三項演算子を入れ子にしません
  • function は keyword 間に半角スペースを一つ入れます
  • 空行にインデントは入れません(これはエディタが自動補完する部分なのでエディタによっては空行にインデントが入ります。インデントにメリットはないので良いエディタがあれば教えてあげるといいと思います。)
  • 本格的なコードを書く時には JSDoc を使用します
  • Closure Compiler でパース出来るコードにします(MS IE の条件付きコンパイルは使用しません)

インデントに関しては Closure Compiler で機械的に整形するのも有りだと思います。

投稿2015/08/25 23:32

think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skies

2015/08/26 17:31

ご回答ありがとうございます。他の人がどの様に書いて何を気にしてるのか知りたかったので、とてもマッチしたお答えでした。参考にさせて頂きます!
guest

0

ベストアンサー

インデントやブロックの書き方といったコードの体裁は「コーディング規約」と呼ばれる規約に沿って行います。
コーディング規約は様々な団体が言語ごとに提唱していますが、例えば
googleだと
原文
要約
の様なコーディング規約を発表しています。
*2014年と新しい事なので、一般化しているかは別です。

チームで開発する場合は他の人と合わせないとめんどくさいことになりますが、個人での作業であれば極端な話、美意識次第でなんでもいいです。

性質上「どの規約が優れている」という結論は出せませんが、JAVAのコーディング規約をいくつか見てみて、自分に合うコーディング規約でコーディングしてみればいいと思います。
*メジャーなコーディング規約だと、Eclipse等のIDEで簡単にコード整形/チェックが出来たりするので、メジャーな規約でやってみることをお勧めします。

投稿2015/08/25 18:16

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skies

2015/08/26 17:27

ご回答ありがとうございます。いろいろな規約が存在するんですか!Googleの良さそうですね〜ちょっと調べてみます。
guest

0

どっちでも良いのかもしれませんが、こっちの方が良いよという書き方

複数人で開発するときは、コーディング規約に従いますが、
ひとりで読み書きするなら、率直に言って大差ないです。

もちろん、if文やfor文でのインデントとか、
基本的な部分はできている前提です。

しいて言えば、プログラミングの書籍でよく見るような
標準的な書き方なら問題ないと言えるでしょう。

細かいコーディングスタイルよりも、
後述の論理的な構造が重要になります。

綺麗な書き方をするに当たって何を気をつけたら良いですか?

「きれい」という言い方は定性的ですが、
理解にかかる時間が短いとか、バグの発生率が低いという、
定量的な結果につながる書き方が重要になります。

しかし、そんなことを言われても、どうすればよいのか困るかもしれません。
そこで、メトリクスツールを使ってコードを静的解析するという手はあります。

とくに「循環的複雑度」はバグの発生率に直結します。
これは関数やメソッドを切り分けると減ります。

コードの可読性には、表面上の見ばえの問題と論理的な構造上の問題があって、
とくに後者のメソッドの抽出はプログラミング上で最重要だと考えています。
(後述の『リーダブルコード』にも「メソッドの抽出」に関する記述があります)


Amazon.co.jp: リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

よくこの本を薦めていますが、
コードの可読性に関しては『リーダブルコード』が良書です。

オライリーの本にしては平易で、初心者の方でもわりと読みやすいです。

投稿2015/08/25 19:31

編集2015/08/25 19:40
LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skies

2015/08/26 17:56

ご回答ありがとうございます。メトリクスツールと言うものがあるんですね、論理的な構造は難しそうですね。。先ずはおすすめ頂いたリーダブルコードを買ってみようと思います。
guest

0

コーディング規約には、大雑把に分類すると、インデントの仕方やブロックの表記など「スタイル」に関わるものと、クラスや変数のネーミングルールやメソッドの使い方など「意味や使い方」に関わるものがあります。

前者は機械的にチェック&整形できるものなので、Eclipse等のIDEの便利機能に任せるのが良いです。

一方、後者については機械的には対応できないので、組織(あるいはプロジェクト)としてのポリシーを決めて全員で遵守する必要があります。

その際、tanatさんも例示してくださっているように、優れた実例やまとめがWeb上にたくさん公開されていますので(これが__絶対__というようなものはない)、それらを参考に自分たちの実情に合った規約を作ると良いです。
ただ、示されている規約は多岐に渡り膨大なルールがありますので、規約をまとめるというのはとても骨の折れる作業です。ですから、まずはニーズに近い規約をそのまま適用し、実際に運用しながらブラッシュアップして行くのが実際的な取り組み方ではないでしょうか。

ブラッシュアップに当たっては、そうした規約が盛り込まれた背景やねらいを理解できると助かりますので、以下のような書籍も大いに参考になると思います。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
Javaルールブック~読みやすく効率的なコードの原則

スタイル」については、各自の「好み」によって議論の分かれるところですが、「見やすさ」に直結するので効果が一目で分かりますし、機械的に実施可能な部分でもあるので、直ぐにでも適用するべきです。

一方、スタイル以外の部分は徹底するまでに努力と時間が必要ですけれども、品質に大きく影響する部分なので、じっくり腰を据え全員で「納得」しながら進めて行くのが良いと思います。

投稿2015/08/25 19:54

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skies

2015/08/26 17:41

ご回答ありがとうございます。参考書のおすすめありがとうございます!書籍を真似れば可読性も上がりそうで良いですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問