とりこらぼ。

Learn from yesterday,
live for today,
hope for tomorrow.

目次

Blog 利用状況

ニュース

プロフィール

  • 名前:とりこびと
    とるに足らない人間です。

  • Wankuma MVP
    for '平々凡々'

Web Site

  • Memo(Of T)

もうひとつの Blog

広告っぽい

書庫

日記カテゴリ

可読性・・・ですよね。

最初にごめんなさい。引用しようと思ったら引用レベルではなくなってしまいました。orz

東方算程譚:可読性ねぇ...

完全に出遅れたので自分のところでおやつ代わりにしてみるテスト(「はてな」がやたら重いしね。)

[問題] a ≠ b なら true, さもなくば false を引数として関数 int f(bool) を呼び、結果を c にセットしなさい。

            // [1]
            bool arg;
            if ( a != b ) {
                arg = true;
            } else {
                arg = false;
            }
            c = f(arg);
            // [2]
            if ( a != b ) {
                c = f(true);
            } else {
                c = f(false);
            }
            // [3]
            c = ( a != b ) ? f(true) : f(false);
            // [4]
            c = f( ( a != b ) ? truefalse);
            // [5]
            c = f( a != b );

・・・さて、中括弧の位置云々は置いといてw(誰も言ってない。


・・・ [2] かな。(好みの問題です。)


とはいえ、[5] で書かれているモノがあっても気にしない。うん、気にならない。[3]、[4] は不慣れ。でも気にならない。[1] はなんか・・・重い。

私は問題の文面に対して自分の頭ん中と[2] が一番ピュアにリンクするからです。はい、それだけです。



そもそもこれって、「読めない(人がいる)コード」と、「みんなが読めるコード」のお話?「読みにくいコード」と「読みやすい」コードの話?



チーム開発ってのは・・・ほぼ経験ないのでみなさんにお聞きしたい♪

  • 教育は開発に含まない?
  • [5] を読めない人がいても コーディングルールが決まってないんだから [5] で書く?([1] - [4]でも同じ。)
  • [5] が読めるけど[1]が読めないって人はいない?
  • チームは烏合の衆ではない?




みんなでいいものを作ろうとすればおのずと落ち着くところってないでしょうかねぇ。

...理想論か?






[追記]

[1] はこれよりIf ブロックが長い(ほかの事をやったりしる場合)に採用します。今回の例では逆に読みにくくなってる気がしますた。

[/追記]

投稿日時 : 2007年10月19日 16:46

Feedback

# re: 可読性・・・ですよね。 2007/10/19 16:49 けろ

とりこびとさんは、[2] が好みなんですね。
けろは、[1]か[5]が好みなんですが、[3]もたまに
使ってしまいます。

書きやすさか可読性か、どちらを取るかによっても
悩みますね。うーーーん....

# re: 可読性・・・ですよね。 2007/10/19 16:57 まさる

・教育は開発に含まない?
含めたいけど時間とお金が・・・ってところがまわりでは多い気がします。
自分はなるべく教育もする/しているつもりですけど。

・ [5] を読めない人がいても コーディングルールが決まってないんだから [5] で書く?([1] - [4]でも同じ。)
[5]で書いて「何これ?」と聞かれたら教えます。

・[5] が読めるけど[1]が読めないって人はいない?
たぶんいない・・・と思います。

・チームは烏合の衆ではない?
烏合の衆は言いすぎだとしても、どうしてもスキルが(その時点で)劣る人はいます。
ただ、教えて直るようならセンスがないわけではなさそうなので、教育します。
教えて直らないなら・・・
 理想:プロジェクト全体に影響が及ばないように徹底的にレビューして直るまで封じ込める。
 現実:人手が足りないのでだましだまし使う。そしてやっぱりあとでバグ発見。

# re: 可読性・・・ですよね。 2007/10/19 17:00

>・[5] を読めない人がいても コーディングルールが決まってないんだから [5] で書く?([1] - [4]でも同じ。)

「また困るから、[5]を今覚えてね」
と読めない人に諭しますね。。。


条件演算子とビット演算って、いろいろな人がいると知らない人もいますよ。。。

# 初心者向け(C/C++、他は知らないです・・・)の本では
# なんか条件演算子とビット演算って
# すっ飛ばされてるのが多い気がする・・・


・チームは烏合の衆ではない?

いろんな人がいますよ・・・いろんな人が・・・

# re: 可読性・・・ですよね。 2007/10/19 17:04 HiJun

私は、なぜかVBで書くときは[2]でJavaとかだと
[5]で書いたりしていますね。

理由:VBでやってたときはうわべだけのPGがチームに
いたから。

ただ、チームが全員神だったらもっと見やすくて
わかりやすいプログラムになっているんだろうかと
思ってみたり...
まあ、確実にダラダラとした長いソースにはならないとは
思いますが...(^^;

# re: 可読性・・・ですよね。 2007/10/19 17:14 ぽぴ王子

> 現実:人手が足りないのでだましだまし使う。そしてやっぱりあとでバグ発見。

あれ、なんでオイラがここに… orz
隣の国の人に作らせたコードがあまりにひどくて
4日かかったコードを1日で全部修正(と言う名の
作り直し)しているオイラがここに… orz
目から汗が止まりません。

# re: 可読性・・・ですよね。 2007/10/19 17:16 ながせ

私は、直感的に [2] です。
[5]のほうがまじめにコードを読むのならベストですが、バグのあたりを付けたいときなどはざーっと流すことが多いので、中括弧が出てくると脳内diffに引っかかりやすいから。

個人的な意見になってしまいますが、

>教育は開発に含まない?
業務としては含みますが、担当者が教育するOJTは含みたくありません。

>[5] を読めない人がいても コーディングルールが決まってないんだから [5] で書く?([1] - [4]でも同じ。)
もちろんその通りです。読めない人は読めるように教育するべきで、出来ないならさようなら。
と、言いたいところですが、昔いた会社では強引に[1]以外が認めない風習がありまして、「先輩が読めないソースコードは書いてはいけない」と言われました。

>[5] が読めるけど[1]が読めないって人はいない?
少なくとも自分の周りには[5]がわからない人はいないので^^;

>チームは烏合の衆ではない?
派遣の人は…な人が多いイメージです。

# re: 可読性・・・ですよね。 2007/10/19 17:51 NAO

出遅れてるけど(www

私の方針はえぴさんのところで書いているので省略

>>教育は開発に含まない?
開発じゃないですね

>>[5] を読めない人がいても コーディングルールが決まってないんだから [5] で書く?([1] - [4]でも同じ。)
[1]

>>[5] が読めるけど[1]が読めないって人はいない?
[5]が読めて[1]が読めない事はないでしょ?

>>チームは烏合の衆ではない?
いや結構烏合の衆

>>派遣の人は…な人が多いイメージです。
家は派遣の方がまともだったりしますが何か?…orz

# re: 可読性・・・ですよね。 2007/10/19 19:58 ddnp

派遣といってもピンキリで、
私が個人でお客さんところに行ってると
大手から来た人もいるわけですよ。
# 実際は大手→下請け→下請け→下請け→下請け→下請け→本人だったりすrうわなにをするやm

# re: 可読性・・・ですよね。 2007/10/21 1:34 NAL-6295

このレベルの断片的な構文は読めて当たり前だと思っていますし、構文くらいなら、その時知らなくても調べればわかる。好みは、[2]or[5]です。

それをふまえた上で、
チームがいつも烏合の衆になる事を想定して、あらかじめ手を打つことにいています。
できる人ばかりが確保できるわけじゃないので・・・。
というか普通の人も確保できるか危ういわけで・・・。

たとえば、.NETなプロジェクトで私以外.NET初めての人でプロジェクトが構成されることがありますので、それでプロジェクトが失敗しないようにフレームワークという名の補助兼制限をかけておくようにしています。
制限は中途半端に断片的にできる人向けかな。

そのくらい、普通の人すらいないのが、この業界だと思っています。

# re: 可読性・・・ですよね。 2007/10/22 19:59 とりこびと

コメントありがとうございます。

ちょっと激務などでコメントに対する返信が遅れました。

私がさせていただいた質問の想いを書かせていただきますね。

・教育は開発に含まない?

[5]の書き方をすることで教育とならないか?ということです。
私は、もし教育を含まないのであれば、[5]の書き方はできません。
相手が読めないままの可能性を引きずっていきそうで怖いです。

・[5] を読めない人がいても コーディングルールが決まってないんだから [5] で書く?([1] - [4]でも同じ。)

私はみんなで成し遂げなければある以上、障害は排除しておくべきではないのかという考えです。

・[5] が読めるけど[1]が読めないって人はいない?

これはまぁ・・・おまけですかw
当初、[1]と[5]の難易度が比較されていた(リンク先でも途中から変わっているようですが、)ように見えて「あれ?可読性の話じゃ?」って思ったからです。

・チームは烏合の衆ではない?

純粋に知らないです。
少なくとも開発としてのチームは。
なのでとても参考になりました。

# fnWTrBWjQRC 2012/01/04 5:34 http://www.kosherbeefjerky.net/

Tuq2Ql Hi! Everyone who reads this blog - Happy Reconciliation and Accord..!

タイトル
名前
Url
コメント