Clojure

cstap

2017年4月7日

このインタビューは、日本のサイボウズ・スタートアップスの開発者である鹿沼生さんへのものです。

cstap

ClojureまたはClojureScriptを使ってどのような製品やサービスを構築していますか?

ClojureとClojureScriptを使って安否確認サービスを構築しました。

主な機能は以下のとおりです。

  • 気象庁からの災害情報(地震、津波など)やユーザーの操作によって、メールや通知をトリガーします。

  • ユーザーはメール/通知からアンケートにアクセスし、安全かどうか、仕事/通勤ができるかどうかなどの状況を回答できます。

  • 災害発生時の事業継続の意思決定に使用できる、回答の集計ビューを提供します。

システム全体は以下で構成されています。

  • メインのユーザー向けWebアプリケーション(Clojure/ClojureScript)

  • メール/通知を送信するワーカー(Clojure)

  • モバイルアプリ用のAPIサーバー(Clojure)

  • 外部システムがユーザーデータを更新できるようにするAPIサーバー(Clojure)

  • バックエンドの管理アプリケーション(Clojure/ClojureScript)

  • 主にAWS Elastic Beanstalkにデプロイしています。

ClojureまたはClojureScriptを使用しているチームの規模は?

私たちは3人のチームで、全員がサーバーサイドにClojure、フロントエンドにClojureScriptを使用しています。3人全員がEmacs + Ciderで開発しています。2人はLinuxマシンを使用し、1人はMacを使用しています。

ClojureまたはClojureScriptのライブラリで最も楽しく作業できたものは?

2つのライブラリについて言及したいと思います。

  • transit-clj - サーバーとブラウザ間でデータをやり取りする際の摩擦を大幅に軽減するため。これは他のほとんどの言語で共通の問題です。

  • bidi - これなしでは生きていけません!私たちのアプリには動的に生成されたURLがかなりあり、双方向ルーティングなしでそれらを作成するのは悪夢だったでしょう。

ClojureまたはClojureScriptを使用することで、最も価値があると感じるのはどのような点ですか?

  • REPLによるインタラクティブな開発と、Ciderやfigwheelのような優れたツールにより、非常に迅速な反復が可能になります。

  • プログラムを非常にシンプルで理解しやすくするためのイミュータブルなデータ構造

  • フロントエンドとバックエンド間でコードを共有する機能

ClojureまたはClojureScriptを使用することは、ビジネスにとってなぜ価値があるのですか?

技術的な利点とは別に、私たちは技術ブランディングのためにClojureに焦点を当てて投資しています。その究極の目標は、才能のあるエンジニアを採用することです。ブランディングにとって重要だった要素は次のとおりです。

  • 長く続くもの(ライブラリ/フレームワークではなくプログラミング言語)

  • エンジニアの成長を助けるもの

  • エンジニアをワクワクさせるもの

  • それに関心のあるエンジニアは才能がある傾向があるもの

  • 小規模なチームを維持したかったので、人気がある必要はありませんでした

  • 採用競争が少ない

  • 日本で一番になれるもの

Clojureはこれらの要素によく合致しており、今のところ結果に満足しています。それが、私たちのチームの3人のメンバー(全員がClojureを愛している)が集まった方法であり、毎月1〜2件の応募を常に受け取っています。(ご参考までに:日本で採用中です!→ https://cstap.com/jobs/dev-engineer.html

Clojureのストーリーを共有したい場合は、このフォームに記入してください。