分12サイバーエージェントでは,スマートフォン向けWebアプリケーション開発に活用できるツールキット「beez」(⁠図1)と,ブラウザ向けのサウンドライブラリである「boombox.js」をオープンソースで公開しました。これらの開発に携わった船ヶ山慶氏と平木聡氏(写真)に,開発の背景やそれぞれの特長などについて伺います。beezサイバーエージェントがOSSとして公開した開発ツールキット「beez⁠」⁠。――まずbeezを開発することになった背景から教えてください。船ヶ山:現在,Webサービスの開発で利用できるフレームワークやライブラリは数多く公開されています。サイバーエージェントには,エンジニアがそれらを自由に選択して使ってよいという文化がありますが,個々のエンジニアが使っているものがあまりにバラバラだとノウハウの蓄積が進まず,また開発速度の面でもマイナスです。実際,そのような背景からトラブルが発生したこともあり,フレームワークなどを取りまとめて使い勝手の良い環境を作りましょう,ということでbeezの開発を始めました。――beezでは,具体的にどのようなしくみを提供しているのでしょうか。船ヶ山:Backbone.jsやRequireJSといったフレームワークやライブラリを,一貫性のあるAPIで利用可能にするラッパーとしての機能がまずあります。開発サーバやステージングサーバ,本番サーバといった環境の違いを設定ファイルで吸収し,ビルドやデプロイの手間を軽減するしくみを盛り込みました。画像の圧縮,StylusやHandlebarsの自動コンパイルなどをワンステップで行える機能もあります。ローカルで使えるWebサーバも組み込みました。修正したアプリケーションの挙動を見るのに,いちいち開発用のWebサーバにアップロードするのは面倒ですよね。beezのローカルサーバを使えば,わざわざサーバにファイルをアップロードせずに,ローカル環境で確認できます(図2⁠)⁠。ファイルの自動リロードにも対応しているため,ソース変更の確認にローカルサーバを再起動する手間もありません。beezに含まれるサンプルアプリWebサーバも付属しているため,開発した内容を手元のマシンを利用して即座に確認できるなど,開発に便利な機能を多数盛り込んでいる平木:Backbone.jsなど複数のフレームワークやライブラリを使って開発する場合,多人数になるとどうしてもAPIの使い方やコードの書き方がバラバラになってしまいます。beezでは一貫性のあるAPIで利用できるため,規約で縛るといったことをしなくても,エンジニアによって大きく書き方が変わってしまう問題を防げます。Managerというオブジェクトコンテナでモジュールを一括管理し,依存関係の問題を解決できるようにしています。このため,特に中~大規模のWebアプリケーション開発では有効ではないかと考えています。船ヶ山:beezの中で使っているフレームワークやライブラリのノウハウをそのまま使えることも大きな特長です。Backbone.jsなどであれば,Googleで検索すればさまざまな情報が得られます。beezでは,そうしたノウハウを極力そのまま使えるようにしています。――開発されている中で,こだわられたのはどういった部分でしょうか。船ヶ山:ソースコードを読まなくても,APIの名前だけで推測できるように一貫性を持たせるといったところには気を配りました。MVCのモデルとビュー,コンテナで同じ機能であれば,APIも同じ名前にするといった部分です。平木:Webサービスの開発で必要だと思われる機能を採り入れることもこだわりました。Backbone.jsやAngularJSといったライブラリよりも,もう少しサービスを開発するために必要な機能を追加するというイメージです。――開発中に,周りのエンジニアから要望を受けることはありましたか。船ヶ山:ありましたね。beezに組み込んでいるWebサーバは,最初は単純にファイルを返すだけのものでしたが,実際に利用しているエンジニアからStylusやHandlebarsのコンパイルを自動化してほしいとか,CSSスプライトを自動生成してほしいといった要望があり,それらの声に応える形で機能強化を図りました。スマートフォン向けのゲームやWebサービスを開発するために必要で,なおかつ共通化できる機能はひたすら取り込んでいったという感じです。――今後のアップデートについては,どのように考えていますか。船ヶ山:スマートフォン向けのWebアプリケーション開発に必要な機能はおおよそ盛り込めたので,現状では新機能を追加する予定はありません。新しいCSSプリプロセッサですごく良いものが登場すれば,それを既存のものと置き換えるといったことはするかもしれません。バックエンドで使っているBackbone.jsやHandlebars.js,Stylusなどがバージョンアップすれば,それに追従することも検討します。平木:beezそのものに手を入れるわけではありませんが,jQueryに対するjQueryプラグインのような形で周辺環境は整備していきたいと思っています。実際,私たちの開発チームの中でもユーザインタフェースの開発に使えるプラグインなどをいくつか作っているので,その中から公開できるものをGitHubにアップしていく予定です。サウンドライブラリ著者プロフィール川添貴生(かわぞえたかお)株式会社インサイトイメージ代表取締役。企業サイトの構築及び運用支援のほか、エンタープライズ領域を中心に執筆活動を展開している。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。