网站备案主体负责人中煤第五建设有限公司网站
2026/2/16 19:34:56 网站建设 项目流程
网站备案主体负责人,中煤第五建设有限公司网站,广州开发区建设局网站黄埔,公司logo设计要求有哪些Monorepo架构 现代前端工程开发的趋势和痛点 趋势痛点 一、Monorepo 简介及其与包管理工具#xff08;npm、yarn、pnpm#xff09;之间的关系二、项目开发与管理模式 Monolithic#xff08;单体应用#xff09;开发模式Multirepo#xff08;多仓多模块#xff09;开发模…Monorepo架构现代前端工程开发的趋势和痛点趋势痛点一、Monorepo 简介及其与包管理工具npm、yarn、pnpm之间的关系二、项目开发与管理模式Monolithic单体应用开发模式Multirepo多仓多模块开发模式Monorepo 单仓多模块开发模式3、前端包管理工具与 workspace 模式Workspace 工作区npm 与 yarn 的历史遗留问题pnpm解决幽灵依赖现代前端工程开发的趋势和痛点趋势现代前端工程开发的已不再是之前的单一静态页面的开发而是随着业务场景的多样性和复杂性在不断的演进下面是一张来字节web infra团队在知乎分享的前端趋势概览图第一个趋势是现代前端开发不再仅限于网页而是涉及到的平台越来越多比如 Web 端、Node、客户端和跨平台等。第二个趋势是业务场景越来越多复杂性也越来越大特别是近年来也涌现了很多重前端交互的应用比如 vscode、Figma。第三个趋势就是随着业务场景的和多平台开发的出现不可避免的使得前端团队规模在不断增大。痛点1、代码复用困难在维护多个项目的时候有一些逻辑很有可能会被多次用到比如一些基础的组件、工具函数在polyrepo中需要为这些共享的代码单独维护一个仓库之后会发布为单独的npm包供各个项目引用。这样虽然能够解决代码复用的问题但是之后这些公共依赖的升级会非常的繁琐比如说现在所有的项目中都使用了shared-ui包的1.1.0版本突然某个ui组件想要修改一些样式就需要走下面的流程在shared-ui中修改样式发布一个1.1.1版本的包所有的项目都需要将shared-ui更新到最新版本如果升级完之后发现有问题这些步骤还得重复的执行依赖shared-ui的库越多这个过程花费的时间就越多同时这个过程也会存在一定的沟通成本。2、重复的项目基建在Polyrepo中各个项目之间是割裂的状态因此每个项目都需要频繁创建git仓库配置CI、Lint规则、构建等而且为每个项目创建的基建后续都需要有人来维护依赖升级。3、项目构建时间长现代的前端项目开发已经离不开打包工具(webpack、rollup)整体开发形式为项目开发时使用模块化机制开发 经过构建工具打包形成成品代码 成品代码最终在不支持模块化的浏览器中执行。虽然构建打包工具为前端开发提供了便利 但也因为在项目运行之前需要提前将代码构建成一个成品整体这导致在本地开发时也引入了新问题:随着项目变得越来越大全量构建整个项目就需要花费很长的时间在本地开发时无论每次修改多少代码都需要重新全量构建大大降低了整体的开发效率。一、Monorepo 简介及其与包管理工具npm、yarn、pnpm之间的关系Monorepo模式Monorepo是一种项目开发与管理的策略模式它代表单一代码仓库Monolithic Repository。在Monorepo模式中所有相关的项目和组件都被存储在一个统一的代码仓库中而不是分散在多个独立的代码仓库中这些项目之间还可能会有依赖关系。包管理工具npm、yarn、pnpm等是用来管理项目依赖、发布包、安装依赖的工具它们都提供了对工作区workspace的支持允许在单个代码库中管理多个项目或包。这种工作区支持在单个代码库中同时开发、测试和管理多个相关的项目而无需使用多个独立的代码仓库。关系这些包管理工具与monorepo的关系在于它们可以为monorepo提供依赖安装与依赖管理的支持借助自身对workspace的支持允许在monorepo中的不同子项目之间共享依赖项并提供一种管理这些共享依赖项的方式这可以简化依赖项管理和构建过程并提高开发效率。二、项目开发与管理模式项目管理模式发展到现在先后有三种项目管理模式的历史进程Monolithic单体应用开发模式在软件开发的早期阶段通常采用单体应用的开发模式。整个应用程序由一个单一的代码库、构建和部署流程组成。这种模式简单易懂适合小型项目。优点易于集成和部署。所有的代码在一个仓库里面不需要特别的集中管理和协调也可以直接在本地部署调试。易于重用。所有的代码都在一个仓库中开发人员开发的时候比较容易发现和重用已有的代码。易于规范代码。所有的代码在一个仓库当中就可以标准化依赖管理规范化代码的风格。缺点代码维护性变差随着功能以及代码量的大幅增加代码功能耦合性增强。构建时间过长任何小修改必须重新构建整个项目这个过程往往很长。稳定性差任意一个功能出现问题可能导致整个应用挂掉。Multirepo多仓多模块开发模式为了解决单体应用的扩展性问题团队开始将项目拆分为多个独立的仓库每个仓库独立维护自己的代码和构建流程。这种模式更适合大型和复杂的项目因为它提供了更好的隔离性和独立性同时可以更灵活地管理多个团队的工作。优点每一个项目都有一个独立的仓库职责单一。代码量和复杂性受控项目由不同的团队独立维护、边界清晰。单个项目也易于自治开发测试部署和扩展不需要集中管理集中协调。 利于进行权限控制可以针对单个仓库来分配权限权限分配粒度比较细。缺点代码和配置很难共享每个仓库都需要做一些重复的工程化能力配置如eslint/test/ci等且无法统一维护且不利于代码复用。依赖的治理复杂模块越来越多涉及多模块同时改动的场景增加。如何保障底层组件升级后其引用到的组件也能同步更新到位。这点很难做到如果没及时升级各工程的依赖版本不一致往往会引发一些意想不到的问题。开发人员缺乏对整个项目的整体认知开发人员一般只关心自己的服务代码看不到项目整体造成缺乏对项目整体架构和业务目标整体性的理解。存储和构建消耗增加假如多个工程依赖pkg-a那么每个工程下node_modules都会重复安装pkg-a对本地磁盘内存和本地启动都是个很大的挑战。而且每个模块的发布都是相对独立的当一次迭代修改较多模块时总体发布时效就是每个发布流程的串联。对发布者来说是一个非常大的负担。Monorepo 单仓多模块开发模式回归单体管理Monorepo是一种试图回归单体管理优势的方法但保留了多仓库开发的某些优点。它允许在一个代码库中管理多个项目、组件或服务提供更好的代码共享和重用性。现代工具支持现代的版本控制系统和工具链使得Monorepo开发模式更为可行例如像Pnpm、Yarn、Lerna和Turborepo等工具它们提供了更好的管理、构建和部署多个项目的能力。优点保留 multirepo 的主要优势代码复用模块独立管理分工明确业务场景独立代码耦合度降低管理所有项目的版本控制更加容易和一致降低了不同项目之间的版本冲突。可以统一项目的构建和部署流程降低了配置和维护多个项目所需的工作量。缺点Monorepo可能随着时间推移变得庞大和复杂导致构建时间增长和管理困难git clone、pull的成本增加。权限管理问题项目粒度的权限管理较为困难容易产生非owner管理者的改动风险。注意Monorepo绝不是简单地将代码搬到一个仓库即不等于Monolith。在Monorepo中每个子模块仍然是独立的有独立的版本可以独立发包不受其他模块的限制最重要的是Monorepo的build、test都是增量的只有发生更改的子模块会进行构建和测试而不需要重新构建和测试整个代码库。这可以大大加快持续集成CI的速度提高开发效率。与Mulitrepo相比Monorepo中的子模块可以代码共享可以最大程度复用依赖、复用工作流、复用基础配置。单体仓库和多仓库两种方案能同时存在一定是各有利弊的不要将自己锁定到一种方案上选择最合适的才是最好的。3、前端包管理工具与 workspace 模式Workspace 工作区包管理工具通过workspace功能来支持Monorepo模式。Workspace是指在一个代码库中管理多个相关项目或模块的能力。包管理工具通过以下方式实现workspace的支持代码结构组织在Monorepo中不同的项目或模块通常位于同一个代码库的不同目录中。包管理工具通过识别并管理这些目录结构可以将它们作为独立的项目或模块进行操作。共享依赖Monorepo中的不同项目或模块可以共享相同的依赖项。包管理工具可以通过在根目录中维护一个共享的依赖项列表以确保这些依赖项在所有项目或模块中都可用。交叉引用在Monorepo中不同项目或模块之间可能存在相互引用的情况。包管理工具需要处理这些交叉引用以确保正确解析和构建项目之间的依赖关系。版本管理Monorepo中的不同项目或模块可能具有不同的版本。包管理工具需要能够管理和跟踪这些版本并确保正确地安装和使用适当的版本。构建和测试包管理工具需要支持在Monorepo中进行增量构建和测试。这意味着只有发生更改的项目或模块会重新构建和测试而不需要重新构建和测试整个代码库。前端目前最主流的三款包管理工具npm7、yarn、pnpm都已经原生支持workspace模式也就是说不管使用哪个包管理工具我们都可以实现其与monorepo的配合但最终依然选择pmpm作为包管理工具主要是由于pnpm很好的解决了npm与yarn遗留的历史问题npm 与 yarn 的历史遗留问题扁平化依赖算法复杂需要消耗较多的性能依赖串行安装还有提速空间。大量文件需要重复下载对磁盘空间的利用率不足。虽然在同一个项目中我不会重复的安装依赖 d了但是如果我有100个项目100个项目都需要用到某个包那么这个包依然会被下载100次也就是在磁盘的不同地方写入100次扁平化依赖虽然解决了不少问题但是随即带来了依赖非法访问的问题项目代码在某些情况下可以在代码中使用没有被定义在 package.json中的包这种情况就是我们常说的幽灵依赖。pnpm解决幽灵依赖那pnpm是如何解决上述问题的?留着下期为大家揭晓吧2025开年AI技术打得火热正在改变前端人的职业命运阿里云核心业务全部接入Agent体系字节跳动30%前端岗位要求大模型开发能力腾讯、京东、百度开放招聘技术岗80%与AI相关……大模型正在重构技术开发范式传统CRUD开发模式正在被AI原生应用取代最残忍的是业务面临转型领导要求用RAG优化知识库检索你不会带AI团队微调大模型要准备多少数据你不懂想转型大模型应用开发工程师等相关岗没项目实操经验……这不是技术焦虑而是职业生存危机曾经React、Vue等热门的开发框架已不再是就业的金钥匙。如果认为会调用API就是懂大模型、能进行二次开发那就大错特错了。制造、医疗、金融等各行业都在加速AI应用落地未来企业更看重能用AI大模型技术重构业务流的技术人。如今技术圈降薪裁员频频爆发传统岗位大批缩水相反AI相关技术岗疯狂扩招薪资逆势上涨150%大厂老板们甚至开出70-100W年薪挖掘AI大模型人才不出1年 “有AI项目开发经验”或将成为前端人投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘大模型目前在人工智能领域可以说正处于一种“炙手可热”的状态吸引了很多人的关注和兴趣也有很多新人小白想要学习入门大模型那么如何入门大模型呢下面给大家分享一份2025最新版的大模型学习路线帮助新人小白更系统、更快速的学习大模型2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询