RubyKaigi ’18 特別企画 Jonan Scheffler 氏インタビュー

2018年5月に仙台で開催されたRubyKaigiの際、私たちSiderチームはなんと、開発者でHerokuのDeveloper AdvocateのJonan Scheffller氏にインタビューする機会をいただくことができました! 大学で日本文化を専攻していたJonanさんが日本語で回答してくださった、今年のRubyKaigiでの新しい試み、Herokuでの仕事の話、日本の温泉などの幅広い話題をたっぷりお楽しみください。

Continue Reading RubyKaigi ’18 特別企画 Jonan Scheffler 氏インタビュー

RubyKaigi 2018 直前!チーフオーガナイザ・松田明さん特別インタビュー

今回はRubyKaigi2018開催直前ということで特別にRubyKaigi チーフオーガナイザの松田明さんにインタビューしてきました。数ある松田さんのインタビュー記事の中でも、あまり目にすることのない「コードレビュー」や「レビュー自動化」を中心に、お話をお聞きしてきました。

Continue Reading RubyKaigi 2018 直前!チーフオーガナイザ・松田明さん特別インタビュー

RuboCop vs Rails Best Pratices それぞれの特徴。初心者はどう使う?

目次 どのようなツールがあるか RuboCop 特徴 rails_best_practices 特徴 試してみる。 対象 RuboCop 導入 Gemfileの書き換え database.ymlの作成 Gemの導入 作動させてみる failに対応してみる 設定ファイルでコーディングスタンダードを定める 対応しているチェック種類 触れてみた感触 rails_best_practices 導入 Gemfileの書き換え SublimeText2やTextmate2との連動 databases.ymlの作成とGemの導入 作動させてみる warningに対応してみる default scope is evil isolate…

Continue Reading RuboCop vs Rails Best Pratices それぞれの特徴。初心者はどう使う?

RuboCopコミッタ、Pockeが語るBatsov像とアドバイス -SideCI技術顧問就任記念インタビュー

SideCIは、2018年4月より、RuboCopコミッタのPockeこと、桑原 仁雄氏を技術顧問に迎えました。これを記念し、Pocke氏に、RuboCopから、Bastov氏のこと、そして未来のコミッタたちへのアドバイスなどについてインタビューを行いました。

Continue Reading RuboCopコミッタ、Pockeが語るBatsov像とアドバイス -SideCI技術顧問就任記念インタビュー

Reactの開発チーム内でのJavaScriptの静的解析器ESLintの使われ方、設定、独自プラグイン

JavaScriptのための静的解析器ESLintが、facebook/reactにおいてどのように使われ、設定されているか、独自プラグインなどを解説する記事。fbjsなどFacebook社のESLintルールを主に採用。

Continue Reading Reactの開発チーム内でのJavaScriptの静的解析器ESLintの使われ方、設定、独自プラグイン

「SideCIのようなツールが開発プロセス中に存在するのは、ぼくが理想とする世界の一部を実現している」(まつもとゆきひろ氏)

  • Post author:
  • Post category:Uncategorized
  • Post comments:0 Comments

Ruby25周年を記念して学生時代からのRubyファンを公言するSideCI株式会社代表 角 幸一郎がRubyのパパである、まつもとゆきひろ氏にインタビューを行いました。 角 : Ruby25周年おめでとうございます。これまでRubyを開発していて嬉しかったことは、どんな時ですか? (左 : SideCI株式会社代表 角 幸一郎 右 : Ruby開発者 まつもとゆきひろ) まつもと : Rubyユーザーの皆様からこんないいことがありました!という報告が来るのは嬉しいですね。例えば、プログラミングを楽しくないなと思ってた学生がRubyを使うことによって楽しくできるようになったとか、Rubyを使っていい仕事をやり遂げたとか、給料があがりましたなど、そう言った話を結構聞きます。いい事柄ばかりでRubyの広告みたいになってしまいましたが、こういったプラスの現象を実現できているのは素晴らしいですよね。 角 : それは間違いないですね。私もRubyがなかったら卒業論文を無事に書き終えることができた気がしません。学生時代からRubyには、随分お世話になっていますし、SideCIのプロダクトも当初はRailsのコードをターゲットにして作られたものでした。 Rubyで大きな節目となった時期は? 角 : Rubyが広く普及していく過程で大きな節目になったのは、まつもとさんはいつだと考えますか。 まつもと : 1999年に私と石塚圭樹氏で書いたRubyの本が日本語で出て、2000年にはDave Thomas, Andy Huntが書いた『Programming…

Continue Reading 「SideCIのようなツールが開発プロセス中に存在するのは、ぼくが理想とする世界の一部を実現している」(まつもとゆきひろ氏)

PHPのコーディング規約まとめ。PSR-2, CakePHP, Symfony, WordPress, FuelPHPなどの5つの規約の概要と特徴的なルール

目次 PSR-2 Coding Style Guide CakePHPコーディング規約 Symfonyコーディング規約 WordPressコーディング規約 FuelPHPコーディング規約 参考記事集 チームで開発するにあたり、コーディング規約を決めておくことは重要です。コーディング規約を統一しておくことにより、綺麗で読みやすいコードとなりますし、コードレビューの差分も見やすいものとなります。 しかし、PHPのコーディング規約はフレームワークやPHPのバージョンなどによって異なります。 例えば、メソッド名がキャメルケース(camelCaseのように、小文字始まりで単語の区切りで大文字になるような文字列)だったり、スネークケース(snake_caseのようなアンダースコアつながりの文字列)だったり様々です。 名前空間やクラス名の規則、インデントやスペースの規則などもそれぞれ異なります。 本記事ではPHPで有名なコーディング規約をいくつか紹介します。 PSR-2 Coding Style Guide PSR とは PSRとは、PHP-FIG(PHP Framework Interop Group)が定めた規約です。 PHPには、Zend FarmeworkやSymfonyなど様々なフレームワークやライブラリがありますが、それぞれコーディング規約が微妙に異なっています。 そこで、各フレームワークの関係者が集まったグループPHP-FIGが、PHP共通でえるようなコーディング規約を決めたのがPSRです。 PSRにはPSR-0,PSR-1,PSR-2,PSR-4などの規約があります。 PSR-0とPSR-4はPHPのオートローダーのためのコーディング規約、PSR-1とPSR-2は標準コーディング規約になっています。…

Continue Reading PHPのコーディング規約まとめ。PSR-2, CakePHP, Symfony, WordPress, FuelPHPなどの5つの規約の概要と特徴的なルール

Rebuild.fmの宮川氏がRubyまつもと氏に聞いた、Ruby開発の10の論点

  • Post author:
  • Post category:Uncategorized
  • Post comments:0 Comments

当ブログですでにお伝えしたように、Ruby誕生25周年を記念して、2018年2月24日に東京・品川で「Ruby25」というイベントが開かれた。イベントではRubyの生みの親であるまつもとゆきひろ氏のほか、RubyやRuby on Rails開発の第一人者らが集まって現在のRubyの現状について講演を行った。 イベントの最後のセッションとして「Rubyの未来〜Matz & Miyagawa 未来を語る特別対談」が行われた。エンジニア向け人気ポッドキャスト「Rebuild.fm」を運営していることで知られる在米日本人エンジニアの宮川達彦氏(米FastlyのPrincipal Software Architect)が、まつもと氏に次々と質問を投げかけるスタイルの対談だ。 ここでは、まつもと氏の回答から浮かび上がるRuby開発にまつわる10の論点をお伝えしたい。 Ruby生みの親のまつもとゆきひろ氏(左)と、Rebuild.fmで知られる宮川達彦氏(右) Rubyの後継者問題は「Matz_bot」で解決!? 今回のRuby25イベントでは、まつもと氏へのサプライズとして実の娘2人から父まつもとゆきひろへ花束を贈るというシーンがあった。その光景が、まるで「Rubyから引退したように見えた」ことから「実際のところ後継者問題はどう考えていますか?」と宮川氏はジョークを交えて質問した。 まつもと:(Ruby開発リーダーの)後継者はボット、AIに任せようという意見があって進行中です(笑)。今のうちからデータを集めとかないと、という話をしています。 宮川:技術的には可能な気もしますけど、どうなんでしょうか。まつもとさんの好みとか意見を反映したボットというものですね。 まつもと:たぶん2分の1の確率で「名前が気に入らない」というと思うんですけど。名前がダメ、ちょっと考え直してっていうね(笑) Ruby開発における機能改善や追加提案では、提案者が実際のユースケースや良いベンチマークデータを示したとしても、メソッド名がRubyの世界の統一感にそぐわないと、そこで機能追加が止まるということがときどき起こる。Rubyでは「名前重要」というのが文化として定着していて、それを門番をしているのが他ならぬまつもと氏。まつもと氏が、ちょっとその名前は違うんだよなと言うと、しっくりと来る名前が考案されるまで機能追加パッチがペンディングになることがあるのだ。 まつもと:近い未来に私が事故とかに遭うとまずいんだけど、引退するときまでに今からデータとを集めておくと間に合う可能性が結構あるかもしれませんね。 宮川氏はここで「BDFLモデル」に言及した。オープンソース・プロジェクトにおけるガバナンスや意思決定の組織論として良く指摘されるのが「優しい終身の独裁者:Benevolent Dictator For Life」(Wikipediaの解説)のモデルだ。開発コミュニティーで意見が割れた際などに最終的な意思決定を行う人物として、そのプロジェクトの創設者が終身的にプロジェクトの中心に居続ける開発モデルのことだ。Ruby開発は多くのコア開発メンバーがいるが、最終的にRubyの方向性を決めるのはまつもと氏だ。 まつもと:ソフトウェアプロダクトとしてRubyを見たときに、そのデザインに対して少数の人が意見を出して方向性を決める。そういう「プロダクト・オーナー」とか「プロダクト・マネージャー」のようなヒトが1人のほうがいいと思うんですよ。Rubyの場合は私になっている。いい判断をしたら褒められるし、悪い判断をしたら私がけなされる。で、誰かがいい提案をして私が「うん」というと褒められる、という非常に素晴らしい仕組みになってるわけです(笑) (会場笑) Linuxのサブシステムのような開発の分業は可能か? BDFLモデルに続いて、宮川氏はLinuxカーネル開発のようにサブシステムによるデリゲート(移譲)はRubyでは可能か、直近のRubyコア開発ではどうなっているのかと質問を投げかけた。 まつもと:Rubyの場合はサブシステムはうまくいかないですね。Linuxみたいにファイルシステムはサブシステムで、そこから先はあまり本体に関係ありませんとか、スケジューラはここだけ変えると性能特性が改善しますとか、そういう感じではないんです。 Rubyでも文字列周りや正規表現は誰がやりますとか、バーチャルマシンは誰がやりますとか、緩やかなチーム分けみたいなのはあります。そこの技術判断について良い悪いということは私はあまり言わないです。彼らが自分で判断できると思っていますので。 でも、言語的にどんなメソッド追加するかとか、新しい機能をどうするか、名前をどうするかということについては、やっぱり最終的に優しい独裁者である私の判断が必要になってくるんですよね。25年も開発をやっていると一貫性といっても「昔はまつもとこう言ってたじゃん」という風に、必ずしも一貫していないこともあります(笑)。ただ、そうは言っても原則的にRubyというのは1人の人間のポリシーに沿って作った、という感じにはなってると思うんですよね。 Ruby3は連続開発モデルを採用してブランチは切らない…

Continue Reading Rebuild.fmの宮川氏がRubyまつもと氏に聞いた、Ruby開発の10の論点

もしOSに断絶があればRubyは死んでいた可能性が高い、まつもと氏がRuby25周年で講演

  • Post author:
  • Post category:Uncategorized
  • Post comments:1 Comment

もし過去のOSに断絶があったら、Rubyが絶命していた可能性はかなり高い。25年のRuby開発の歴史を振り返りつつ、そんな意外な見方を示したのはRubyの生みの親として知られる、まつもとゆきひろ氏だ。 日本生まれのプログラミング言語「Ruby」(ルビー)が25歳の誕生日を迎えた。Rubyが生まれたのは1993年2月24日のこと。それからちょうど25年目となる2018年2月24日に、Ruby25周年記念イベント「Ruby25(ルビー・トゥエンティーファイブ)」が、Rubyアソシエーションおよび日本Rubyの会の後援で東京の品川インターシティーで開催された。 基調講演を行ったまつもと氏は、25年を振り返りつつ、今後のコンピューティング環境の変化とRubyが取り組む技術の方向性について示唆深いトークを行った。ここではまつもと氏の講演と、それに先立って行われた日本Rubyの会代表理事、高橋征義氏の講演「Rubyの1/4世紀」から、Rubyの来し方、行く先を眺めてみよう。 Ruby25周年を祝う「Ruby25」で講演した、Ruby生みの親のまつもとゆきひろ氏 UNIXに収斂したOSのランドスケープ 多くのソフトウェアの寿命は数年とか、長くても10年程度と長くはない。プログラミング言語は一般のソフトウェアに比べると息が長いが、それにしてもRubyが25年にも渡って活発な開発を続けているのは驚異的だ。日本生まれで、コアのコミュニティーに日本人開発者が多いソフトウェアプロジェクトとしては、例外的な成功事例といっていい。 Ruby成功の要素にはウェブ開発フレームワーク、Ruby on Railsの存在がある。Ruby開発25年の歴史のちょうど折り返し地点、2005年に登場したRuby on RailsがRubyのエコシステムに果たした影響は無視できない。 今ではTwitterやGitHub、Airbnb、Uber、クックパッド、マネーフォワード、食べログなど多くのサービスがRuby on Railsで開発されている。その背景としてサーバーやクラウドの世界をLinuxが制覇して、開発プラットフォームとしてOSがUNIXへと収斂していった歴史があることは無視できない。まつもと氏は講演で、こんな風に指摘する。 「25年での変化は驚くほど小さい。たとえば、OSはUNIX系に収斂して、サーバーサイドはLinux、スパコンもLinuxになっている。CPUはARMもあるが、x86系に収斂した」 インターネットを支える基本的アーキテクチャーは劇的には変わっておらず、そうしたアーキテクチャーの安定性にRubyが救われた面があると、まつもと氏はいう。 「もし過去のOSに断絶があったら、Rubyが絶命していた可能性はかなり高い」 RubyはなぜRubyという名前になったのか? 1993年に「Ruby」という名前が決まった背景には、どういう経緯があったのだろうか? Rubyは、なぜRubyという名前になったのか。まつもと氏が振り返る。 「(スクリプト言語の)Perlにならって宝石の名前を付けました。Perlができるのと同じようなことができるのを目指していたんです。Rubyのほかにもサファイアとかダイアモンドなども候補だったもののタイプが面倒そうだったのでやめました。残ったCoral(サンゴ)とRubyを比較すると、Rubyのほうが高級感があるのでRubyに決めた」 Rubyは「Perlの次」としてデザインした面があって、次のような名称の偶然もあるのだという。 「6月の誕生石はPearl(真珠)で、Rubyは7月です。また、活字の大きさを表す単位として、pearlは5ポイント、rubyは『ルビ』の語源でもある5.5ポイントとなっています」 どちらを見てもRubyは「Perlの次」となっていた、というわけだ。 Rubyは名称ばかりでなく、多くの要素をPerlから取り入れている。そうした言語デザインについて「正直やりすぎた(笑)」と苦笑いするまつもと氏。最近は「Perlの次と言われるよりも、むしろPythonの隣とか言われる。あるいは斜め後ろとか(笑)」と自嘲気味に語って、25周年記念を祝いに集まったRubyファンから笑いを取っていた。 Ruby開発の25年とは、どんな25年だったのか Rubyの誕生日は1993年の2月24日だが、実は一般にRuby言語の実装が公開されたのは1995年のこと。では2月24日とは何の日なのか? 「Rubyがいつ生まれたのかというと、概念が誕生したのが誕生日だと思うんですね。ソフトウェアプロジェクトを始めるには名前を決める必要がある。その名前を決めたのが2月24日です。Rubyという名前が概念をRubyという言語を作ったと考えると1993年2月24日がRubyの誕生日です」(まつもと氏) 当初の1993〜1994年は実はまつもと氏が1人で開発していた時期。1995年12月21日にインターネットの掲示板(NetNews)でアナウンスした以下のメールが一般へのお披露目となった。 (画面)これがRubyを一般に公開するアナウンスの1995年のメール…

Continue Reading もしOSに断絶があればRubyは死んでいた可能性が高い、まつもと氏がRuby25周年で講演

Code Review Meetup #1 コードレビューで集まろうを開催しました。

少し珍しいコードレビューをテーマにしたMeetUpを当社主催で実施しました。 今回はその記念すべき第1回目です。金曜日の夜にもか関わらず、約40名のコードレビューに興味があるユーザに参加いただきました。 概要 開催日時 2018年1月19日(金) 19:00 - 20:45 開催場所 東京都渋谷区 Voyageグループ大会議室パンゲア 参加人数 約40名 主催 SideCI社 講演1 : エネチェンジ社でのSideCI利用事例について ゲスト講演としてエネチェンジ社のチーフエンジニア川西様より同社におけるSIdeCIの利用事例を紹介していただきました。 #SideCI で開発を アクセラレーションブースト!! pic.twitter.com/KEDSxafXxE— Koichiro, Sumi (@sumyapp) January 19, 2018 講演スライドはこちら…

Continue Reading Code Review Meetup #1 コードレビューで集まろうを開催しました。