タグ

2019年4月23日のブックマーク (4件)

  • 初心者向け。覚えておきたい 「ガード節」という書き方。 - Qiita

    最初に 何においてもそうですが、どのような場合にも当てはまるやり方というものではありません。 ケースによっては逆に読みづらくバグを生みやすくなる場合もあります。 これから紹介するものは、コードを最適化するとき、読みやすくするときの手段の一つとして理解していただければと思います。 ガード節とは 処理の対象外とする条件を、関数やループの先頭に集めて return や continue/break で抜ける方法です。 ネストを減らし正常系の処理がわかりやすくなるメリットがあります。 具体例 まずは悪い例です。 function check($a, $b, $C) { if (is_null($a)) { $result = 0; } else { if (is_null($b)) { $result = 0; } else { if (is_null($c)) { $result = 0; }

    初心者向け。覚えておきたい 「ガード節」という書き方。 - Qiita
    b7968
    b7968 2019/04/23
  • else句を使わないのが良いコードなの?いや、そんなはずは・・・ · DQNEO日記

    if (条件) { return 20; } else { return 30; } ↓ if (条件) return 20; return 30; こうすれば確かにネストは浅くなりますが、いつも毎回こう書く方がよいのでしょうか? elseを書いた方がよいケースもあるのではないか 条件の部分が特殊・例外的な場合は、確かにこの方がわかりやすいと思います。 例えば、スーパーマリオで、マリオの状態が「無敵・チビ・大きい」の3種類しかないとします。 敵に触れたときの挙動を関数として書きます。 (オブジェクト指向っぽくないかもしれませんが、記事の主眼はif-elseの書き方です。) function () { if (マリオ.is無敵モード) { 敵.死ぬ(); return ; } //以下、通常モードの場合のコードを書く } 無敵モードは特殊な状態だから、これはよいと思います。 しかし、マリオ

  • PHP7 の assert による簡易テストはいいぞ。|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    PHP7 の assert による簡易テストはいいぞ。 最近通勤を自転車or徒歩からジョギングに変えて、体調がとても良くなった YamaYuski です。 こちらの PHP7 RFC の記事でも話題に上げましたが、 PHP7 では assert がより使いやすい形に改善されました。 今回は「そもそも Assertion とは?」という話から、実際の PHP コードではどう使えばいいのかまでを紹介します。 Assertion/Expectation とは? PHP の assert は「Assertion(表明)」もしくは「Expectation(期待)」と呼ばれる機能を提供します。 Assertion とは、「ここではこういった入力・結果がtrueである(つまりそれ以外は異常)」という前提条件を コード内に記述(=表明) することです。 // 正常である int user_count =

    PHP7 の assert による簡易テストはいいぞ。|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
    b7968
    b7968 2019/04/23
  • 契約による設計の紹介 - Hatena Developer Blog

    こんにちは、チーフエンジニアの id:hakobe932 です。 はてなでは毎週、社内技術勉強会を開催しています。先週の勉強会では現在開催中のはてなインターン2016の参加者のみなさんもインターン生も参加して、いっしょに技術交流を行いました。 このエントリでは、そこで発表した、契約による設計の紹介をしたスライドを公開します。 契約による設計はBertrand Meyer氏によるオブジェクト指向入門*1という書籍で紹介されている考え方です。 オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング) 作者: バートランド・メイヤー,酒匂寛出版社/メーカー: 翔泳社発売日: 2007/01/10メディア: 単行(ソフトカバー)購入: 11人 クリック: 307回この商品を含むブログ (130件) を見る 契約による設計で

    契約による設計の紹介 - Hatena Developer Blog
    b7968
    b7968 2019/04/23