跳到主要内容

8 篇博文 含有标签「JavaScript」

JavaScript 编程语言

查看所有标签

POML:结构化提示工程的兴起与AI应用架构的“新三驾马车”展望

· 阅读需 12 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引言

在人工智能(AI)飞速发展的今天,提示工程(Prompt Engineering)正从一门依赖直觉的“艺术”转型为系统化的“工程”实践。微软于2025年推出的POML(Prompt Orchestration Markup Language)作为一种结构化标记语言,为这一变革注入了新动力。POML不仅解决了传统提示工程的混乱与低效,还预示着AI应用架构可能迎来类似Web开发的“HTML/CSS/JS三驾马车”范式。本文基于一份深入研究报告,详细剖析POML的核心技术、与Web架构的类比、实际应用场景以及未来潜力,为开发者与企业提供可操作的洞见。

POML开启提示工程新纪元

POML由微软研究院推出,其设计灵感源自HTML和XML,旨在通过模块化、语义化的标签(如<role>、<task>)将复杂的提示分解为清晰的组件,解决传统“提示意面”(Prompt Spaghetti)的痛点。它通过以下特性重塑提示工程:

  • 语义化标签:提升提示的可读性、可维护性和可重用性。
  • 多模态支持:无缝整合文本、表格、图像等数据。
  • 样式系统:受CSS启发,分离内容与呈现,简化A/B测试。
  • 动态模板:支持变量、循环和条件,实现自动化和个性化。

POML不仅是一门语言,更是AI应用架构的结构层,与优化工具(如PromptPerfect)和编排框架(如LangChain)共同构成“新三驾马车”。这一架构与学术界提出的“提示分层架构”(Prompt-Layered Architecture, PLA)理论高度契合,将提示管理提升为与传统软件开发同等重要的“第一公民”。

未来,POML有望成为多智能体系统(Multi-Agent Systems)的“通信协议”和“配置语言”,为构建可扩展、可审计的AI应用奠定基础。尽管社区对其复杂性存在争议,但其潜力不可忽视。本文将为开发者提供实用建议,助力企业拥抱这一变革。

斯坦福大学研究揭示AI对开发者生产力的真实影响:并非万能灵丹

· 阅读需 10 分钟
Marvin Zhang
软件工程师 & 开源爱好者

本文内容基于斯坦福大学研究员 Yegor Denisov-Blanch 在 AIEWF 2025 大会上的演讲,该研究分析了来自数百家公司的近10万名开发者的真实数据。感兴趣并有条件的可以去 YouTube 观看全部演讲内容。

最近,“AI将取代软件工程师”的论调甚嚣尘上。Meta的马克·扎克伯格(Mark Zuckerberg)甚至在今年年初表示,他计划在年底前用AI取代公司所有中级工程师。这种愿景无疑能鼓舞人心,但也给全球的技术决策者带来了压力:“我们离用AI取代所有开发者还有多远?”

斯坦福大学软件工程生产力研究团队的最新发现,为这个问题提供了一个更现实、更细致的答案。经过对近10万名软件工程师、600多家公司、数千万次提交以及数十亿行私有代码库数据的深入分析,这项大规模研究表明:人工智能确实可以提升开发者生产力,但它绝非一个“一劳永逸”的万能解决方案,其影响是高度情境化且充满细微差别的。虽然平均生产力提升了约20%,但在某些情况下,AI甚至可能适得其反,降低生产力。

为什么推荐你用 C# 构建大型后端应用?- Part 1

· 阅读需 10 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

今天下英雄,惟使君与操耳。--曹操《三国演义》

对于在 IT 圈摸爬滚打多年的程序员来说,如果要问国内最主流的后端编程语言,我相信大部分会说 Java。这并不意外,因为 Java 存在了 30 多年,有着庞大的用户规模和生态体系,在软件工程领域似乎有着绝对霸主地位。但是,古人云:“得民心者得天下。” 用户最多的编程语言不一定是最受开发者们喜欢的。根据 StackOverflow 2021 年在 82,914 名开发者中做的关于编程语言满意度调查,喜欢 Java 的占比只有 47%,已经排到 20 名开外了,仅高于 PHP、C、COBOL。另一方面,我们从调查结果可以看到,有着 “山寨版 Java” 之称的 C#,反而在开发者心目中满意度达到了 62%,比 Java 高 15%。虽然 C# 的满意度跟 Rust、TypeScript 差距还比较大,但可以看出 C# 作为 Java 的替代编程语言,在开发效率、部署便捷性、文档完善度等方面已经逐渐占据优势。笔者因为工作的原因,在平时开发中使用 C# 和 Java 开发了不少项目,因此对它们之间的相同点、不同点以及优势、劣势有一定了解。笔者认为,C# 相对于 Java 来说更受开发者欢迎是有一定道理的,因为它的开发体验很好。

20211119-language-satisfaction

限于篇幅原因,整个 C# 的原理及实战介绍(即为何推荐用 C# 构建大型后端应用),将被拆分为一系列文章,该系列将从语法特性、开发模式、生态体系、部署构建等维度深度分析 C# 这门 “年轻” 的编程语言,并以跨平台框架 .NET Core 为例介绍如何用 C# 构建大型后端应用。

本篇文章是 C# 系列文章的第一篇,主要在语法特性方面介绍 C# 的一些现代语法特性,以及它们是如何提高开发效率的。

大红大紫的 Golang 真的是后端开发中的万能药吗?

· 阅读需 21 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

城外的人想进去,城里的人想出来。-- 钱钟书《围城》

随着容器编排(Container Orchestration)、微服务(Micro Services)、云技术(Cloud Technology)等在 IT 行业不断盛行,2009 年诞生于 Google 的 Golang(Go 语言,简称 Go)越来越受到软件工程师的欢迎和追捧,成为如今炙手可热的后端编程语言。在用 Golang 开发的软件项目列表中,有 Docker(容器技术)、Kubernetes(容器编排)这样的颠覆整个 IT 行业的明星级产品,也有像 Prometheus(监控系统)、Etcd(分布式存储)、InfluxDB(时序数据库)这样的强大实用的知名项目。当然,Go 语言的应用领域也绝不局限于容器和分布式系统。如今很多大型互联网企业在大量使用 Golang 构建后端 Web 应用,例如今日头条、京东、七牛云等;长期被 Python 统治的框架爬虫领域也因为简单而易用的爬虫框架 Colly 的崛起而不断受到 Golang 的挑战。Golang 已经成为了如今大多数软件工程师最想学习的编程语言。下图是 HackerRank 在 2020 年调查程序员技能的相关结果。

hackerrank-survey-2020

那么,**Go 语言真的是后端开发人员的救命良药呢?它是否能够有效提高程序员们的技术实力和开发效率,从而帮助他们在职场上更进一步呢?Go 语言真的值得我们花大量时间深入学习么?**本文将详细介绍 Golang 的语言特点以及它的优缺点和适用场景,带着上述几个疑问,为读者分析 Go 语言的各个方面,以帮助初入 IT 行业的程序员以及对 Go 感兴趣的开发者进一步了解这个热门语言。

优秀开源框架就一定靠谱么?五招助你驾驭源代码

· 阅读需 24 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

The most incomprehensible thing about the world is that it is comprehensible.

世界上最不可理解的地方就是它竟然是可以理解的。-- 阿尔伯特·爱因斯坦

开源(Open-Source)造就了如今繁荣活跃的软件行业。开源让全世界的开发者都能够协力编写出优秀的工具类项目,也就是所谓的 "轮子",在造福大大小小的公司个人的同时,也可以展现创作者或贡献者的技术实力。如今很多开发者都在大量使用开源项目作为自己项目的第三方库或依赖,更快更高效的完成开发任务。

open-source

笔者也不例外。我最近在用 Vue 3 重构 Crawlab 前端的时候,用到了 Element 团队开发的升级版的 ElementUI,也就是 Vue 3 重构的新 UI 框架 Element Plus。Element 团队在 Element Plus 中将该项目用 Vue 3 完全重构,全面拥抱了 TypeScript;而且相比于之前的 Vue 2 版本丰富了部分组件;而整体风格和使用方式跟之前的版本一致;一些 API 在使用上还变得更精简了。因此,笔者在重构 Crawlab 前端初期过程中没有遇到太大的障碍,再加上之前的编写经验,开发过程中显得驾轻就熟。然而,好景不长,随着项目的不断开发,笔者遭遇到一些技术上的困难。更准确的说,在实现一些复杂功能时遇到了来自于 Element Plus 框架本身的限制。虽然最终想方设法将问题解决了,但是我也深刻体会到了硬啃(Hacking)开源项目源代码的困难。因此,也希望借此机会将自己驾驭开源代码的经验分享给读者。

公元2021年,关于前端工程化你应该知道些什么

· 阅读需 27 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

The only constant in the world is change.

世界上唯一不变的是变化。--《谁动了我的奶酪》作者 斯宾塞·约翰逊

IT 行业变化太快了,尤其是前端开发(Frontend Development)。如果能穿越回 10 年前,碰上一位 Web 开发软件工程师,他一定会告诉你玩转前端就是精通 jQuery 和搞定 IE 浏览器兼容性。不过随着前端的不断发展,jQuery 遭遇 “官方逼死同人” 逐渐退出历史舞台(元素选择和操作被标准的 DOM API 所统一);而饱为诟病的 IE 浏览器兼容性问题,因为 IE 市场的逐渐萎缩以及一些兼容性工具(Polyfill)的出现,让其从之前的核心优化问题降级为如今的瘙痒问题,不再成为前端工程师的标配。

如今的前端开发,有着玲琅满目的专业术语和纷繁复杂的技术生态,可能会让初入前端开发的工程师感到惴惴不安:要学的东西实在是太多了。现在的前端工程师如果不了解 Webpack、Babel、Node.js、NPM/Yarn、ES6/7、React/Vue、Sass/Less、TypeScript、ESLint、Canvas/SVG 等现代化前端知识,就难以让人信服自己的专业背景。2021 年的前端工程师可能是真正意义上的工程师(Engineer),他们通常需要运用大量的专业知识来解决工程化问题,包括如何将项目进行模块化,如何设计组件间的交互,如何提高可复用性,如何提升打包效率,优化浏览器渲染性能,等等。他们不再像以前,只需要 HTML/CSS/JS 一个套路来开发静态页面。

本文将着重就现代前端开发的主题,来详细介绍前端工程化的各个重要技术,帮助读者了解现代前端页面的复杂和多样性是如何构造的。本文是一篇关于前端工程的科普文,即使你不了解前端技术,也可以从本文受益。

TS 加持的 Vue 3,如何帮你轻松构建企业级前端应用

· 阅读需 22 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

工欲善其事,必先利其器 --《论语》

在如今被三大框架支配的前端领域,已经很少有人不知道 Vue 了。2014 年,前 Google 工程师尤雨溪发布了所谓的渐进式(Progressive)前端应用框架 Vue,其简化的模版绑定和组件化思想给当时还是 jQuery 时代的前端领域产生了积极而深远的影响。Vue 的诞生,造福了那些不习惯 TS 或 JSX 语法的前端开发者。而且,Vue 较低的学习门槛,也让初学者非常容易上手。这也是为什么 Vue 能在短时间内迅速推广的重要原因。从 State of JS 的调查中可以看到,Vue 的知名度接近 100%,而且整体用户满意度也比较高。

stateofjs-vue

Vue 既强大又易学,这是不是意味着 Vue 是一个完美框架呢?很遗憾,答案是否定的。虽然 Vue 的上手门槛不高,灵活易用,但是这种优势同时也成为了一把双刃剑,为构建大型项目带来了一定的局限性。很多用 Vue 2 开发过大型项目的前端工程师对 Vue 是又爱又恨。不过,随着 Vue 3 的发布,这些开发大型项目时凸显出来的劣势得到了有效解决,这让 Vue 框架变得非常全能,真正具备了跟 "前端框架一哥" React 一争高下的潜力。Vue 3 究竟带来了什么重要的新特性呢?本篇文章将对此进行详细介绍。

为什么说 TypeScript 是开发大型前端项目的必备语言

· 阅读需 19 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

怎么忍心怪你犯了错,是我给你自由过了火。 -- 张信哲《过火》

可能很多软件工程师都或多或少知道或了解 TypeScript(简写 TS),使用过 TypeScript 的前端开发者们也出奇一致的对 TypeScript 抱有好感。如果你在搜索引擎里搜索 TypeScript,会发现几乎铺天盖地都是称赞或表扬 TS 的文章,例如 《TypeScript 让你不会想用回 JavaScript》《TypeScript 真香系列》《再不拥抱TypeScript你就老了!》。根据最新的 《2020 State of JS 调研报告》,TypeScript 的受欢迎度(Popularity)以及满意度(Satisfaction)都在逐年增加,包括本文作者在内的 “TS 粉”(在 State of JS 中回答 “会继续使用”)的开发者甚至超过了 70%(如下图)。

typescript-2020-stateofjs-survey

总而言之,TS 如今在前端领域具有不可撼动的核心地位,是非常重要的前端工程开发工具。TS 是微软在拥抱开源项目之后为软件行业作出的突出贡献之一。然而,TypeScript 既不能提高 JavaScript 代码在浏览器中的运行效率,又不像 React、Vue 前端框架那样可以提高开发人员的生产力,更不能让你开发的前端页面变得好看而吸引人。那究竟是什么让它成为如此广受欢迎的 “真香语言” 呢,是什么让它令前端人员爱不释手呢?如果你带有这样类似的疑问,请继续阅读接下来的内容,本文将详细解释利用 TS 开发大型前端项目的优势。