2018年4月19日
ClojureまたはClojureScriptでどのような製品やサービスを構築していますか?
Stitch(ステッチ)は、SalesforceやFacebook Adsなどのツールに接続し、それらのプラットフォームからデータを一元的な場所(データウェアハウス)に統合して分析できるようにするETL(抽出、変換、ロード)サービスです。
Clojureを使い始めてどれくらいですか?
2016年の創業以来、本番環境でClojureを使用しています。初期のチームメンバーの多くは、以前の職場でClojureを使用していたため、当然の選択でした。
チームの規模はどれくらいですか?
Clojureでバックエンドサービスを開発しているエンジニアは12人います。
最も気に入っているClojureライブラリは何ですか?
ring、compojure、http-kitなど、いくつかの異なるネイティブClojureライブラリを使用しています。ただし、特定の目的に対して十分にサポートされたJavaライブラリが存在する場合は、Javaバージョンを使用し、Clojureの優れたJava相互運用性サポートに頼る傾向があります。たとえば、さまざまなAWSサービス、Apache ZooKeeper、Apache KafkaのJavaクライアントライブラリを使用しています。
ClojureまたはClojureScriptのお気に入りの機能は何ですか?
たくさんありますが、いくつか際立ったものがあります
イミュータビリティ。参照透過性に可能な限り依存するように努めており、これによりアプリケーションのテストと理解が容易になります。
インタラクティブな開発。私たちの多くはCIDERを搭載したEmacsを使用しており、インタラクティブに開発、デバッグ、テストを行うことができます。
使用しているスタックは何ですか?
Webサービスは、ELBロードバランサーの背後にあるAWS EC2インスタンスで実行されています。WebサーバーとしてringとJettyを使用しています。新しいデータベースのほとんどはPostgres RDSです。一部のアプリケーションでは、キャッシュにRedisを使用しています。
実際のデータパイプラインは、Kafkaにデータを格納するClojure Webサービスと、データを宛先にルーティング、変換、ロードするさらにいくつかの小さなClojureサービスによってフロントされています。
ClojureまたはClojureScriptを使用することは、ビジネスにとってなぜ重要ですか?
Clojureを使用することで、他の言語で記述した場合よりもシンプルで、小さく、理解しやすい堅牢なアプリケーションを開発できます。Javaライブラリのエコシステム全体を利用できます。開発者は、実行中のJVMに接続してコードを実行することにより、問題を迅速にデバッグできます。また、clojure.testとnREPL接続のインタラクティブ性を組み合わせることで、緊密な反復的なTDDループを使用して迅速にプロトタイプを作成できます。
Clojureのストーリーを共有したい場合は、こちらのフォームにご記入ください。