SideCI Blog

自動コードレビューサービスSideCIを提供している株式会社アクトキャットのコーポレートブログです。



Goのソースコード解析に標準ツールのgo vetを使ってみましょう

企業内においてGoを利用するケースが増えています。コンパイル系であり静的型付けの言語で、実行速度も速いのが特徴です。さらに仕様がシンプルなので習得が容易、かつ書かれたプログラムはマルチプラットフォームで動作します。 人気が出るに従ってチームで…

bundlerのoutdatedコマンドを使ってGemfileの古いライブラリをチェックしましょう

RubyプロジェクトではBundlerを使って依存ライブラリの管理を行うのが一般的です。ライブラリのインストールは簡単にできますが、その後適切に最新バージョンを追いかけないとセキュリティ上のリスクが発生することや、アップデートの差分が大きくなりすぎて…

Railsを書き始めたばかりの人に特にオススメ。Rails流のコードの書き方を教えてくれる rails_best_practices を使ってみましょう

Ruby on Rails を使ったシステム開発では The Rails way や Rails 流と言った開発手法に沿って行うことで高い生産性を保持できるようになります。つまり流儀をきちんと学び、それに従って開発するのが大事です。 そうした流儀、ベストプラクティスをチェック…

SideCIはレビューにフォーカスするため、負債カンバンを廃止しました

こんにちは。今日は私たちSideCIのメンバーにとって、また、ユーザの皆様にとって、大きなアナウンスをさせて頂きます。 2016年8月末より技術的負債を可視化し、その返済を支援する機能である「負債カンバン」を提供しておりました。本機能はベータ版として…

CoffeeScriptのコードを静的解析器のCoffeeLintにレビューしてもらおう

素のJavaScriptが書きづらいと感じる方は少なくありません。波括弧や普通の括弧が多く、読みづらいと感じてしまいます。そんな中作られたのが代替言語のCoffeeScriptです。CoffeeScriptは変換用のコマンドを介して素のJavaScriptになります。CoffeeScript自…

Hamlを使っているならhaml-lintを使ってコードレビューを楽にしよう

Hamlというのは主にRuby on Railsで使われているマークアップ言語です。Railsで標準で採用されているテンプレートエンジンであるERBよりも少ない記述量で記載することが出来ます。HTMLはXMLがベースになっているので冗長的な書き方も多く、書くのが面倒に感…

SCSSの静的解析、改善にscss-lintを使いましょう

コードレビューというとプログラマ向けの仕組みに感じますが、そんなことはありません。Webデザイナーにとっても役立つケースがあります。例えばCSSはテキストで書かれるものなので差分が取れます。更新部分だけをコードレビューできれば、日々の運用の中で…

JSHintを使ってJavaScriptのコードを自動レビューしよう

JavaScriptは一つの実行内容に対して複数の書き方が存在します。また、コールバック地獄と比喩される非同期処理の積み重ねなど、ソースコードが分かりづらくなる要因が多数存在します。一人で小さなスクリプトを書く分には構いませんが、多人数で大きなWebア…

Brakeman を使って Rails プロジェクトのセキュリティインシデントを防ぎましょう

Rails の登場によってRubyが世界中のWeb開発に使われるようになっています。Rails はとても高機能で便利なフレームワークですが、何でもやってくれる安心感からか、セキュリティに気を配らずに実装されてしまうケースも見受けられます。適当な書き方をしてし…

TypeScriptの静的コード解析ツールTSLintを使い、コードレビューの前工程でコードをチェックしまいましょう

素のJavaScriptをチーム内でそのまま使うのを嫌がる方は少なくありません。型の定義ができなかったり、括弧が多く、分かりづらいコードになりやすいといった問題がよく言われます。そこで注目されているのがMicrosoft社がメインで開発を行っている代替言語の…

Go言語用のあらゆるLinterを丸っと並列実行する、gometalinterを使いこなそう

多くのプログラミング言語でもそのコードの静的解析を行い警告を出すツール、いわゆるLinterが存在します。特に最近出てきたプログラミング言語ではLinterがよく作られているようです。Linterがあることによって、良いコードの書き方がLinterのソースコード…

PHP_CodeSniffer 3.0への移行のご案内

PHP_CodeSnifferはPHPのコーディングスタンダードのチェックを自動化し、チームで統一するための非常に優れたツールです。SideCIでは、バージョン2.9.1をサポートしており、既に多くのお客様にご利用いただいております。 先日、PHP_CodeSniffer 3.0がリリー…

Dockerで素早くRubocopによる自動コードレビューを実現する

RuboCopを使えばRubyのコードを静的解析してコードレビューを他の人にして貰う前にいくらかの内容を機械的にチェックできるようになります。RuboCopのインストール自体はRubygemsでできるのでさほど難しいものではありませんが、ローカル環境の変更はなるべ…

Reek を使って嫌な感じのコードを取り除きましょう

コードを書いたり、読んでいて、何となく嫌な感じのするコードに出くわしたことはないでしょうか。そういったコードの存在はシステムの保守性や可読性を損なうものになります。Reek というツールではそれをコードスメル(悪臭のするコード)と呼んでいます。…

PHPMDを使ってPHPのコードを綺麗にしよう

複雑であったりトリッキーなコードは思わぬバグを生む可能性があります。また、未使用の変数やメソッドなども本当は使われるはずが、タイポしていて使われていない可能性もあります。そうしたコードの問題点を指摘してくれるソフトウェアが多数存在します。 …

RuboCopでRubyコードのスタイルガイド準拠度をチェックしましょう

皆さんはコーディング規約に沿ったコードを書いているでしょうか。そもそも自社にコーディング規約が存在しないという企業も多いかと思います。もちろん、コーディング規約を定めること・沿うことが一概に良いとは言えませんが、コーディング規約自体は企業単…

flake8を使ってPythonプロジェクトを自動コードレビューする

どのようなプログラミング言語であっても、複数人で開発しているとそれぞれが独自の開発スタイルを持ちがちです。その補正としてコードレビューは大事なプロセスになります。 今回はPythonの文法チェックツールであるflake8を紹介します。SideCIではflake8を…

PHP_CodeSnifferを使ってPHPのコードを綺麗にしよう

PHP言語はアプリケーション開発の現場で非常に多く使われている、最もポピュラーな言語の一つです。20年近い歴史のあるプログラミング言語であり、その歴史の中で様々なライブラリやフレームワークが開発されてきました。 ライブラリやフレームワークは様々…

ESLintを使ってNode.jsプロジェクトを自動コードレビューしよう

品質の高いソースコードを保つために、予めコーディングスタンダードを用意しておき、それに基づいてコードを書くことが多いです。特にスクリプト言語では書き方が人によって変わる傾向が強く、トリッキーなコードも多くなりがちです。 そのコーディングスタ…

Ruby on RailsプロジェクトでRuboCopによるコード解析を行う

綺麗なソースコードを書くためにはコーディングスタンダードに従って書くのが一番です。Rubyでは幾つかソースコードを静的解析してくれるツールが存在します。一番有名なところとしてはRuboCopではないでしょうか。 RuboCopは rubocop コマンドでRubyプロジ…

アビシニアンモードのアップデート

SideCIでは、1月から新しいコードレビューの体験のためにアビシニアンモードを提供しています。アビシニアンモードでは、SideCIが発見した問題の一覧を確認でき、それぞれについて修正するか「クローズ」するかの対応を、レビューの段階で選択することができ…

コードレビューの自動化を考えるべきタイミング

コードレビューの文化は開発者の中で浸透してきています。多くの組織では開発メンバーが全員集まって特定のメンバーのコードをチェックしたり、プルリクエストに入っているコードをチェックしたりするのではないでしょうか。 他のメンバーからの指摘は時にた…

公式Twitterアカウント移行のお知らせ

この度、公式Twitterアカウントを移行することになりました。 *SideCIのステータスは、@sideci_globalに投稿されるため、2つの新アカウントをフォローください。 旧:@sideci_support 新:@sideci_japan 新:@sideci_global 今後は言語を区分して、情報発信…

SideCI の対応ツールに SwiftLint を追加しました

こんにちは。SideCI にて SwiftLint を使用した解析が行えるようになりました。 https://github.com/realm/SwiftLint SwiftLint は、Swift のためのスタイルチェッカです。

SideCI の対応ツールに stylelint を追加しました

こんにちは。SideCI にて stylelint を使用した解析が行えるようになりました。 https://github.com/stylelint/stylelint stylelint は、CSS 及び SCSS 等のスタイルシート用言語の為の Lint ツールです。 スタイルシートのコーディングスタイルの統一や、問…

各種解析ツールのバージョンをアップデートしました!

こんにちは。先週のアップデート情報です。 各種解析ツールのバージョンをアップデートしました! アップデート情報は以下に記載しておりますので、ご確認ください。

アビシニアンモードでLINTツールの誤検出と闘う

RuboCopなどのLINTツールは、コードに含まれる潜在的な問題を検出しますが、誤検出の問題が常につきまといます。例えば、こういうプログラムに問題があると言われると、かなり厳しい思いをします。 このRuboCopの警告は、Railsアプリケーションの配置されて…

隠れたコーディングスタイルを .rubocop.yml に抽出するツール、Gryをリリースしました!

.rubocop.ymlの自動生成ツール Gry をリリースしましたのでお知らせいたします。 github.com Gry とは? Gry は RuboCop の設定ファイル(.rubocop.yml)の自動生成ツールです。 Gry を使用することで、プロジェクトのソースコードを解析し、そのプロジェクト…

SideCIの利用フローを大きく改善する、新機能のベータ提供を開始しました

こんにちは。本日より、非常に大きな新しい機能のベータ提供を開始しました。 この機能はまだベータ版であり、正式な名称が決まっていないことから、社内でのプロジェクト名「アビシニアン」にてご紹介させて頂きます。 アビシニアンについて アビシニアンは…

コードレビューの指摘結果が日本語訳に対応しました!

こんにちは。今週のアップデート情報です コードレビューの指摘結果が日本語訳に対応しました! 日本語訳イメージ 今までは指摘結果はすべて英語のみに対応していましたが、ご利用者様からの多くの要望を受け、日本語での提供を開始いたしました。

解析完了通知がSlack/HipChatで受け取れるようになりました!

追記: HipChatによる解析完了通知は2017/04/25にサポートを終了いたしました。 こんにちは。今週のアップデート情報です。 解析完了通知がSlack/HipChatで受け取れるようになりました! 解析完了通知イメージ 今まではプルリクエスト上のコミットステータス…

2016年11月よりトライアルプランを改定致します。

SideCIでは月間ビルド制限付きのトライアルプランを提供して参りましたが、「法人契約想定で検証する際に月間30ビルドでは少なく検証がしづらい」などのご意見を多く頂くこともあり、2016年11月よりトライアルプランの制限を改定する運びとなりました。

RuboCopを使い始めよう! RuboCop導入に最適な設定、MeowCopをリリースしました!

こんにちは、RuboCop大好きpockeです! 先日RuboCopの設定用のGem、MeowCopをリリースしましたのでお知らせいたします。 GitHub: https://github.com/sideci/meowcop RubyGems: https://rubygems.org/gems/meowcop

ESLint実行時にプラグインやコンフィグをnpm installできるようになりました 他

こんにちは。今週のアップデート情報です。 ESLint実行時にプラグインやコンフィグをnpm installできるようになりました SideCI上でのESLint実行時、.eslintrcの設定ファイル内にpluginsやextendsが指定されている場合にそれらのインストールした上で解析を…

SideCI上でESLintの自動修正が行えるようになりました ほか

こんにちは。今週のアップデート情報です。 SideCI上でESLintの自動修正が行えるようになりました。 ESLint経由で指摘したもののうち、修正可能な指摘を自動修正したPull Requestを生成することができます。 この機能を既存のワークフローに組み込むことによ…

メソッド定義を変更した場合の修正漏れを検知できるようになりました。

こんにちは。今週のSideCIのアップデート情報です。 Ruby用の新しい解析ツール Method Definition Validator が利用できるようになりました。

クレジットカードでのお支払いに対応しました。

今年の4月から正式サービス化させていただいているSideCIですが、PayPalに加えてクレジットカードでの支払いにも対応致しました! ※クレジットカードの決済代行サービスとしてStripeを利用しているため、ご登録いただいたカード情報を弊社で閲覧・利用・保持…

SideCIからPull Requestのcommit statusを細かくカスタマイズできるようになりました ほか

[追記: 2017.05.30] SideCIの解析における [ci skip] 機能のサポートを終了いたしました。 こんにちは。@vexus2です。明日からゴールデンウィークですね! さて、いくつか溜まってしまっておりましたが、SideCIのアップデート情報です。

SideCI上でPHP_CodeSniffer自動修正が行えるようになりました

SideCIはphp-cs-fixerを利用して、修正可能なPHP_CodeSnifferによる指摘を自動修正したPull Requestを生成することができます。 この機能を既存のワークフローに組み込むことによって「Pull Requestに対するPHP_CodeSnifferの指摘を修正するPull RequestをSi…

2016年4月以降の料金プラン及び利用規約のご案内

SideCIは2016年4月より「正式版」になります。合わせて、以下が改訂されます。 料金プラン 利用規約 プライバシーポリシー

SideCIは2016年4月より「正式版」になります

SideCIは2016年4月より「正式版」になります。 今回の記事ではアナウンスが必要な内容をお伝えさせて頂きます。 決済方法が変更になります 料金プランが変更されます Freeプランから有料プランへの即時アップグレードが可能になります

RuboCopの自動修正がSideCI上から行えるようになりました。

こんにちは。最近ドラゴンクエストビルダーズに時間泥棒されている@vexus2です。 今週のSideCIのアップデート情報です。 RuboCopの自動修正をSideCIから行えるようになりました。 RuboCopには --auto-correct オプションを付加すると修正可能なコードを自動…

Rubocopを任意のバージョンで実行可能になりました

こんにちは。東京では初雪が降ってましたね。とても寒い日々ですがいかがお過ごしでしょうか。@vexus2です。 今週のSideCIのアップデート情報です。 Rubocopを任意のバージョンで実行可能になりました。 Rubocopは開発スピードがそれなりに早く、また、後方…

SideCI の対応言語にGo言語を追加しました!

こんにちは。OctocatとGopherをこよなく愛する@pockeです。 今週のSideCIのアップデート情報です。 SideCIの対応言語としてGo言語を追加しました Go言語対応イメージ 以下の3つのツールを選択することが可能です。

2016年に流行りそうだけどまだ殆ど知られていないエンジニア向けサービス10選

エンジニア x ニッチ(特化)なサービスを調査、「これは流行りそう…!」と思ったサービスを10個ご紹介。 誰もが知っていそうなサービスは含んでません。「俺はエンジニア向けサービス詳しいぜ!」という方も安心して御覧ください。

「価値を創造する」フェーズから「組織を成長させる」フェーズに ―「ペコッター」インタビュー | SideCI導入事例

会社概要 今回ご協力頂いた企業: 株式会社ブライトテーブル ご利用開始年月日: 2015年10月 ご利用人数: 2名

スケールするためには仕組み化が必要 ー「ピクスタ」インタビュー | SideCI導入事例

会社概要 今回ご協力頂いた企業: ピクスタ株式会社 利用人数: 16人 ご利用開始年月日: 2014年5月

GitHubのIntegrations Directoryに掲載してもらうための手順まとめ

こんにちは。RubyMineのサイトもロゴもガラッと変わっててワクワク感が止まらない @vexus2です。 GitHubには Integrations Directory っていう、GitHubアカウントで連携しているSaaS/PaaSをカタログ的に載っけているサービスがあります。 SideCIもIntegratio…

基本的なレビューを自動化して、開発リソースをビジネスのコアバリューへ集中したい ー「Dive into Code」インタビュー | SideCI導入事例

会社概要 今回ご協力頂いた企業: Dive into Code ご利用開始年月日: 2015年10月 ご利用人数: 2名

Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ!

今回はpythonのスタイルガイド、コーディング規約に関連する周辺ツールについてまとめてみました。pep8, pyflakes, flake8, haking, Pylingの5種類のツールについてまとめてあります。