基礎から実践アプリケーション開発まで』の発売を記念して,著者陣にVue.js関連のインタビューを行いました。Vue.jsを採用したのか,どのように使っているのか,そしてバージョン3のアナウンスでますます注目が集まるVue.jsの今後まで,さまざまな話題について伺った模様をお届けします。Vue.jsをどうして,どのように使っているのか。――今回はVueを使う理由や,Vueの今後についてみなさんにインタビューしていきます。Vue.jsをプロジェクトに採用したのでしょうか?手島:ちょっと昔話になりますが,初めてVueを導入したのはv1.0より以前のタイミングでした。v0.8とか(笑⁠)⁠。Vue.js,React,Angularの中から検討の上でVue.js採用に踏み切っています。当時の職場ではHTML/CSSに特化してマークアップを書く担当者がいて,そのような方の成果物をSPAとして組み込む際にJSXだと少し難しいという理由でReactの導入は敬遠しました。(⁠シンタックス的に同じようにHTMLの知識が活かせる)Angularを使わないで,Vueを採用した理由は本体のファイルサイズですね。モバイルのwebview内でのアプリの実装だったので軽量なライブラリを探していました。Angularは大きすぎました。軽量という観点でVueを選択しました。使ってみると,黒魔術的な要素も少なめでスムーズに開発できて気に入りました。川口:開発速度を高めるために,jQuery依存から脱却したいというモチベーションからVue.jsを導入しています。シンプルさや強力さが魅力です。私も同じくv1リリース前に導入検証を始めています。詳しくは『Vue.js入門』のまえがきを読んでください。――開発にはどんなエディターやIDEを利用していますか?野田:エディターは現在VSCodeを使っていて,extensionのVeturを活用しています。Text,Atomを使っていてVSCodeに乗り換えました。――VSCode+Veturは皆さん使っているようですね。書籍中でも紹介されていました。Routerは使っています。SPAのようなものを作るなら,これは当然欠かせないライブラリです。多くのVue.jsユーザーが使っているはずです。objectを作って,ストアパターンを実現しています。Vueの中から探して使ったりすることもあります。――必ずしも名前のよく出るライブラリを全部使うというわけではないんですね。Vue.js人気は盤石か。――Vue.jsは凄まじいスピードでユーザーを増やしているように思います。Vue.jsの求人市場,実際のユーザーの増加についてはどうでしょうか?喜多:具体的な数は分かりませんが,自分の周囲で求人が増えてきているような気がします。リリースから3~5年が経過したウェブサービスを開発している会社でVue.jsの求人を見かけるようになりました。開発初期(3~5年前)に選択した技術がレガシー化し,サービスの成長の足かせになっているため,Vue.jsで一部あるいは全体を作り直そうとしているからでしょう。野田:同じく具体的な数はわからないのですが,身近なところでも求人は増えている感覚はあります。私自身,会社の採用活動に携わる中で,Vue.jsを書いたことがある,興味がある方が増えていると実感しています。手島:私は社員数10名未満のスタートアップからVueの実装の相談を受けたりします。他にも50名前後の企業からもVue.js人材が欲しいと声をかけられたりしています。今年に入ってからすごく求人数も増えてきているんじゃないかと思います。現在,日本の若手エンジニアがJSで何か作る際には一番最初にVueと言う選択肢が上がるようなポジションになっているような肌感です。――Vue.jsの人気は手堅いようですね。現在国内で人気のあるフレームワークとしてはVue.js,Angular,Reactがトップ3だと思います。これらを脅かすようなフレームワークの登場,フレームワークの乱立期(フレームワーク戦争)はまだ続くのでしょうか?川口:フレームワークの選択については安定期に入ってきたと見てよいでしょう。これから(近いうちに⁠)⁠,まださまざまなフレームワークが出現してくる可能性は低いと考えています。――一時期は雨後の筍のごとく次々新しいフレームワークが登場し,常に「使ってみた」記事が書かれていた印象があります。落ち着いてきたのでしょうか?川口:主な理由は次の2点です。Webフロントエンドにおけるアプリケーションアーキテクチャが確立したことWebフロントエンドの開発環境周りのサポートが必須なこと――アーキテクチャの確立とは具体的にどういうことでしょうか?川口:そもそもフレームワークの乱立ともいえる事態が起きた背景から考えてみましょう。HTML5の登場によってWebアプリケーションの比重がサーバサイドからクライアントサイドに移り,フロントエンドが複雑化したこと,その課題を解決するための手段が必要になったのがJavaScriptフレームワークの登場の理由です。もろもろの課題が出現し,過渡期には多くのフレームワークがそれぞれの方法論で対処しようと登場してきます。代表的な課題の1つが旧来型のアーキテクチャで対応しきれないという問題です。従来はアプリケーションアーキテクチャとしてMVCアーキテクチャがありました。高度化するフロントエンド開発において,MVCは状態管理に欠点があり,アプリケーションをスケールさせるには力不足でした。その結果,状態を一元管理でき,かつデータフローを単方向にすることでアプリケーションをスケール可能にしたFluxが生まれます。現状,主要なフレームワークは,Fluxと同等の概念を持ったアーキテクチャをサポートしています。いくつもの事例が積み重なり,アーキテクチャなど課題に対する解決法が固まったことで,新しいフレームワークをつくるモチベーションが乱立期に比べると低くなっています。――アーキテクチャの確立でライブラリの定番化が進んだことで,新しいフレームワークは出づらくなったんですね。ツールの点についてはどうでしょうか?川口:Webフロントエンドで実践的に開発するには多くのツールが必要です。BabelやTypeScriptといったトランスパイラ,ESLint(静的型検証ツール⁠)⁠,Webpack(バンドリングツール)など,さまざまなものが用いられます。これらを利用することは,アプリケーション開発の生産性,堅固性,そして保守性の向上に直結します。いったエコシステムを自前で一から構築,維持管理するのはかなりの労力が要ります。そのため,現在の主要なフレームワークはCLIツールなどを提供して,この手間を軽減しています。現在使われているフレームワークは本体だけではなく,開発ツールやエコシステムまで統合的に提供し,開発しやすさに気を配っているということです。完全に新規のフレームワークが,現在使われているものと同等以上のツール(エコシステム)の使い勝手を実現するのは困難です。そのため,仮にライブラリが新規に参入しても利用者が増えず使われないという側面はあるでしょう。CLI,Angularのangular-cli,Reactのcreate-react-appなどでしょうか?川口:そうです。主要なフレームワークには,機能の多寡はあれどCLIツールがそろっています。CLIがもたらす効率化について『Vue.js入門』でも強調していました。CLIはどんなところですぐれているのでしょうか?川口:すぐに使える利便性と柔軟な拡張性でしょう。CLIは,素晴らしいツールに仕上がっています。v3で単なる開発環境構築ツールではなく,開発生産性を高める開発支援ツールに進化しました。Vue.jsで本格的な開発をしたいなら,積極的に利用すべきです。コマンド1つで開発環境を一式用意できる利便性は他ツール同様当然備えています。v3ではプラグインアーキテクチャを取り入れているのが大きな特徴です。利便性に加えて,高い拡張性を誇ります。サードパーティが提供するプラグインでプロジェクトそのものを柔軟にカスタマイズできます。v3以前は,テンプレートからアプリケーション開発プロジェクトをスキャフォールディングする形式でした。これも十分実用的でしたが,v3以降は,テンプレートベースからプラグインベースのアーキテクチャに移行することで,セットアップされたツールをアップグレードできたり,独自にwebpackの差分設定できたり柔軟性が向上しています。――Web技術が安定期になって,もう新しいフレームワークは全く登場しないと考えていいのでしょうか?川口:必ずしもそうとは言えません。HTTP2,GraphQL,WebComponents,PWA,ServiceWorker,WebWorker,WebAssemblyといったように,今後も様々な技術が出現してWebアプリケーションでの表現力がさらに高まっていきます。現在は安定期にありますが,新しい技術とそこから発生した課題を解決するために,再度必要に迫られて新たなフレームワークが出てくることもありるでしょう。3.0について――Vueといえば作者の次メジャーバージョンへの言及が話題になりました。3.0はどんなリリースになるんでしょうか。3.0については,先日,Vue.js公式ブログで計画が公開されました。Vue.js(英語)Vue.jsにおける次のイテレーションの計画(日本語訳)現時点(対談時点)では,作者のEvan氏がプロトタイピングしたコードをベースに,コアチーム内部で議論している段階です。――すぐに出る,試せる状況ではないということですね。TypeScriptによってフルスクラッチ実装されるのが大きいでしょう。Vue.jsが他のフレームワークと比較して弱点となっているものとして,型システムのサポートが(比較的)弱いという点があります。Vue.jsコア本体がTypeScriptで実装されることにより,必然的にアプリケーション開発においても型システムのサポートが受けられるようになります。これにより,特に大規模なアプリケーション開発においては,より堅固なものを提供することができるようになるでしょう。詳細内容についてはブログにゆずります。上述のブログを読んでみてください。Vue.jsの今後など気になるトピックも多く出てきたインタビューでした。日本でのVue.js人気は高まり続けています。2018も開催されました。カンファレンス開催後の公開資料などは参考になるはずです。興味のある方はTwitterのvuefesタグを追ってみましょう。JavaScriptフレームワーク著者プロフィール川口和也(かわぐちかずや)Vue.jsコアチームメンバ。オープンソースソフトウェア活動に関わりながら,日本のVue.js日本ユーザーグループの代表であり,コミュニティの運営活動をしている。Enthusiast(エンスージアスト:熱狂者)でもある。Webフロントエンド技術以外に,関心のあるWebAssemblyなどの最新Web技術動向も追いかけている。フルタイムオープンソースソフトウェア開発者としての活動を模索中。GitHub:kazuponTwitter:@kazu_ponPatreon:kazupon喜多啓介(きたけいすけ)LINE株式会社にて,JavaScriptを中心にクライアントサイドの実装を担当。Vue.jsの柔軟性に注目し,業務・趣味を問わず活用している。GitHub:kitakTwitter:@kitak野田陽平(のだようへい)IBMにて電子情報開示関連のソフトウェア開発にQA及びフロントエンドエンジニアとして約5年間携わる。その後株式会社プレイドに入社し,CX(顧客体験)プラットフォームKARTEの開発を行う。GitHub:positiveflatTwitter:@positiveflat手島拓也(てじまたくや)IBMやLINEにて主にWeb製品開発を約7年間担当。その後,共同創業者兼CTOとしてUPSTAYを設立,事業譲渡を経験。Asiaを設立し代表を務める。基礎から実践アプリケーション開発までVue.jsを初歩から実践まで徹底的に解説。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。