关于服务
翻译我是一名Clojure开发者,创建在JVM上运行的功能性后端服务和数据处理应用程序。我的工作核心是不可变数据结构、纯函数和一种组合风格,程序由小的、清晰命名的部分构建,你可以实际推理。由于Clojure是Lisp,我的主要工具是REPL:我以交互方式发展程序,直接在实时数据上评估表达式,并在过程中完善设计,而不是事先猜测一切然后再调试。这是一种独特的学科,不同于使用Java、Scala或Elixir,我将其视为一种独立的工艺,而不是带括号的Java。
在多线程方面,我诚实地使用语言提供的工具:原子、引用、代理和core.async通道——按任务,而不是按时尚。我在Ring和reitit上构建了REST和流HTTP服务,通过spec和Malli描述数据,通过next.jdbc和HoneySQL与Postgres合作,使用变换器和惰性序列处理大量数据,以保持内存平坦。我关心与周围JVM生态系统的仔细集成、合理的错误处理和良好的无聊部署。如果代码变得错综复杂,我会将其恢复到干净的核心和薄边缘,带有效果。
如果你有一个必须在负载下正确的服务,一个必须保持可维护的数据管道,或者一个卡在中途的Clojure项目,我会接手并推动它向前发展。我编写修复行为的测试,记录复杂的地方,并留下一个健康的REPL过程,以便下一个人从第一天起就能高效工作。
—— 在JVM上使用Clojure和ClojureScript的后端服务
—— 在Ring、reitit和core.async上的REST和流API
—— 通过clojure.spec和Malli进行数据建模和验证
—— 通过next.jdbc、HoneySQL和连接池与Postgres合作
—— 使用原子、引用、代理和通道进行多线程
—— 变换器、惰性序列、大量处理
—— REPL驱动开发、测试和重构为纯函数
在多线程方面,我诚实地使用语言提供的工具:原子、引用、代理和core.async通道——按任务,而不是按时尚。我在Ring和reitit上构建了REST和流HTTP服务,通过spec和Malli描述数据,通过next.jdbc和HoneySQL与Postgres合作,使用变换器和惰性序列处理大量数据,以保持内存平坦。我关心与周围JVM生态系统的仔细集成、合理的错误处理和良好的无聊部署。如果代码变得错综复杂,我会将其恢复到干净的核心和薄边缘,带有效果。
如果你有一个必须在负载下正确的服务,一个必须保持可维护的数据管道,或者一个卡在中途的Clojure项目,我会接手并推动它向前发展。我编写修复行为的测试,记录复杂的地方,并留下一个健康的REPL过程,以便下一个人从第一天起就能高效工作。
—— 在JVM上使用Clojure和ClojureScript的后端服务
—— 在Ring、reitit和core.async上的REST和流API
—— 通过clojure.spec和Malli进行数据建模和验证
—— 通过next.jdbc、HoneySQL和连接池与Postgres合作
—— 使用原子、引用、代理和通道进行多线程
—— 变换器、惰性序列、大量处理
—— REPL驱动开发、测试和重构为纯函数