【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Dark 发布内部测试版,旨在降低后端开发的复杂性

  • 2019-10-29
  • 本文字数:1284 字

    阅读完需:约 4 分钟

Dark发布内部测试版,旨在降低后端开发的复杂性

Dark 在 9 月份发布了内部测试版,旨在通过减低复杂性来简化后端开发。Dark 是一种编程语言,提供了一个集成编辑器,用于开发后端应用程序。


Dark 主要关注四个基础设施问题:HTTP 端点、数据存储、后台工作进程和作业调度。Dark 可以实现、托管和自动伸缩基础设施,为开发人员抽离基础设施的配置和实现。


开发人员可以在 Dark 的结构化编辑器中编写应用程序代码,Dark 已经与编辑器紧密集成在一起了。因此,Dark 的自动完成功能可以识别整个应用程序的变动。开发者可以在编辑器中实时查看用户请求。代码变更可以被立即部署,然后使用功能开关启用这些变更,从而在保持部署安全性的同时消除了对部署管道的依赖。


InfoQ 采访了 Dark 的联合创始人 Ellen Chisa,了解了更多有关 Dark 的理念和设计。


InfoQ:有关 Dark 的想法是如何产生的,是什么促使你创办了这家公司?


Ellen Chisa:另一位联合创始人 Paul 和我因为不同的原因进入到这个领域。在从事了多年的软件相关工作(包括获得一个编译器方面的博士学位和创办 CircleCI)之后,Paul 仍然觉得开发后端应用程序需要编写大量相似的样板代码,并一次又一次地创建相同的工具链。而我曾经在消费品公司工作,我看到了太多的案例,基础设施和工具导致我们无法像希望的那样快速有效地将应用程序交付给客户。


InfoQ:在说到 Dark 试图要解决的问题时,你提到了 Frederick P. Brooks 的“意外复杂性”这个概念。那么,Dark 要解决哪些与软件意外复杂性有关的问题呢?


Ellen Chisa:意外复杂性最初用来指代与在计算机上运行代码相关的任务(比如内存管理)。当时,Brooks 认为我们不可能把事情做得更好,因为大多数任务都不是偶然性的。今天,随着云计算和分布式系统的发展,开发人员将大量时间花在与系统相关的任务上,而不是花在业务逻辑上——基础设施、部署、API 重试逻辑、开发/生产对等、依赖关系管理,等等。Dark 的目标就是要降低这些复杂性。


InfoQ: Dark 在开发环境和数据库方面使用了大量的功能。请告诉我更多有关这个设计的决策,以及为什么它是 Dark 的一个非常重要的特性。


Ellen Chisa:功能开关是现代软件开发的一种最佳实践,也是我们软件发布方式一个重大转变。过去,我们通过部署来决定用户在什么时候得到什么版本的软件。有了功能开关之后,我们就有了更多的细粒度的控制权。我们可以为一个测试组或一组特定的用户提供某些功能。通过添加功能开关,部署就变成了意外的复杂性,与交付无关。功能开关是 Dark 最基本的组成部分,既可以作为交付方式的一部分,也可以作为团队协作方式的一部分。


InfoQ:Dark 如何在为用户提供足够的控制能力和应用程序可观察性的同时消除复杂性?


Ellen Chisa:在考虑 Dark 的开发体验时,我们想到的是开发人员在进行开发工作时最核心的东西,以及它对他们要交付的软件将产生哪些潜在影响。例如,一致性或可用性对于某个服务是否重要。我们还根据 Dark 用户的反馈来安排优先级。


Dark 发布了内部测试版,对于可控的项目和刚要启动的项目可以考虑使用 Dark。要申请使用内部测试版或了解更多相关信息,可以访问 Dark 的官方网站


原文链接


Minimizing Backend Complexity With Dark


2019-10-29 08:001511

评论

发布
暂无评论
发现更多内容

eBPF 完美搭档:连接云原生网络的 Cilium

火山引擎边缘云

边缘计算 ebpf 云原生网络 cllium

鲲鹏DevKit & BoostKit直播解密:如何“做开发者的开发者”

科技热闻

盘一盘常见的6种索引失效情况

华为云开发者联盟

MySQL 索引 字符串 查询 索引失效

超硬核攻略!《2022金融云原生落地实用指南》重磅发布(限时免费下载)

York

『The ShardingSphere Global Echo』Vol.4

SphereEx

数据库 开源 中间件 ShardingSphere SphereEx

学生管理系统的架构文档

卡西毛豆静爸

「架构实战营」

UMEM:友盟统计自定义事件多应用一键同步 & 批处理工具

SamgeApp

Docker Vue 友盟助手 友盟自定义事件批处理 友盟统计

数据库读写分离如何保证主从一致性?

蜜糖的代码注释

MySQL 数据库 2月月更

Clusterpedia 加持 kubectl,检索多集群资源

Daocloud 道客

云原生 开源项目 K8s 多集群管理

系统学习 TypeScript(二)——开发流程和语法规则

编程三昧

typescript 前端 2月月更

存储新图谱:DNA存储的边界与天地

脑极体

基于CC2530设计的智能风扇

DS小龙哥

2月月更 智能风扇

学生管理系统的架构设计

凌波微步

「架构实战营」

百度可观测系列 | 采集亿级别指标,Prometheus 集群方案这样设计

百度开发者中心

CNCF 沙箱项目 OCM Placement 多集群调度指南

阿里巴巴云原生

阿里云 云原生 OCM Placement

关于MVVM和MVC,面试看这篇就够了

山河已无恙

mvc 全栈 MVVM 2月月更

Nginx跨域解决配置示例

nginx 跨域

好用不卡,这些插件和配置让你的 Webstorm 更牛逼!

前端下午茶

前端 工具 webstorm

用简单例子带你了解联合索引查询原理及生效规则

华为云开发者联盟

sql 索引 查询 联合索引

人才短缺、成本高昂,制造企业智能化转型路径如何破局?

百度开发者中心

从 generator 的角度看 Rust 异步代码

SOFAStack

rust Generator

FIddler+Proxifer工具对windows PC客户端进行抓包

喀拉峻

黑客 网络安全

第三个模块作业

achilles

Pulsar 职位广场 | 腾讯、华为云、虾皮、众安保险、StreamNative 等多个热招岗位

Apache Pulsar

开源 架构 云原生 招聘 Apache Pulsar

Python 中的数组哪去了?

宇宙之一粟

Python 数组 2月月更

面试突击25:sleep和wait有什么区别?

王磊

java面试

云原生时代,如何保证容器镜像安全?

极狐GitLab

DevSecOps 镜像安全 极狐GitLab

[Python]介绍

謓泽

Python 2月月更

十年所学,梦想终至,不负时光 | 《云端架构》新书首推发布,来自极度努力的吕校长

博文视点Broadview

初级工程师建议收藏|企业级APIs安全实践指南

领创集团AdvanceGroup

工作想法小计(2):2/14 - 2/18

非晓为骁

个人成长

Dark发布内部测试版,旨在降低后端开发的复杂性_软件工程_K Jonas_InfoQ精选文章