前端监控:别等用户告诉你应用崩了

前端监控:别等用户告诉你应用崩了

毒舌时刻

这代码写得跟网红滤镜似的——仅供参考。

各位前端同行,咱们今天聊聊前端监控。别告诉我你还在等用户截图告诉你应用崩了,那感觉就像等邻居来告诉你你家着火了——能知道,但已经晚了。

为什么你需要前端监控

最近看到一个项目,生产环境崩溃了 3 小时,开发团队却一无所知。我就想问:你是在做应用还是在做猜谜游戏?

反面教材

// 反面教材:没有监控 // components/Checkout.jsx export default function Checkout() { const [loading, setLoading] = useState(false); const handleSubmit = async () => { setLoading(true); try { await api.checkout(); // 成功处理 } catch (error) { // 只在控制台打印错误 console.error('Checkout failed:', error); // 显示错误信息 setError('支付失败'); } finally { setLoading(false); } }; return ( <button onClick={handleSubmit} disabled={loading}> {loading ? '支付中...' : '支付'} </button> ); } // 错误只在控制台,开发团队看不到 // 用户遇到问题只能截图反馈 

毒舌点评:这代码,错误只在控制台,你是在写应用还是在玩捉迷藏?

前端监控的正确姿势

1. 错误监控

// 正确姿势:Sentry 错误监控 // src/utils/errorMonitoring.js import * as Sentry from '@sentry/react'; export function initSentry() { Sentry.init({ dsn: 'YOUR_SENTRY_DSN', integrations: [ new Sentry.BrowserTracing(), new Sentry.Replay() ], tracesSampleRate: 1.0, replaysSessionSampleRate: 0.1 }); } export function captureError(error) { Sentry.captureException(error); } export function captureMessage(message) { Sentry.captureMessage(message); } // 使用 // components/Checkout.jsx import { captureError } from '../utils/errorMonitoring'; const handleSubmit = async () => { try { await api.checkout(); } catch (error) { captureError(error); setError('支付失败'); } }; 

2. 性能监控

// 正确姿势:性能监控 // src/utils/performanceMonitoring.js import { getCLS, getFID, getFCP, getLCP, getTTFB } from 'web-vitals'; export function initPerformanceMonitoring() { getCLS(console.log); getFID(console.log); getFCP(console.log); getLCP(console.log); getTTFB(console.log); } // 集成到 Sentry import * as Sentry from '@sentry/react'; export function sendToSentry({ name, delta, id }) { Sentry.metrics.distribution(name, delta, { tags: { id } }); } getCLS(sendToSentry); getFID(sendToSentry); getLCP(sendToSentry); 

3. 用户行为监控

// 正确姿势:用户行为监控 // src/utils/userMonitoring.js import * as Sentry from '@sentry/react'; export function trackEvent(eventName, data) { Sentry.captureEvent({ message: eventName, extra: data }); } export function trackClick(element, eventName) { element.addEventListener('click', () => { trackEvent(eventName, { timestamp: new Date().toISOString() }); }); } // 使用 // components/Button.jsx import { trackClick } from '../utils/userMonitoring'; export default function Button({ onClick, children }) { const buttonRef = useRef(null); useEffect(() => { if (buttonRef.current) { trackClick(buttonRef.current, 'button_clicked'); } }, []); return ( <button ref={buttonRef} onClick={onClick}> {children} </button> ); } 

毒舌点评:这才叫现代前端,实时监控,问题早发现早解决。

Read more

CodeBuddy与WorkBuddy深度对比:腾讯两款AI工具差异及实操指南

CodeBuddy与WorkBuddy深度对比:腾讯两款AI工具差异及实操指南

前言 在AI办公与开发效率工具爆发的当下,腾讯推出了CodeBuddy和WorkBuddy两款AI产品,二者同属腾讯云代码助手生态,共享账号体系与Credits资源,但定位和核心能力截然不同。CodeBuddy聚焦程序员开发效率提升,是开发者的专属AI编程助手;WorkBuddy则是公测中的全场景AI办公智能体桌面工作台,面向所有知识工作者,打造“能干活、可交付”的AI同事。本文将从介绍、下载安装、功能介绍、使用案例、注意事项五个维度,全面解析两款工具的差异,帮你精准选择适配自身场景的AI工具。 一、介绍 1. 产品定位与核心目标 * CodeBuddy:腾讯打造的程序员专属AI效率工具,核心目标是让开发者效率翻倍,聚焦代码开发全流程,解决代码生成、调试、重构、技术文档撰写等开发场景的痛点,以独立IDE、IDE插件、命令行、Beta版本Agents形态多种形态服务开发者,成为开发者的“编程搭子”。 * WorkBuddy:腾讯推出的公测中全场景职场AI智能体桌面工作台,核心目标是让每一位知识工作者拥有AI同事,突破传统AI聊天工具的局限,能通过自然语言指令自主思考、拆解任

AI 对话高效输入指令攻略(四):AI+Apache ECharts:生成各种专业图表

AI 对话高效输入指令攻略(四):AI+Apache ECharts:生成各种专业图表

免责声明: 1.本文所提供的所有 AI 使用示例及提示词,仅用于学术写作技巧交流与 AI 功能探索测试,无任何唆使或鼓励利用 AI 抄袭作业、学术造假的意图。 2.文章中提及的内容旨在帮助读者提升与 AI 交互的能力,合理运用 AI 辅助学习和研究,最终成果的原创性与合规性需使用者自行负责。 3.对于读者因不当使用文中内容,违反学术规范、法律法规或造成其他不良后果的情况,本文作者及发布平台不承担任何责任。 目录 前言 技术栈说明 步骤一.介绍 什么是 Apache ECharts? ECharts 的核心优势 步骤二.部署 1.汉化 2.进入示例库 3.选择模型 4.获得代码 5.“喂”AI 步骤三:本地运行与优化

实测10款免费降AI神器,这7个真能打:AI率从88%猛降到1.6%【2026亲测版】

实测10款免费降AI神器,这7个真能打:AI率从88%猛降到1.6%【2026亲测版】

开学才几天,宿舍群已经炸了——这次不是因为论文写不完,而是AI检测太吓人! 现在各大学位论文查的越来越严,现在降AI率简直比降重还让人头疼。知网、维普、万方全都上了AI检测功能,不少学校明说AIGC率不能超过20%,太高了可能连答辩都悬。 这一个月我当了一回“小白鼠”,把市面上能找的降AI工具全试了个遍,从免费到付费、从小众到热门,最终筛出7款确实有用的。废话不多说,直接上实测干货——效果、价格、适用场景,帮你一次避坑,少走弯路。 一、7款降AI工具亲测报告(附真实效果截图) 1、笔灵 如果你只想用一个工具搞定所有,闭眼选笔灵就对了——知网、万方最新标准它都适配,价格还友好,学生党放心冲。 传送门:https://ibiling.cn/paper-pass?from=ZEEKLOGjiangai818gx(建议电脑打开) 为啥首推它? 效果稳如老狗: 我拿一篇AI率88%的论文试水,笔灵跑一遍,知网复检直接掉到1.6%

Flutter 三方库 tiktoken 鸿蒙端侧 AI 重载计算环境适配指南:极尽压榨设备级 BPE 分词器吞吐量边界,打造工业级精控的大模型高昂运算成本阀门-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 tiktoken 鸿蒙端侧 AI 重载计算环境适配指南:极尽压榨设备级 BPE 分词器吞吐量边界,打造工业级精控的大模型高昂运算成本阀门-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 tiktoken 鸿蒙端侧 AI 重载计算环境适配指南:极尽压榨设备级 BPE 分词器吞吐量边界,打造工业级精控的大模型高昂运算成本阀门防线 在开发鸿蒙平台的生成式 AI 应用(如大模型助手、智能写作或 Rerank 逻辑)时,如何精确预估 Prompt 的消耗?如何实现窗口精度的截断?tiktoken 提供了一套完整的 OpenAI BPE(字节对编码)分词算法实现。本文将详解该库在 OpenHarmony 上的适配要点。 前言 什么是 tiktoken?它是 OpenAI 为其 GPT 系列模型推出的高性能 BPE 分词器。不同于常规的字符计数,Token 是模型处理文本的最小单位。在鸿蒙操作系统强调的“