互联网发展迅猛之余也伴随着互联网寒冬,行业不景气这样的词,等毕业季去各个求职网站投简历,去各个人才市场找机会,才发现四处碰壁,作为应届求职者更需要打好基础,明确发展规划,跟上行业步伐。下面是本人2019年秋招前端面试经历,结合个人博客和牛油们面经中的高频问题以及行业前辈们复习资料的综合整理,包含基础篇、Vue框架篇、HTTP&浏览器、构建工具篇、安全篇、算法篇,欢迎交流斧正。希望大家在毕业季都能一帆风顺,从容斩获OFFER 怀着学习的态度完成了一份90页PDF , 近140+commits,近100+前端面试题及推荐解答,资源合集的面试小册。因为篇幅有限,下面是小册前三篇的各五道前端高频面试题及推荐解答,这个项目已经在github上开源,欢迎大家取用:https://github.com/okaychen/FE-Interview-Brochure 浏览器解析渲染页面过程 大致过程: HTML解析构建DOM-CSS解析构建CSSOM树-根据DOM树和CSSOM树构建render树-根据render树进行布局渲染render layer-根据计
V1:Vue 有了数据响应式,为何还要 diff?原因:响应式只能解决“是否要更新”问题:当响应式数据变化时,Vue 知道“该重新渲染了”,但不知道具体要改哪里。Vue 的粒度不是单一变量:一个组件模板中可能有多个数据依赖,状态变化后需要重新执行 render 函数生成新的 VNode。diff 负责高效比较新旧 VNode 树:找出最小 DOM 操作,应用到真实 DOM。性能优化关键:diff 使用双端对比 + 最长递增子序列算法,复杂度从 O(n³) 降到 O(n)。总结:响应式负责调度,diff 负责精准更新。V2:Vue 3 为什么不需要时间分片?原因:响应式粒度更细:Vue 通过 Proxy 精确知道哪个响应式数据变化,且只触发使用了该数据的组件重新渲染。静态提升 + 补丁标记:编译期优化避免了大量 VNode 比较。组件级调度:默认一个组件一个更新任务,粒度适合,不容易产生超长任务。框架定位不同:Vue 设计为“渐进式”,默认不启用并发模式,代码量与心智负担更低。React 为什么需要:不可变数据 + setState 模型下,一次更新可能涉及大量组件(任何依赖该状态的组件
Q1:Fiber 架构的工作原理?核心要点:Fiber 是 React 16 引入的协调引擎(Reconciliation Engine),将渲染工作拆分成可中断、可恢复的最小工作单元。工作原理:数据结构:每个 Fiber 节点对应一个 React 元素,包含 type、key、child、sibling、return、pendingProps、memoizedProps、memoizedState、alternate(双缓冲)等字段,形成一棵 Fiber 树。双缓冲机制:维护两棵 Fiber 树(current 和 workInProgress),更新时构建 workInProgress,完成后整体切换,减少页面闪烁。两阶段渲染:Render 阶段(可中断):调用 beginWork 向下遍历,构建新 Fiber 树,标记副作用(Placement/Update/Deletion)。Commit 阶段(不可中断):将副作用一次性提交到真实 DOM,调用 useEffect/useLayoutEffect 回调。时间切片(Time Slicing):通过 MessageChannel
需求描述打造 特定领域知识(Domain-specific Knowledge) 问答 系统,具体需求有:通过自然语言问答的形式,和用户交互,同时支持中文和英文。 理解用户不同形式的问题,找到与之匹配的答案。可以对答案进行二次处理,比如将关联的多个知识点进行去重、汇总等。 支持上下文。有些问题可能比较复杂,或者原始知识不能覆盖,需要从历史会话中提取信息。 准确。不要出现似是而非或无意义的回答。 从大语言模型(Large Language Model, LLM)角度而言,上面的需求是在两阶段训练模式下,面向下游场景进行适配的问题。基础模型(Foundation Model),面向特定领域不能直接应用,因为领域知识不在预训练的数据集中,比如:较新的内容。同一个知识点不断变更:修改、删除、添加。如何反馈当前最新的最全面的知识。比如对于 ChatGpt 而言,训练数据全部来自于 2021.09 之前。 未公开的、未联网的内容。 方案分析基于 LLM 搭建问答系统的解决方案有以下几种:Fine-Tuning 基于 Prompt Engineering,比如 Few-Shot方式。 与普通搜索结合
ChatGPT 很智能,但是它有不足:知识库老旧,停留在2021年。另外对于企业,很多私有知识,并不希望全部暴露给GPT。因此结合ChatGPT的自然语言对话能力,加上私有知识库的数据,可以发挥更大价值。假如我们想利用OpenAI能力打造基于私有知识库的智能机器人,可以怎么做呢?实现思路当前主流解决方案是使用建立本地向量数据库,用户输入的时候先在本地向量数据库找出相似文本,然后再发给 LLM,让 LLM 帮我们整理答案。(更多内容感兴趣的查看结尾的问答)大概步骤如下:1、将知识库文档向量化(使用OpenAI中的embeddings)后存储到向量数据库(Chroma);2、对于用户输入,在向量数据库中查询相关文档(如余弦相似算法)并按相似程度排序;3、取最相关的前几个(如 top 5,需要考虑 token 数)作为背景知识,同用户请求一起发送给 LLM,让大模型根据背景知识整理并回答。实现Demo把 LangChain 的文档作为知识库,使用一个智能助手进行问答。先直接看看实现效果我们先问一下ChatGPT(gpt4):再来问一下基于LangChain文档建立的问答机器人:(效果还是很明
信息系统已经成为现代社会中不可或缺的组成部分。信息系统通过利用计算机、网络和数据库等现代信息技术,处理组织中的数据、业务、管理和决策等问题,为组织目标提供有力支持。本文通过xmind 的方式展示了信息系统分析与设计课程几个重要章节进行详细说明,探讨其基本概念、重要性、设计原则及关键要素。信息系统分析与设计的内容是软件工程中的一部门内容,是信息系统开发过程中不可或缺的一环。作为企业、工程师等不同的角色来认识信息系统的重要性,通过深入分析和精心设计,可以确保系统能够满足组织的实际需求,提高系统的可用性、可靠性和安全性。同时,良好的信息系统分析与设计还能够为系统的持续发展奠定基础,为组织提供高效、便捷的信息服务。因此,我们应该充分重视信息系统分析与设计的重要性,不断优化和完善相关技术和方法。
研发项目管理企业级研发项目管理系统是一种旨在提高研发(研究与开发)部门工作效率和生产力的综合软件工具。这种系统通常包含了项目规划、资源分配、进度跟踪、风险管理、文档共享、代码管理、协作工具和报告生成等众多功能。它对于跨国企业尤为重要,因为这些企业往往需要跨越不同的地理区域和时区来协调研发工作。通过集中的管理平台,企业能够确保所有项目参与者都能实时访问最新信息,交流想法,并协同工作。例如,特灵科技就是利用这样的系统来管理其在全球范围内的研发活动,确保“中国研发,服务全球”战略的有效实施。企业级研发项目管理系统也有助于更好地资源分配,通过优化研发流程,企业可以更有效地利用资金、人力和技术资源,从而缩短产品从概念到市场的周期。此外,这类系统还可以提供项目评估和监控的能力,使管理层能够对研发进度和成果有更清晰的视野,及时调整战略和优先级,同时也便于跟踪知识产权和合规性要求。在竞争激烈的市场环境下,企业通过使用研发项目管理系统,不仅能够提升内部沟通和协作效率,还能加快创新速度,更好地满足全球市场和客户的需求,从而在市场中保持竞争力。简介以研发管理为核心,涵盖项目规划、需求管理、开发迭代、版本控制
自20世纪末以来,华为逐渐打造而成的强大研发体系,离不开IPD(集成产品开发)的支撑。如今,许多国内科技公司正处于转型中,希望参考IPD体系的方法理念和实践经验。本文将带大家用15分钟的时间,了解IPD的真貌:一、什么是IPDIPD到底是什么?一套体系?一些流程?还是一种模式?IPD,是集成产品开发(Integrated Product Development)的缩写,它是集成了众多管理模型和理论、众多企业最佳管理实践的一整套体系,可以帮助企业快速响应市场变化、缩短产品上市时间、减少资源浪费、提高生产力,最终取得商业成功。IPD的思想最早来源于美国PRTM公司出版的《产品及生命周期优化法》一书中,该书详细描述了IPD模式所包含的各个方面。但IPD在中国的普及,源于IBM和华为的推行使用。1992年,IBM在激烈的市场竞争下,遭遇了严重的财政困难,郭士纳引入了IPD流程,扭转了这一局面。1998年,华为的产品竞争力和研发能力和其他企业相对比,有明显的劣势。在引入IPD体系后,经过20多年的产品研发体系大变革,华为最终打造出了强大的产品竞争力和研发能力。不难看出,IPD是业界很多最佳实践
前言当前业务网站已基本切换成https业务,现为大家提供两种https抓包的使用方法。两种方法的原理都是一样的利用【中间人攻击】的原理来实现。 1、前端开发Fiddler抓包指南1.1 准备工具 Fiddler(https://www.telerik.com/fiddler)willow(http://qzonetouch.github.io/commonWidget/willow)如果有代理需求可以加上1.2 Fiddler设置图 (1-1) fidder设置图 (1-2) https抓包设置左侧箭头这里一定不要忘了,建议选择 all processes,也可以根据自己的需求来选择。右侧箭头第一个箭头的意思是直接在本机安装根证书第二个箭头的意思是导出证书文件用于手机安装第三个是重置安装(不要点错了,重置了就要重新导出安装了)** 注意事项:** - 建议操作方法:点击 第三个箭头位置的选项 -> 会弹出一系列的框,基本上都是点击是 . 安装完成后PC电脑的浏览器就可以抓HTTPS的包了。pc抓包设置到此结束。 - 手机抓包点击 第二个箭头位置,导出证书,
工程伦理0、概论o1、教育意义1、提升工程师伦理素养,加强工程从业者的社会责任2、有利于推动可持续发展,实现人与自然的协同进化3、有利于协调社会各群体,确保社会稳定和谐o2、教育目标1、培养工程伦理意识和责任感2、掌握工程伦理的基本规范3、提升工程伦理的决策能力o3、课程意义1、建设创新型国家,制造强国的需求2、实施卓越工程师计划的要求3、促进国家工程伦理学科建设的一项重要举措4、高校德育改革的迫切要求(学科\理论\体系建设)1、工程与伦理o1、什么是工程工程与技术技术o发明为核心,体现人类改造世界的方法、技巧、技能工程o广义:人为达到某种目的,通过一段时间的协作的活动过程。o以建造为核心的活动o狭义:满足人类需求目标,应用各种知识与技术,调动自然和社会资源,通过人的写作,建造具有预期使用价值的产品过程工程师o研究和发展o施工和生产o操作o管理和其他职能工程的过程生命周期o计划环节:提出、决策解决:必要性、可行性o设计设计思路、设计理念、实施方案o建造实施、安装、试验、验收o使用使用、运营、维护o结束报废结束工程活动的几个维度哲学o反
小码哥
十年老程序员
粤ICP备2023052298号-1