タグ

ProgrammingとReadable Codeに関するatsushifxのブックマーク (4)

  • メソッド名を考えるときに気をつけること - 亀岡的プログラマ日記

    大学時代に、プログラミングだけでAO入試で入ってきて、部活に熱中しすぎて一年留年して、成績優良で某幸之助じいちゃんの会社に行った奴がいましてね。そいつにずっと言われてたのが プログラムは自然言語としてよめるべき。コメントはいらないよ。 という話で、そのときは「いやいやwww」と思ってたけれど、最近の僕の思考は、もう「自然言語として読めるか」に尽きるようになってきた。 んで、こんな話。 @ngsw_taro @yy_yank @soudai1025 なるほどー。。。booleanなメソッドなのに、is~ではないことがわりと違和感ですが。。。そうでもないんでしょうか。。。— しょぼちむ@物理 (@syobochim) 2015, 3月 16 booleanはIshogehogeなのか? そうであることは多いですよね。でも、例外も非常に多いです たとえば、 Enumerable.Contains

    メソッド名を考えるときに気をつけること - 亀岡的プログラマ日記
    atsushifx
    atsushifx 2015/03/17
    リーダブルコードや達人プログラマー的な話。メソッド名にかぎらず名前は重要なんだけど、それはソフトウェアアーキテクチャやドメイン分析がきちんとできていないとうまく機能しない
  • C言語の開発者によるgoto文の使い方を対象とした実証研究の結果、「goto文は無害だと考えられる」 | スラド デベロッパー

    Edsger Dijkstra氏がgoto文の危険性を主張したのは1968年。それから50年近く経過した現在もgoto文は使われ続けているが、Dijkstra氏が懸念したようなgoto文の無制限な使用が行われているのかどうかという点や、それがバグの原因となるような有害なものなのかどうかといった点については、よくわかっていなかったという。こういった点に関する実証研究が家/.で紹介されている。 家/.「Empirical Study On How C Devs Use Goto In Practice Says "Not Harmful"」より 200万近いC言語のファイルと1万1千件を超えるプロジェクトからランダムに抽出した統計的に有効なサンプルを質的および量的に分析したところ、開発者はほとんどの場合gotoの使用を適切に制限しており、Dijkstra氏が懸念したような無制限な使用は行わ

    atsushifx
    atsushifx 2015/02/15
    リーダブルードを読めでFA。あえて追記すると、goto文は無制限につかえるから危ないのであって制御構造としては必要。breakなどの制限付きgoto文が出てきていることがその現れ。
  • ヨーダ記法を応援します - がるの健忘録

    軽く各方面とバトりそうなネタなれど。 まず。 ヨーダ記法(ないしNTT記法…って、うちのまわりではいってたんだけど、ググるとあんまりでてこない)ですが。 これは「if等の比較演算において、左辺に定数、右辺に変数を置く」記法です。 とりあえず幾つかネットで拾ってみる。 http://uchidak.net/yoda-notation このようにヨーダ記法とは、予期しない代入を防ぐために産み出された安全側へ倒すための書き方です。 しかしながら、現在はコンパイラがよしなにしてくれるため、あえてヨーダ記法で可読性を失うような書き方をすることをリーダブルコードでは推奨していませんでした。 http://qiita.com/moriturus/items/723eb17873381f94baf8 確かに、ヨーダ記法(1 == hogeのように記述する)は、発見しづらいミスを防ぐのに有用かもしれないが、

    ヨーダ記法を応援します - がるの健忘録
    atsushifx
    atsushifx 2014/12/22
    40代で老害には射るだろうけど、自分はヨーダ記法否定派。PHPならdefineで定数宣言するだろうからヨーダ記法にしても左辺がリテラルとすぐに気づくか疑問。それよりはIDEやLintなどのツールに任せるべきだと想う
  • while(1)のループとその除去について〜FizzBuzz問題を例に - わさっきhb

    いきなりですが問題です. 3つの正整数a,b,cを入力にとり,1からaまでを1ずつ順に出力しなさい.ただし,bで割り切れる場合は「Fizz」を,cで割り切れる場合は「Buzz」を,両者で割り切れる場合は「Fizz Buzz」を,該当する数の代わりに出力すること. FizzBuzz問題(wikipedia:Fizz_Buzz)では,bとcの代わりに3と5が使われますが,ここでは変数としておきました. さっそくですが解答として,ある学生が,以下のようにプログラムを書いたら,どのようにアドバイスしましょうか. #include <stdio.h> int main(void) { int a, b, c; int number = 1; scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); while(1) { if (number % b ==

    while(1)のループとその除去について〜FizzBuzz問題を例に - わさっきhb
    atsushifx
    atsushifx 2013/09/03
    FizzBuzzの解答例。普通は最初のようなwhile(1)は書かないとおもうけどReadble Codeの例としてよい感じ。自分はscanfにプロンプト文を付けて、FizzBuzzの"i % b == 0"にカッコをつけるかな
  • 1