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

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

新規登録して質問してみよう
ただいま回答率
85.50%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

Q&A

14回答

6625閲覧

ソースコードを書く上での暗黙の了解等があれば教えていただけたら幸いです。

_unknown

総合スコア10

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

0グッド

0クリップ

投稿2016/08/05 06:42

編集2022/01/12 10:55

よろしくお願いします。

皆様のソースコードを作成する上でのこだわり、
暗黙の了解や一般論等がありましたらぜひ教えていただきたいです。
腕を上達させたいと思い、サンプルコードをqiita様などで拝見することがよくあります。

コードの書き方などは人それぞれという意見もあるとは思いますが、
開発やプロジェクトには多くの人が携わります。
特にインデントの部分における暗黙の了解や常識等がありましたら教えていただきたいです。よろしくお願いいたします。

例えば

c

1main(argc,argv)//引数を指定する際、スペースを空けるか 2main(argc, argv) 3 4int a,b,c//変数定義の際,のあとスペースを入れるか 5int a, b, c 6 7if(a>0)//if文にはスペースを空けるか 8if(a > 0) 9if (a>0) 10if (a > 0)

などです。

皆様がネット上にコードを公開する際はどのようにしていますでしょうか。

また、プログラマーの方々から見て、このコード書いたのはきっと素人だなと思うようなコードの特徴等ありましたら教えていただきたいです。

よろしくお願いします。

追記

初心者が変な癖をつけて後々恥ずかしい思いをしないためにというニュアンスで質問させて頂いきました。

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

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

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

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

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

issei.

2016/08/05 08:24

多少の癖くらいなら、ファイル内で統一されていれば目を瞑ってもらえます(小声。厳しいところだと書き直しになることもありますが、厳しいところは書き方のルール(コーディング規約)があるので、そんなに身構えなくても大丈夫だと思います。
kei344

2016/08/06 03:28

タイトルが「義ソースコード」になっていますが、「義」は不要では?
_unknown

2016/10/04 10:37

すみません。気づきませんでした。
guest

回答14

0

大きな企業だと社内のコーディングルールを公開してるところもありますので、それを参考にするといいと思います。
以前いた職場ではGoogleのコーディング規約を参考に、いくらなんでもこれはめんどくさいよね、みたいなところはチームで相談してちょっとアレンジしてルール決めしました。

投稿2016/08/05 06:53

NatsumiOki

総合スコア1298

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

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

_unknown

2016/10/04 11:02

ありがとうございます。 Googleのコーディング規約を調べてみます。 読みやすいコードがかけるように工夫していきたいです。
guest

0

実際には関わられている業務チームのコード規約を参考にされれば良いかと思いますが、

一般的には良いコードの特徴としては

コメントの使用と作法が適切である
字下げを含めたソースコードのレイアウトが良い
桁位置合わせが適切である
キーワードと変数名の区別が明確化されている
演算子やキーワードの前後での空白を適切に使用している
ユーザー定義識別子(関数名・変数名など)のスペリングの作法が適切である
プログラミング構文の使用法や使用禁止を実施している(例えばgoto文の使用禁止)

などが挙げられるかと思います。

https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E4%BD%9C%E6%B3%95
ご参考まで

投稿2016/10/04 23:06

Yatsurugi

総合スコア1628

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

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

0

いわゆる、
コーディング規約
と呼ばれるものですね。

issei.さんの回答通り、その開発単位で何らかのルールで統一されていれば、
あとは価値観の違いなのでどんな方法が優れているということはありません。
*特にこだわりや理由が無ければ、シェアの高いコーディング規約を採用すると利便性が高いです。

言語によっても色々あるので
言語名 コーディング規約
あたりをキーワードにして検索してみると、そのタイミングでよく使われているであろうコーディング規約がみつかるので、その中からしっくりくるものを使ってみるというのがお勧めです。

また、IDEやエディタによっては、コーディング規約に沿って体裁を整える機能を持っているものもあるので、ネットや他のチームとのコードのやり取りをする場合はそういった機能を使うと楽です。

投稿2016/08/05 06:57

tanat

総合スコア18709

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

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

_unknown

2016/10/04 11:02

ありがとうございます。 言語名 コーディング規約で調べてみます。 読みやすいスタイルを身につけたいです。
guest

0

コーディング規約がある場合はそれに従うのがルールとなります。

変な癖をつけて恥ずかしい思いをしたくないのであれば、
自分が良いと思ったソースコードをひたすら真似をして身に着けていけばよいと思います。

そのうえで、自分がソースコードを書く際にブレがなければ自然と素人ではなくなるはずです。
例えば、「この関数は引数の間にスペースがあるのに、こっちの関数はスペースがない」や、
改行のタイミングなども場所によって違ったりすると統一感がなく見えます。

まあ、今はフォーマッタやコードスニペットがあるので最終的に一括である程度は整えられますが・・・。

投稿2016/08/05 07:38

s.t.

総合スコア2021

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

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

_unknown

2016/10/04 11:03

ありがとうございます。 フォーマッタ、コードスニペットですか? 初めて聞きました。調べてみます。
guest

0

こんにちは。

区切り記号前後のスペースの有無はあまりつけないです。,の後ろにスペース1つが自分の方針です。
でも、単なる好みで強い理由はあまりせん。何か統一的な方針が欲しいのでこのようにしているだけです。

しかし、インデントは慎重に付けます。
{}の付け方やインデントのスペース数は人によって色々な方針がありますが、同じブロックの文頭が揃ってないや入れ子のブロックの文頭が同じとかはあり得ないと考えています。

インデントのスペース数は国内は4が多い印象です。グーグルは2を推奨してます。linuxのリーナス氏は8を推奨してます。私は4が好きですね。
統一することは事実上不可能と思いますので、決まりがあればそれに合わせ、ない時は自分のコードは自分好みで、他の人のコードはその人の好みに合わせるのが良いのではないかと思っています。

投稿2016/08/05 07:11

Chironian

総合スコア23272

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

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

_unknown

2016/10/04 11:02

ありがとうございます。 様々なスタイルがあるのですね。 読みやすいコードを書けるように頑張ります。
guest

0

ソースコードを書く上での暗黙の了解

Google JavaScript Style Guide 和訳
Google Java Style (非公式和訳)

有名なコーディング規約が知りたいなら上記リンク、

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

可読性に関する一般論が知りたいなら上記書籍がオススメです。


複数人でコーディングするときは、
職場などでの規約に従うことになると思います。

じゃあ、そういう制約がない場合、何を基準にするか?

たとえばRubyですと、「Rubocop」という、
静的解析ツールを私はよく使います。

これは自動で書式などをチェックしてくれるので便利です。
ただし、標準の設定に必ずしも100%従うわけでもないですけど。

こういうツールは、メジャーな言語なら、
ほかの言語でもありますので、探してみてください。

投稿2016/10/05 08:58

LLman

総合スコア5592

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

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

0

会社やプロジェクト毎にコーディング規約やコメント規約があります。
それに合わせてることが重要です。

なにが正しい、なにが変なのかは、やはりコーディング規約と比較する必要があります。
一概に変な癖とは判断できないと思います。

一度、インターネットでJavaやC#のコーディング規約を検索してみてはどうでしょうか?

投稿2016/08/09 14:38

編集2016/08/09 14:39
ai_2013_dev

総合スコア338

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

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

_unknown

2016/10/04 11:03

ありがとうございます。 コーディング規約などは毎回変わったりするのですね。 勉強になりました。
guest

0

環境によりますがIDEで大まかなサポートをしてくれるものもありますね
私はもっぱらVisualStudioを使っているので気にしたことがありません
無い環境だとオレオレルールを組み込んだコード整形のツールを使うとかでしょうか

そういうことも大事だと思いますがその辺りはツールに任せて、もっと他のコードのクオリティの部分で気を使いたい(自戒

投稿2016/08/05 23:22

dojikko

総合スコア3939

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

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

_unknown

2016/10/04 11:03

ありがとうございます。 ツールを使用するという方法もあるのですね。 調べてみたいと思います。
guest

0

コーディングスタイルの話ですね。コーディング規約で規定されているならそれに従い、そうでなければ基本的には「見やすさ」と「統一感」を心がければ良いと思います。

ぎちぎちに詰めて書くよりも、適度にスペースを空けて書いた方が見やすいと思います。私は、カンマの後ろや演算子の前後には(基本的には)スペースを空けるようにしています。

異なる複数の処理が1行に書かれていると見づらいです。1行に複数の命令を書くことができる言語は多いですが、基本的に1行には一つの処理にとどめるべきです。デバッグにも影響しますから。

インデントは重要です。きちんとインデントしていれば制御構造の外観を瞬時に把握することができます。私は4文字のハードタブ派ですが、スペース4文字派も多いですし、2文字というのも結構見かけます。

いろんなコードを見て回って、自分が見やすいと思ったコーディングスタイルを真似すれば良いと思います。

投稿2016/08/05 09:17

catsforepaw

総合スコア5938

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

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

_unknown

2016/10/04 11:03

ありがとうございます。 デバッグを意識するのは重要ですよね。 いろいろなコードを見て練習したいと思います。
guest

0

プロジェクトでコーディング規約があるならそれに従う。
ないプロジェクトなら、なるべく既存ソースにあわせる。
それもないなら自由。
自分の好みでコーディングしましょう。
どの書き方がいいとか悪いとかはそれほどないと思いますが、個人的には空白なしでギュウギュウに詰まってるのは見づらいですね。
また、今はこの書き方がいいと思っていても、数年経ったり、別の人のコードを見ると考えが変わってきます。

投稿2016/08/05 06:55

ttyp03

総合スコア16996

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

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

_unknown

2016/10/04 11:02

ありがとうございます。 読みやすいコードは気持ちがいいですよね。 いろいろな人のコードを読んで読みやすいように工夫します。
guest

0

挙げていただいている点は、最低限、そのソースファイル内で統一されていれば問題ありません。
むしろ、コメントの書き方や、ロジックの書き方・切り分け方を気にされた方が良いと思います。

投稿2016/08/05 06:45

issei.

総合スコア326

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

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

_unknown

2016/10/04 11:02

ありがとうございます。 書くことも大事ですが、動くコードも大事ですよね。 コメントなどにも注意するようにします。
guest

0

前提
グローバル変数は極力使わない、使う時はハンガリアンgをつける。
一つの関数は精々30行程度に収めたい。
中括弧は省略できても省略しない。
小括弧も余程くどくない限り省略しない。
括弧等、対になる記号や処理がある場合はセットを先に作ってから内部を記述する。
比較演算子==の両辺のうち片方のみが変数ならば、これは右辺とする。
積極的にconstを使う。

My命名規則
変数名は全て小文字、定数は全て大文字(単語間はアンダーバー)、関数名は二単語目以降の先頭のみ大文字、構造体(クラス)名は単語の先頭のみ大文字、基本的に英単語で構成する

その他
while(1)よりもfor(;;)の方が一文字少ない(ほぼどうでもいい、というか力尽きたので寝ます・・・)

投稿2016/10/06 15:02

編集2016/10/06 15:04
HogeAnimalLover

総合スコア4830

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

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

0

今日、ちょうど会社のエンジニアMTGでコーディング規約について触れていました。
いろいろとあったのですが、まとめるとフレームワークのルールに従うってことですかね。

投稿2016/10/06 14:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

習慣からかけ離れるほどコードの読み書き(特に書くこと)がつらくなるので、まずはより広い範囲で通用しそうなスタイルに従うのがいいと思います。Cの子孫の言語(C++, Java, C#, Scala, etc.)であれば概ねK&Rスタイルがよいと思います。

C

1if( a+1==b ){ // 非K&R。論理を作るよりこの規則の方がつらいと感じるプログラマーもいそう 2 invoke( a,b ); 3 int c,d; 4 5if (a + 1 == b) { // K&R 6 invoke(a, b); 7 int c, d;

スタイル以外についての一般論については範囲が広すぎて「小さく作る」「明快に作る」といった抽象的な言葉しかできてきそうもないので、あなた自身が様々な場面での失敗や勉強を通じて知見を得ていってくださいという応援しかできません・・・

投稿2016/10/05 03:09

KSwordOfHaste

総合スコア18392

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問