JavaScriptをがんばるブログ

JavaScript関連で日々気になった事を書いていきます。今はReactを専門としています。

Doctrine2/QueryBuilderのコメントが素晴らしかった

実際の使用例を記すだけでこんなに解りやすくなるとは…

引用元: https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/QueryBuilder.php#L1119-L1137

    /**
     * Adds one or more restrictions to the query results, forming a logical
     * disjunction with any previously specified restrictions.
     *
     * <code>
     *     $qb = $em->createQueryBuilder()
     *         ->select('u')
     *         ->from('User', 'u')
     *         ->where('u.id = 1')
     *         ->orWhere('u.id = 2');
     * </code>
     *
     * @param mixed $where The WHERE statement.
     *
     * @return self
     *
     * @see where()
     */
    public function orWhere()
    {
        $args  = func_get_args();
        $where = $this->getDQLPart('where');
        if ($where instanceof Expr\Orx) {
            $where->addMultiple($args);
        } else {
            array_unshift($args, $where);
            $where = new Expr\Orx($args);
        }
        return $this->add('where', $where);
    }

CIが遅く開発のボトルネックになっていたので新しいCIの選定を行いました

Scrutinizerを1コンテナで使っていたのですが、
リポジトリ数が増え、時には待ち時間が2時間を超えるようになってしまいました。
そのためメジャーなCIサービスの機能と価格を調査しました。
CI毎に課金体系が全然違うのでそこが楽しかったですね。

malloc.hatenablog.jp

現状Scrutinizerのコードメトリックの結果をコードに反映するプロセスを実施しておらず、 静的解析を行っている待ち時間が無駄になっているように感じたので、

  • ビルドだけ行えればOK
  • 並列実行可能

という条件でコスパの良いCircle CIを選択しました。

Scrutinizerは完全に無くしてしまわずに1プロジェクトだけ利用し、毎週一回コードメトリック改善の時間を設けるなどして活用して行ければ良いかなと思っています。