2017年8月7日
我们与LendUp 讨论了他们如何使用 Clojure。
你们使用 Clojure 多久了?
我们从 2016 年开始在生产环境中使用 Clojure。
你们的团队规模有多大?
目前,我们大约有 5 名来自数据平台和核心服务团队的工程师完全使用 Clojure 开发工具和服务。
你们正在使用 Clojure 构建什么产品或服务?
LendUp 数据工程团队开始在生产环境中使用 Clojure 来引导一些围绕一些现有 ETL 管道的工具。这个实验被证明非常成功,随着我们开始发展我们的架构并转向更面向服务的模式,我们也开始在系统的其他部分更广泛地采用 Clojure。我们现在拥有支持我们数据管道和核心实时决策与服务基础设施的 Clojure 服务和工具。
你们最喜欢使用哪个 Clojure 库?
我们在 LendUp 广泛使用Ring 和Schema。Ring 是一个优雅的 Web 框架,使我们能够快速启动 Web 应用程序并利用大量预先编写的中间件。来自 Java 背景,我们确实想念静态类型检查。Schema 库是完整类型系统的可靠替代方案,它帮助我们确保了内部函数和外部服务之间数据的契约。
你们最喜欢 Clojure 或 ClojureScript 的哪个特性?
一些语言特性,特别是“代码即数据”和宏支持的能力,使我们能够创建非常有效的 DSL 来表达非常复杂的业务逻辑。语言和数据结构中内置的对不变性的支持也从根本上改变了我们的代码库和数据架构。
你们的技术栈是什么?
LendUp 后端主要构建在 Java 之上。我们也有用 Python 和 Clojure 编写的生产服务。在前端方面,公司最初使用 Backbone,并已逐渐迁移到 React + GraphQL。
使用 Clojure 或 ClojureScript 对你们的业务有什么价值?
在 LendUp,我们有一套指导我们个人和团队的工程价值观:实用主义、简单性、坚持不懈、协作、所有权和卓越。Clojure 非常符合我们的价值观体系。它使企业软件开发变得更加有趣。我们能够更快地迭代更改,构建可组合且专注的组件,利用大量经过实战考验的、可用于生产的 Java 库,并且我们拥有更小的代码库需要维护。
如果您想分享您的 Clojure 故事,请填写此表单。