随着微服务技术的快速发展,其在各个领域都形成了一系列事实标准,在 Kubernetes 和容器技术加持下,云原生微服务已经成为了主流解决方案。而 Go 语言作为云原生领域最受欢迎的开发语言,正被越来越多的企业作为微服务开发的首选语言,其中比较流行的包括 Go-micro、Go-zero、Dubbo-go 等。作为 Dubbo 微服务体系中多语言实现的一员,在 2022 年 Dubbo-go 以微服务领跑者的角色积极拥抱云原生标准,探索了 Proxyless Mesh 形态,配合适配 Pixiu 云原生网关,形成了完善的 Dubbo-go 微服务生态矩阵。 以 Dubbo-go 为中心的微服务体系在多个知名企业中成功落地和实践,框架的稳定性在实际场景下经受住了考验。截止今年已有 60+ 家企业在我们的用户列表中登记,其中较为典型案例请参考文章《小米电商 Apache Dubbo-go 微服务实践》。小米电商选用了 Dubbo-go + Nacos + sidecar + etcd + mirpc 为核心的微服务体系
众所周知,堆 crash dump 是最难分析的 dump 类型之一。此类 crash 最大的问题在于,造成错误的代码无法在发生堆破坏时被发现。线上采集到的 minidump,仅能提供十分有限的信息。当调试工具报告了堆破坏、堆内存访问违例后,即便是有经验的开发人员也会觉得头疼。剪映专业版及其依赖的音视频编辑 SDK、特效模块均采用 MD 的方式链接标准库,这意味着任何一个模块出现了堆损坏都会互相影响。从 crash 的位置回溯堆破坏的源头,是一个非常有挑战性的工作。剪映业务模块较常见的是Use-after-free,而音视频编辑 SDK和特效模块这类底层算法特效模块更多的是Buffer-overflow,不同团队模块间的堆错误互相影响,导致问题难以定位。
在前面章节中,我们已经对 WebAssembly 的关键特性、历史演变和核心的应用场景做了详细的介绍;基于 对 WebAssembly 的入门和初步了解,在第二部分的各个章节中,我们会从 WebAssembly 模块入手,和大家一起学习 WebAssembly 基础知识,包括核心规范,核心开发语言和工具链以及常用的执行引擎等相关内容。 本文将从 WebAssembly 模块入手介绍相关基础概念和 W3C 二进制格式核心规范,与此同时,进一步介绍 WebAssembly 的文本格式及语法,并给出一个 WebAssembly 文本 demo;以便读者可以与本文格式的介绍相互印证,进一步加深理解。
2022 年 11 月 ChatGPT 像一股风暴席卷全球。时隔数月,OpenAI 终于在 3 月 1 日正式推出了 ChatGPT 的开放 API。这意味着,我们通过简单的 API 调用,就可以与 ChatGPT 进行对话。可以预见的是像自来水一样使用 AI 的时代已经到来,我们可以随时随地使用它,而不需要关心算法实现细节。 值得注意的是在此之前有大量的第三方平台号称调用的是 ChatGPT 的 API,实际多数为基于 GPT-3 的“自动补齐” API,其能力远不可与 ChatGPT 相媲美,而这一次提供的则是官方的基于聊天(Chat)消息的 API。 本文将通过一个简单的命令行翻译程序,来展示如何使用 ChatGPT API。 你以为 API 调用工程就是本文的全部内容吗?不,更重要的是教会大家如何通过“Prompt Engineering”(即所谓“提示工程”学)将聊天型 AIGC 转换为特定领域的生产力。
在百度上搜索“天气”,你会发现搜索结果的样子焕然一新。 不同于以往扁平化的效果,新版卡片更注重“氛围”,更强调视觉的纵深感;也从图标设计、展现效率多方面进行了全新升级,下面将从视觉角度分析此次改版的设计思路。