LAPRASを作り上げているOSSについて

LAPRASでは、2020年3月31日まで #LAPRAS春のOSS祭り を開催していました。キャンペーン中には多くの方から日頃活用しているOSSへの感謝の言葉や、自身がコントリビュートしているOSSについて投稿していただきました。

一方で、個人だけでなく企業もOSSを活用しています。
今回の記事では、みなさんに提供しているLAPRASのプロダクトで活用しているOSSについてエンジニアの那須(@nasum360)へのインタビューを通して紹介します。


《プロフィール》
那須 理也(@nasum360):
東京電機大学大学院未来科学研究科卒業後、株式会社ジャストシステムに入社。その後株式会社クラウドワークスに転職し、Ruby on Rails での開発を経験。技術で世の中に貢献したいと考え、LAPRAS株式会社にジョイン。また、趣味で使っていたVue.jsが講じて「Hello!! Vue.js」を2018年にインプレスR&Dより出版。「コンテナ時代のWebサービスの作り方」を執筆。本作りが趣味になりつつある。

LAPRASのフロントエンドを作り上げているVue.js

ー LAPRASで活用しているOSSにはどんなものがありますか?

言語やフレームワークといった大きなものでいえば、フロントで活用しているVue.js、それからアプリケーション開発のメインで活用しているPython、Djangoといったものがあります。

それに付随してVue.js関連のOSSは広く活用していますね。
例えば、スクロールをスムーズに行うためのvue-scrolltoを使っていたり、ローディングの表示で使っているアニメーションはElementというコンポーネントライブラリにある素材を使っています。すごく細かいところでは、スコアの補足として表示しているhelpの(?)というアイコンはElementのツールチップのコンポーネントを使っていますね。
LAPRASのユーザーが実際に見ている画面ではこういったVue.js、サードパーティ製のコンポーネントなどが豊富に活用されています。

クローラー開発でもOSSを活用していますか?

ScrapyというPythonでクローラーを作るためのフレームワークを採用しています。
現在はElixirなども活用していますがScrapyで開発しているものも多くあります。

情報を収集するためのクローラー以外にも、クロールした情報を表示するためにDjango REST frameworkを使って内部向けのAPIを開発しています。

もちろん、他にも細かいOSSを活用していますが挙げていくとキリがないですね。


ー 那須さんはフロント周りの設計・開発を主に行っているんですか?

そうですね。スクラムで開発している組織体制もあって、フロントからサーバサイドまで広く触っていますが、フロントの改善は私が行うことが多いですね。


ー これがないとLAPRASの開発はうまくいかなかった、というOSSはありますか?

やっぱりVue.jsは無いと非常に困りますね。
Vue.jsはProgressive Frameworkという概念で、段階的にアプリケーションを成長させていくことに長けています。LAPRASを作り始めた初期は、スモールに素早く開発していくことが重要だったのでVue.jsがとてもマッチしていました。

また、企業向けサービスのLAPRASからLAPRAS SCOUTの情報を取得するために、gRPCをPythonで使えるライブラリのgrpcioはよく活用しています。
REST APIを作ってそれを使うということもできたのですが、その場合はAPIの仕様を固めなければいけないため、その工程が面倒だったんです。gRPCを使えば、関数を直接叩くように別のサービスの関数を使えるのでとても便利でした。

「寄付やイベント支援もあり」コードだけがOSS貢献ではない

ー 那須さんが個人的に重宝しているOSSはありますか?

さっきお話した内容に関連するんですが、gRPCサーバに対してテストしたい時に活用しているコマンドラインツールのEvansにはとても助かっています。EvansがなければgRPCでの開発効率は落ちてしまっていたと思いますね。

個人的にもEvansはすごく好きで、GitHub上でのスポンサープログラムを使って寄付をしています。
個人で行っているので金額は大きくはありませんが、少しでも感謝の想いを伝えられればと思って行っています。

寄付を行うとGitHub上でバッジがもらえるので、それをLAPRAS上でも反映できたら面白いと思いますね。

ー 那須さん自身のOSS活動について教えてください

過去にはドキュメントの和訳を行っていたことがあります。
最近は思うように時間をとることができていないということもあり、先ほどお話ししたような寄付などを通してOSSを応援しています。また、Vue.jsのコミュニティに参加してイベント運営をサポートすることで技術を広めるということも行っています。

GitHubのOpen Source Guidesにも書かれている通り、コードを書くだけではなく、イベント支援やドキュメント改善、場合によってはロゴなどのビジュアルデザインもOSS貢献です。


ー ドキュメントの誤りを訂正するという提案も、コード改善ではないですが誰かの役に立っていますよね

そう思います。
私自身もドキュメントのリンク切れや誤りの修正を提案することがあります。
これはドキュメントもコードも同じで、自分が読んだり試したりする中で「おかしいな」「うまくいかないな」と思ったところを何故なのか考えて改善提案すると良いです。同じところでつまづく人もきっといるはずだからです。

まだOSS活動をやったことがない人も、自分がつまづいたところの改善について考えてみるところから始めてみると良いと思いますね。

記事内で紹介したOSS

Vue.js

Python

Django

vue-scrollto

vue-scrollto.netlify.com
vue-scrollto
https://vue-scrollto.netlify.com
Adds a directive that listens for click events and scrolls to elements.

Element


Scrapy

Django REST framework

grpcio

Evans


あなたのスコアを見てみませんか?

LAPRASは、Web上のアウトプットから個人のスキルや志向性を可視化したポートフォリオを自動生成しています。
GitHub、Qiita、Twitterのアカウントがあれば本人認証後すぐにポートフォリオを確認できます。

LAPRASへのログインはこちらから。