前端监控:别让你的应用在黑暗中运行

前端监控:别让你的应用在黑暗中运行

毒舌时刻

这应用运行得跟幽灵似的,出了问题都不知道。

各位前端同行,咱们今天聊聊前端监控。别告诉我你还在等用户反馈问题,那感觉就像在没有监控的仓库里放贵重物品——能放,但丢了都不知道。

为什么你需要前端监控

最近看到一个项目,用户反映页面经常崩溃,但开发团队根本不知道问题出在哪里。我就想问:你是在做应用还是在做猜谜游戏?

反面教材

// 反面教材:没有监控 function App() { const [data, setData] = React.useState([]); useEffect(() => { async function fetchData() { try { const response = await fetch('/api/data'); const result = await response.json(); setData(result); } catch (error) { console.error('Error fetching data:', error); } } fetchData(); }, []); return ( <div> {data.map(item => ( <div key={item.id}>{item.name}</div> ))} </div> ); } export default App; 

毒舌点评:这代码,就像在黑暗中开车,出了事故都不知道怎么回事。

正确姿势

1. Sentry 监控

// 正确姿势:Sentry 监控 // 1. 安装依赖 // npm install @sentry/react @sentry/tracing // 2. 初始化 // src/index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import * as Sentry from '@sentry/react'; import { BrowserTracing } from '@sentry/tracing'; Sentry.init({ dsn: 'YOUR_SENTRY_DSN', integrations: [new BrowserTracing()], tracesSampleRate: 1.0, }); ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById('root') ); // 3. 错误边界 // src/ErrorBoundary.jsx import React from 'react'; import * as Sentry from '@sentry/react'; class ErrorBoundary extends React.Component { constructor(props) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError(error) { return { hasError: true }; } componentDidCatch(error, errorInfo) { Sentry.captureException(error, { extra: errorInfo }); } render() { if (this.state.hasError) { return <h1>Something went wrong.</h1>; } return this.props.children; } } export default ErrorBoundary; // 4. 使用错误边界 // src/App.jsx import React from 'react'; import ErrorBoundary from './ErrorBoundary'; function App() { return ( <ErrorBoundary> <div> {/* 应用内容 */} </div> </ErrorBoundary> ); } export default App; 

2. 性能监控

// 正确姿势:性能监控 // 1. 使用 Lighthouse // npm install -g lighthouse // lighthouse https://example.com // 2. 使用 Web Vitals import { getCLS, getFID, getFCP, getLCP, getTTFB } from 'web-vitals'; function sendToAnalytics({ name, delta, id }) { console.log(name, delta, id); // 发送到分析服务 // navigator.sendBeacon('/analytics', JSON.stringify({ name, delta, id })); } getCLS(sendToAnalytics); getFID(sendToAnalytics); getFCP(sendToAnalytics); getLCP(sendToAnalytics); getTTFB(sendToAnalytics); 

3. 用户行为监控

// 正确姿势:用户行为监控 // 1. 使用 Google Analytics // index.html <script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'GA_MEASUREMENT_ID'); </script> // 2. 自定义事件 function trackEvent(eventName, eventParams) { gtag('event', eventName, eventParams); } // 使用 <button onClick={() => trackEvent('button_click', { button_name: 'submit' })}> 提交 </button> 

4. 日志监控

// 正确姿势:日志监控 // 1. 配置日志级别 const LOG_LEVELS = { ERROR: 0, WARN: 1, INFO: 2, DEBUG: 3 }; let currentLevel = LOG_LEVELS.INFO; function log(level, message, data) { if (level <= currentLevel) { const timestamp = new Date().toISOString(); const logMessage = `[${timestamp}] [${Object.keys(LOG_LEVELS)[level]}] ${message}`; switch (level) { case LOG_LEVELS.ERROR: console.error(logMessage, data); // 发送到监控服务 break; case LOG_LEVELS.WARN: console.warn(logMessage, data); break; case LOG_LEVELS.INFO: console.info(logMessage, data); break; case LOG_LEVELS.DEBUG: console.debug(logMessage, data); break; } } } // 使用 log(LOG_LEVELS.ERROR, 'Failed to fetch data', { error: 'Network error' }); log(LOG_LEVELS.INFO, 'User logged in', { userId: 123 }); 

毒舌点评:这才叫前端监控,让你的应用在阳光下运行,任何问题都逃不过你的眼睛。

Read more

AI做PPT哪个最好用?——7款顶流工具深度横评

AI做PPT哪个最好用?——7款顶流工具深度横评 对于职场人士、零基础新人或任何需要“又快又好”做PPT的人,AI生成PPT工具已经从“锦上添花”升级为“必备效率神器”。本文一次性梳理7款市面呼声最高的产品,逐条拆解它们的公司背景、功能特色、免费额度、优缺点及适用人群。 1. SpeedAI(https://kuaipaper.com/ppt) 所属公司 国内AI办公赛道新锐团队,依托自研大模型深耕智能办公场景,核心成员来自头部互联网与办公软件厂商。 功能特色 * 全链路智能生成:输入主题/关键词→15秒输出逻辑闭环大纲→2分钟生成20+页完整PPT,大纲可根据行业、场景自动调整深度,适配商务汇报、学术答辩、校园宣讲等不同需求 * 多源无损导入:支持Word、PDF、XMind、Markdown、思维导图图片一键转PPT,复杂表格、公式保留率达95%以上,长文本自动提炼核心观点,避免逻辑断裂 * 在线精细化编辑:文字、

10月实测:2025年最好用的12款ai写小说工具(含优劣对比)

10月实测:2025年最好用的12款ai写小说工具(含优劣对比)

最近,ai写小说的风刮得特别大,各种写小说软件层出不穷,很多人问我这些工具到底能不能用。 我花了不少时间,把市面上主流的12款工具都试用了一遍。今天就跟大家掏心窝子聊聊,这些工具哪些是真能帮上忙的“助手”,哪些又是纯粹浪费时间的“玩具”。 我会按照我自己的测评标准,从定位(适合谁)、核心功能(能干嘛)、使用场景(我怎么用),以及最重要的踩坑/建议(避坑指南)这几个方面来说,保证大家看完就能懂,不踩坑。 01、笔灵(一键生成整部小说的创作神器) 传送门:https://ibiling.cn/novel-editor?from=ZEEKLOGeditorgx711(建议复制链接到电脑浏览器打开体验更佳!) 定位: 面向小说作者的综合创作平台,偏重把设定变成实盘稿件并能保存续写。 核心功能: 它的 AI写全篇小说 能按模板一键拉出章节,支持站内保存和一键续写,另外有编辑大纲和素材板块。 使用场景: 我常在凌晨卡文时先让笔灵把整章拉出来当样稿,然后二次改;也会用它保存断更的稿子,续写挺稳。 踩坑/

AI时代人人都是产品经理:落地流程:AI 核心功能,从需求到上线的全流程管控方法

AI时代人人都是产品经理:落地流程:AI 核心功能,从需求到上线的全流程管控方法

AI的普及正在重构产品经理的工作模式——不再依赖传统的跨部门协作瓶颈,AI可以成为产品经理的"全职助手",覆盖需求分析、原型设计、开发协同、测试验证全流程。本文将拆解AI时代产品核心功能从0到1落地的完整管控方法,让你用AI能力提升300%的落地效率。 一、需求阶段:AI辅助的需求挖掘与标准化 需求是产品的起点,AI可以帮你从海量信息中精准定位用户真实需求,避免"伪需求"浪费资源。 1. 需求挖掘:AI辅助用户洞察 传统需求调研依赖问卷、访谈,效率低且样本有限。AI可以通过以下方式快速完成用户洞察: * 结构化处理非结构化数据:用AI分析用户在社交媒体、客服对话、应用评论中的碎片化反馈,自动提炼高频需求点 * 需求优先级排序:基于KANO模型,AI可以自动将需求划分为基础型、期望型、兴奋型、无差异型四类,输出优先级列表 实战工具与示例: 使用GPT-4+Python脚本批量处理应用商店评论: import openai import pandas as

【软件测试】AI 赋能测试流程

【软件测试】AI 赋能测试流程

AI 赋能测试流程 * 一. AI 基础概念 * 1. AI 是什么? * 2. AI 为什么会被创造出来? * 3. AI 是如何被创造出来的? * 二. AI 赋能测试 * 1. AI 在测试领域的应用 * 2. AI 在测试领域的发展趋势 * 三. AI 驱动的测试流程 * 1. AI 工具介绍 * 2. 需求分析 * 2.1 识别需求中存在的问题 * 2.2 需求快速理解与功能概要生成 * 3. 测试计划 * 4. 测试用例 * 4.1 AI 生成等价类 * 4.2 AI 生成边界值 * 4.