DevOps的原理及应用详解(一)
本系列文章简介:
在当今快速变化的商业环境中,企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求,因此,DevOps(Development和Operations的组合)应运而生,成为了解决这些问题的有效方法。
DevOps是一种强调软件开发人员(Development)和运维人员(Operations)之间紧密协作与沟通的文化、方法和工具集。它打破了传统软件开发和运维之间的壁垒,通过自动化、持续集成、持续交付、监控与反馈等手段,实现了软件交付的高效率、高质量和高可靠性。
DevOps的原理在于将开发、测试、部署和运维等各个环节紧密连接起来,形成一个闭环的反馈系统。通过自动化的工具和流程,减少人工干预,提高软件交付的效率和质量。同时,DevOps强调共享责任、持续改进和自我反馈的文化,使得整个团队能够更好地协同工作,共同追求业务目标。
在实践中,DevOps已经得到了广泛的应用,并取得了显著的成效。越来越多的企业开始采用DevOps来加速软件交付、提高系统稳定性、优化资源利用和增强安全性。通过引入DevOps,企业可以更加快速地响应市场变化、满足客户需求,提升自身的竞争力。
然而,DevOps的实施也面临着一些挑战,如文化变革、技术集成、安全问题和人员培养等。为了克服这些挑战,企业需要制定合适的策略、选择合适的工具链、建立有效的沟通机制和培训机制。
本系列文章旨在详细阐述DevOps的原理、应用及面临的挑战,并提供相应的解决方案。希望通过本系列文章的介绍,大家能够更加深入地了解DevOps的概念和实践方法,为企业实现快速、可靠和安全的软件交付提供参考。
欢迎大家订阅《Java技术栈高级攻略》专栏(PS:近期会涨价),一起学习,一起涨分!
目录
一、引言
1.1 DevOps的定义
1.2 DevOps的起源与发展
1.3 DevOps与传统IT运维的区别
二、DevOps的原理
2.1 文化变革
2.1.1 打破开发与运维的壁垒
2.1.2 共享责任与协作
2.1.3 持续改进与自我反馈
2.2 自动化
2.3 测量与反馈
2.4 安全性
2.5 共享与标准化
三、DevOps的应用
3.1 提高开发效率
3.2 增强系统稳定性
3.3 优化资源利用
3.4 增强安全性
3.5 提高客户满意度
四、DevOps的实践案例
五、DevOps面临的挑战与解决方案
六、总结与展望
七、结语
一、引言
1.1 DevOps的定义
DevOps定义
DevOps,是Development(开发)和Operations(运维)两个词的结合,是一种重视软件开发人员(Dev)和信息技术运维人员(Ops)之间沟通、合作与整合的文化、方法和实践。DevOps旨在打破传统的“开发”与“运维”之间的壁垒,通过自动化、持续集成、持续交付、监控与反馈等手段,实现软件产品从开发到部署、从运行到维护的全流程高效协同。
DevOps不仅关注技术层面的整合和优化,更强调一种跨职能团队之间的协作精神和文化变革。它鼓励团队成员共同承担责任,通过共享目标、知识和工具,来提高软件交付的速度、质量和可靠性。
DevOps的核心理念包括:
-
自动化:通过自动化工具和流程,减少手动操作和人为错误,提高软件交付的效率和可靠性。
-
持续集成与持续交付:确保代码能够频繁地集成到共享仓库中,并自动进行构建、测试和部署,以便快速响应变更和修复问题。
-
监控与反馈:通过全面的监控和反馈机制,及时发现并解决问题,确保系统的稳定性和性能。
-
共享责任:开发、测试、运维等团队成员共同承担责任,通过跨职能协作来解决问题。
-
持续改进:鼓励团队成员不断学习和改进,通过实践和经验积累来优化流程和提高效率。
DevOps的实施需要整个团队的共同努力和协作,同时也需要企业的支持和推动。通过引入DevOps,企业可以更加快速地响应市场变化、满足客户需求,提升自身的竞争力。
1.2 DevOps的起源与发展
DevOps的起源与发展可以清晰地归纳为以下几个关键阶段和要点:
起源背景
- 敏捷开发模式的兴起:在2000年前后,敏捷开发方法开始受到广泛关注。它强调跨部门、跨角色的协作与沟通,注重快速响应变化,持续交付价值。然而,这种模式也给运维带来了新的挑战,因为软件的功能不断增加,版本迭代速度加快,运维团队需要与开发团队紧密合作,但往往存在沟通壁垒。
DevOps的初现
- 概念提出:在2007年左右,Patrick Debois首次提出“DevOps”这个术语,旨在打破开发团队与运维团队之间的隔阂,促进双方之间的沟通与协作。
- 实践探索:DevOps的实践开始被一些先驱者探索,他们尝试通过改进团队协作、自动化工具和流程等方式来提高软件交付的速度和质量。
关键事件与技术发展
- 持续集成和持续交付(CI/CD)的兴起:CI/CD的概念逐渐得到推广,它强调自动化测试、持续集成和持续交付,以实现更频繁的软件交付。
- 云计算的发展:在2010年前后,云计算平台的兴起(如AWS、Azure、Google Cloud)为DevOps提供了更灵活、可伸缩的基础设施,支持快速开发和部署。
- Docker和容器技术:2013年左右,Docker的出现推动了容器技术的普及,容器化简化了应用程序的交付和部署,为DevOps实践提供了更便捷的方式。
- 微服务架构:2014年以后,微服务架构的兴起推动了软件架构的变革,使团队更容易实现独立部署和维护,与DevOps理念相辅相成。
工具与平台的发展
- DevOps工具链的丰富:随着DevOps的不断发展,出现了各种DevOps工具,如Jenkins、Ansible、Chef、Puppet等,用于自动化、配置管理和部署。
新兴趋势
- 人工智能和机器学习集成:在DevOps流程中集成人工智能(AI)和机器学习(ML)已成为必需品,它们正在改变DevOps中处理自动化、问题解决和预测分析的方式。
- DevSecOps的崛起:随着组织认识到在早期和整个DevOps流程中集成安全性的重要性,DevSecOps已成为一项标准。它强调将安全性融入整个软件开发和运维流程。
业界成功案例
- Netflix、Amazon、Etsy、Facebook等公司都通过实施DevOps实践,实现了快速交付、高质量的软件,提高了市场竞争力,为客户创造了更好的用户体验。
综上所述,DevOps的起源可以追溯到敏捷开发模式的兴起以及持续开发所带来的运维问题。随着云计算、容器技术、微服务架构等技术的发展,DevOps得到了快速发展和广泛应用。未来,随着人工智能和机器学习的集成以及DevSecOps的崛起,DevOps将继续保持健康且快速增长的态势。
1.3 DevOps与传统IT运维的区别
DevOps与传统IT运维在多个方面存在显著的区别,以下是这些区别的详细阐述:
- 目标与策略:
- DevOps主要聚焦于持续集成、持续交付(CI/CD),以及软件开发和运维的紧密结合,旨在实现更快速、更高质量的软件交付。
- 相对而言,传统IT运维主要关注系统的稳定性、可用性和安全性,经常侧重于故障恢复和系统维护。
- 工作流程与自动化:
- DevOps提倡自动化和持续改进,其工作流程涵盖了从代码开发、测试到部署等多个环节,都尽可能地实现自动化。
- 传统IT运维则往往涉及更多的手动操作,如硬件维护、软件更新和安全防护等。
- 工具与技术:
- DevOps通常使用如Jenkins、Docker和Kubernetes这类现代化工具进行自动化操作,支持CI/CD流程。
- 传统IT运维则更多使用如Nagios、Puppet或Ansible这样的传统工具,侧重于系统监控和配置管理。
- 团队结构与协作:
- DevOps鼓励开发和运维团队之间的密切合作,甚至出现了“DevOps工程师”这一跨界角色,强调跨职能团队的协作。
- 传统IT运维往往作为一个独立的部门存在,与开发团队相对隔离,团队之间的协作较少。
- 文化与思维方式:
- DevOps倡导一种开放、合作和持续改进的文化,鼓励团队成员共同承担责任,通过共享目标、知识和工具来追求业务目标。
- 传统IT运维则更多地强调规范、流程和安全性,文化上相对保守。
- 对变化的响应速度:
- DevOps通过自动化的工具和流程,能够更快速地响应市场变化和客户需求,实现快速迭代和交付。
- 传统IT运维在响应速度和灵活性上则相对较慢。
- 对业务目标的支持:
- DevOps的目标是缩短软件开发生命周期,并使用持续交付来提供高质量的软件,从而更好地支持业务目标。
- 传统IT运维则更多关注系统的稳定性和安全性,对业务目标的直接支持较少。
总结来说,DevOps通过整合开发和运维的各个环节,实现了软件交付的高效协同和持续改进,更好地支持了企业的业务目标。而传统IT运维则更多关注系统的稳定性和安全性,团队之间相对隔离,响应速度和灵活性较低。
二、DevOps的原理
2.1 文化变革
2.1.1 打破开发与运维的壁垒
DevOps的原理之文化变革,特别是在打破开发与运维的壁垒方面,主要体现在以下几个方面:
- 文化转变:
- DevOps强调软件开发和运维团队之间的协作与沟通,要求双方共同追求整体业务目标,而不是各自为政。这种文化转变促使团队成员形成相互尊重、合作共赢的意识。
- 通过制定共同的价值观和工作规范,建立良好的团队氛围,有助于打破传统开发和运维部门之间的壁垒。
- 协作与通信:
- DevOps原理强调跨功能团队之间的紧密协作与开放通信。它主张打破传统软件开发中存在的隔阂,让开发人员、运维人员以及其他相关人员共同参与到产品的生命周期中。
- 这种紧密的协作和通信有助于团队更快地解决问题,提高工作效率。实施DevOps文化要求团队成员具备跨职能的技能,鼓励持续学习和知识共享。
- 自动化:
- 自动化是DevOps的核心原则之一,通过自动化工具和流程,减少人工干预,提高软件开发、部署和运维的效率和质量。
- 自动化可以覆盖代码开发、测试、部署等所有阶段,减少人为因素带来的错误和延迟。这种自动化不仅限于技术操作,还包括在监控与日志记录方面的自动化。
- 持续集成与持续交付(CI/CD):
- CI/CD是DevOps中的关键实践,允许团队频繁地将代码更改合并到主分支,并快速地将新功能和修复部署到生产环境。
- 这种做法有助于消除长周期的发布等待,降低变更的风险,并确保软件始终处于可随时发布的状态。CI/CD的实践促进了开发与运维之间的紧密协作,共同确保软件的质量和交付速度。
- 快速反馈:
- DevOps原理强调通过快速反馈来及时调整和优化流程。这种反馈可以来源于自动化测试结果、监控系统、用户反馈等多个渠道。
- 建立一个能够迅速响应反馈的机制是确保快速反馈有效性的关键。这可能涉及调整团队结构、引入灵活的工作方法或采用更为高效的工具和技术。
2.1.2 共享责任与协作
DevOps的原理之文化变革中,共享责任与协作是核心要素之一,它强调团队之间的紧密合作和共同承担责任。以下是关于共享责任与协作的详细解释:
- 共享责任:
- DevOps打破了传统开发和运维的界限,要求团队成员共同追求整体业务目标。在这种文化下,团队成员不再各自为政,而是共同承担软件开发、部署和运维的责任。
- 通过制定共同的价值观和工作规范,团队成员形成了一种互相尊重、合作共赢的意识。每个人都认识到自己对产品的成功负有责任,从而促进了团队之间的紧密合作。
- 共享责任有助于减少责任推脱的情况,使得团队成员在面对问题时能够迅速团结起来共同应对。这种文化变革使得团队更加灵活、高效,能够更好地应对快速变化的市场需求。
- 协作:
- DevOps强调不同团队之间的持续协作,包括开发团队、运维团队、质量保障团队等。通过加强团队协作,DevOps能够提高软件交付的速度和质量,同时减少错误和延迟。
- 为了实现协作,DevOps提倡使用自动化工具和流程来减少人工干预。这些工具可以覆盖代码开发、测试、部署等所有阶段,确保团队成员之间的无缝衔接。
- DevOps还强调透明度和持续性的沟通。团队成员需要实时共享信息,避免信息孤岛的出现。通过使用ChatOps等工具,团队成员可以更加即时和有效地进行交流,促进问题的快速解决和决策的加速。
- 协作不仅限于技术层面,还包括跨部门的合作。DevOps鼓励不同部门之间的沟通和协作,以便更好地理解业务需求和市场动态,从而做出更加明智的决策。
- 文化与价值观的转变:
- DevOps的文化变革要求团队成员具备开放、合作和共享的精神。通过制定共同的目标和价值观,团队成员可以形成更加紧密的联系,并共同为实现业务目标而努力。
- 这种文化变革还需要团队成员不断学习和适应新技术、工具和最佳实践。DevOps鼓励团队成员保持持续学习的态度,并鼓励分享知识和经验,以便更好地应对快速变化的市场需求。
总之,DevOps的原理之文化变革之共享责任与协作强调团队成员之间的紧密合作和共同承担责任。通过打破传统界限、加强协作、使用自动化工具和流程以及建立透明和持续的沟通机制,DevOps能够提高软件交付的速度和质量,并帮助组织应对快速变化的市场需求。
2.1.3 持续改进与自我反馈
DevOps的原理中,文化变革是一个核心要素,它强调持续改进与自我反馈的重要性。以下是关于这两个方面的详细解释:
- 持续改进:
- 定义:持续改进是DevOps方法论的关键组成部分,它鼓励团队成员不断寻求优化和改进的机会,以提高软件交付的质量和效率。
- 实践:
- 在DevOps实践中,团队应该定期检查和评估整个软件交付过程,并针对发现的问题和瓶颈制定改进计划。
- 这种持续的改进工作有助于团队更好地理解和解决问题,并促进整个团队在技术、流程和文化方面的成长。
- 影响:
- 持续改进能够不断优化软件交付过程,提高开发速度和效率。
- 例如,通过引入自动化工具和流程,可以显著减少手动操作和人为错误,从而加快软件的开发和部署速度。
- 自我反馈:
- 定义:自我反馈是DevOps中实现持续改进的重要机制,它涉及团队对软件交付过程进行持续的监控、度量和报告,以便及时发现问题并采取相应的改进措施。
- 实践:
- 团队需要建立各种监控机制来收集与软件交付相关的数据,如测试数据、运维数据、用户反馈等。
- 通过对这些数据的分析,团队可以了解软件交付的效果和质量,并发现潜在的问题和改进机会。
- 团队需要定期回顾和分析这些反馈数据,以确定改进的方向和优先级,并制定相应的改进措施。
- 影响:
- 自我反馈机制有助于团队及时发现问题并采取相应的改进措施,从而确保软件交付的质量和可靠性。
- 通过持续的自我反馈和改进,团队可以不断提升自身的软件交付能力,并更好地满足客户需求。
综上所述,DevOps的原理中的文化变革强调持续改进与自我反馈的重要性。通过持续的改进和自我反馈,团队可以不断优化软件交付过程,提高开发速度和效率,并确保软件交付的质量和可靠性。这种文化变革有助于打破传统的开发和运维之间的壁垒,促进团队成员之间的协作和沟通,从而实现更快速、更高质量的软件交付。
2.2 自动化
详见 《DevOps的原理及应用详解(二)》
2.3 测量与反馈
详见 《DevOps的原理及应用详解(二)》
2.4 安全性
详见 《DevOps的原理及应用详解(三)》
2.5 共享与标准化
详见 《DevOps的原理及应用详解(三)》
三、DevOps的应用
3.1 提高开发效率
详见 《DevOps的原理及应用详解(四)》
3.2 增强系统稳定性
详见 《DevOps的原理及应用详解(四)》
3.3 优化资源利用
详见 《DevOps的原理及应用详解(五)》
3.4 增强安全性
详见 《DevOps的原理及应用详解(五)》
3.5 提高客户满意度
详见 《DevOps的原理及应用详解(五)》
四、DevOps的实践案例
详见 《DevOps的原理及应用详解(六)》
五、DevOps面临的挑战与解决方案
详见 《DevOps的原理及应用详解(七)》
六、总结与展望
详见 《DevOps的原理及应用详解(七)》
七、结语
文章至此,已接近尾声!希望此文能够对大家有所启发和帮助。同时,感谢大家的耐心阅读和对本文档的信任。在未来的技术学习和工作中,期待与各位大佬共同进步,共同探索新的技术前沿。最后,再次感谢各位的支持和关注。您的支持是作者创作的最大动力,如果您觉得这篇文章对您有所帮助,请分享给身边的朋友和同事!
相关文章:
DevOps的原理及应用详解(一)
本系列文章简介: 在当今快速变化的商业环境中,企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求,因此,DevOps(Development和Operations的组合)应运而生&a…...
【冲刺秋招,许愿offer】第 三 天(水一天)
【冲刺秋招,许愿offer】第 二 天(水一天) 知识点牛客emo 知识点 今天端午,上午去摘杏下午理发,一天没咋看电脑。晚上刷刷LeetCode看看八股。 牛客 spring事务失效的情况 捕获到异常,自己手动处理 方法修…...
使用 C# 学习面向对象编程:第 6 部分
继承 亲爱的读者,继承意味着从源头继承一些东西。例如,儿子可以继承父亲的习惯。同样的概念也用于面向对象编程;它是 OOP 的第二大支柱。 继承允许创建一个新类,该新类继承另一个类或基类的属性,继承这些成员的类称为…...
分布式训练基础入门
1.单节点训练 单节点训练也会转换为等价的并行训练,如在GPU内同一wrap内的32个Thread执行同一指令,但处理不同的数据。 训练程序往往实现了一个多层神经网络的执行过程。该神经网络的执行由一个计算图(Computational Graph)表示。…...
AWS S3存储桶中如何下载文件
AWS S3存储桶中如何下载文件 1.单个下载 AWS S3 控制台提供了下载单个文件的功能,但是不支持直接在控制台中进行批量下载文件。您可以通过以下步骤在 AWS S3 控制台上下载单个文件: 1.1登录 AWS 管理控制台。 1.2转到 S3 服务页面。 1.3单击…...
「网络原理」三次握手四次挥手
🎇个人主页:Ice_Sugar_7 🎇所属专栏:计网 🎇欢迎点赞收藏加关注哦! 三次握手&四次挥手 🍉连接管理🍌三次握手🍌意义🍌四次挥手🍌TCP 状态转换…...
第二十四章 SOAP 错误处理 - 发生故障时添加 WS-Addressing 标头元素
文章目录 第二十四章 SOAP 错误处理 - 发生故障时添加 WS-Addressing 标头元素%SOAP.Fault12.Code 属性SubcodeValue %SOAP.Fault12.Text 属性Textlang 发生故障时添加 WS-Addressing 标头元素 第二十四章 SOAP 错误处理 - 发生故障时添加 WS-Addressing 标头元素 %SOAP.Fault…...
CSS真题合集(一)
CSS真题合集(一) 1. 盒子模型1.1 盒子模型的基本组成1.2 盒子模型的实际大小1.3 盒子模型的两种类型1.4 设置盒子模型1.5 弹性盒子模型 2. BFC2.1 主要用途2.2 触发BFC的方法2.2 解决外边距的塌陷问题(垂直塌陷) 3. 响应式布局3.1…...
Golang | Leetcode Golang题解之第144题二叉树的前序遍历
题目: 题解: func preorderTraversal(root *TreeNode) (vals []int) {var p1, p2 *TreeNode root, nilfor p1 ! nil {p2 p1.Leftif p2 ! nil {for p2.Right ! nil && p2.Right ! p1 {p2 p2.Right}if p2.Right nil {vals append(vals, p1.V…...
离奇问题:java通过poi读取excel单元格的小数时会出错
问题 java通过poi读取excel单元格的小数时会出错,分析后发现是因为会损失精度。 处理的代码 /*** DataFormatter 直接new就行:DataFormatter df new DataFormatter();*/ private String getNumericCellValue(Cell cell, DataFormatter df) {String val…...
前端框架是什么
前端框架是预先编写好的JavaScript代码集合,旨在帮助开发者快速搭建Web应用程序的界面和交互逻辑。以下是一些常见的前端框架,按照字母顺序排列,并简要介绍其特点: Angular 由Google开发,原名AngularJS,后…...
Feign的动态代理如何配置
Feign 本身已经内置了动态代理的功能,它允许你声明一个接口,并通过这个接口来发送 HTTP 请求,而不需要你手动编写发送 HTTP 请求的代码。Feign 会为你创建这个接口的代理实现,并在运行时拦截对这些方法的调用,将它们转…...
ReactRouter——路由配置、路由跳转、带参跳转、新route配置项
目录 写在前面 (一)初步使用router 1.安装react-router-dom 2.创建router结构 3.嵌套路由 4.配置not found页面 (1)确切路由报错页面 (2)未配置路由报错页面 5.重定向 (二)路由跳转 1.组件跳转 2.NavLink 3.js跳转 (三)传递参数 1.searchParams(query)参数 2…...
异步处理耗时逻辑
在 Spring Boot 中实现 RESTful 接口的快速响应,同时在后台继续处理耗时逻辑,可以使用异步处理技术。以下是一个详细的示例,展示如何使用 Async 注解和 CompletableFuture 来实现这一需求。 使用 Async 注解 步骤 1:启用异步支持…...
Switch 之 配置SNMP
Description SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络管理的协议,它用于在网络中对设备进行监控和管理。 SNMP定义了一种管理框架,其中包括管理站、代理和管理信息库(M…...
微软如何打造数字零售力航母系列科普13 - Prime Focus Technologies在NAB 2024上推出CLEAR®对话人工智能联合试点
Prime Focus Technologies在NAB 2024上推出CLEAR对话人工智能联合试点 彻底改变您与内容的互动方式,从内容的创建到分发 洛杉矶,2024年4月9日/PRNewswire/-媒体和娱乐(M&E)行业人工智能技术解决方案的先驱Prime Focus Techn…...
Nginx之正向代理配置示例和说明
一、NGINX正向代理功能简介 Nginx的正向代理功能允许局域网中的客户端通过代理服务器访问Internet资源。具体来说,Nginx作为一种流行的Web服务器和反向代理服务器,在正向代理方面的应用也相当实用。以下是其正向代理功能的几个关键点: 访问外…...
Linux文件与目录管理
#Linux系统基础 文件与目录管理 一、常用命令 文件、目录操作命令说明cd(cd …/ cd ~/ cd/ cd path)切换目录 cd ~等于 cd /rootls显示目录文件ls -l 或者 ll以详细信息的方式显示目录文件pwd查看当前工作目录cp (-i -r)复制文件或目录mkdir创建目录,…...
08.组件间通信-插槽
1.默认插槽 父组件 <template><div class"father"><h3>父组件</h3><div class"content"><Category title"热门游戏列表">//默认插槽内容<ul><li v-for"g in games" :key"g.id&quo…...
在AWS上运行的EKS Elastic Kubernetes Service 创建集群Cluster,Node group, Nodes
1. 前提条件 AWS Account: https://aws.amazon.com/free/Installing KubeCtl CLI https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.htmlEKS Cluster RoleIAM Role for Node GroupVPCEC2 Key Pair which can be used to SSH to the worker nodesAWS …...
10款堪称神器的宝藏软件,相见恨晚
今天给大家带来10款堪称神器的宝藏软件,每一个都非常好用,让你直呼相见恨晚。 1、知犀思维导图 知犀思维导图是大家组织信息、梳理思维的重要利器,它可以帮助我们以图形化的方式呈现思维过程,让整体思路变得清晰直观。通过使用知…...
为什么会选择厚膜作为芯片电阻?
引线键合 引线键合是集成电路 (IC) 或其他半导体器件与其封装之间互连的常见解决方案。它还可用于将IC连接到其他电子设备或将其他厚膜电路相互连接。引线键合通常被认为是最具成本效益和最灵活的互连技术,用于组装大多数半导体封装。引线键合…...
基本药物采购使用
--医院采购基本药物金额数 select sum(采购基本药物金额数) 采购基本药物金额数 from ( select sum(t.实收金额) 采购基本药物金额数 from 住院费用记录 t,药品规格 a where t.收费细目ida.药品id and t.记录状态1 and a.基本药物基药 and t.收费细目id not in( …...
k8s小型实验模拟
(1)Kubernetes 区域可采用 Kubeadm 方式进行安装。(5分) (2)要求在 Kubernetes 环境中,通过yaml文件的方式,创建2个Nginx Pod分别放置在两个不同的节点上,Pod使用hostPat…...
leetcode168:Excel表列名称
题目链接:168. Excel表列名称 - 力扣(LeetCode) class Solution { public:string convertToTitle(int columnNumber) {string ss1;int MOD 0;if(columnNumber < 26){ss1 (columnNumber A - 1);return ss1;}while(columnNumber){int MO…...
排课系统1
参考:https://gitee.com/lequal/CourseArrange 软件技术栈 当然,我会逐一解释这些技术栈的含义:### 前端技术栈1. **Vue2.x**:- Vue.js 是一个流行的前端 JavaScript 框架,用于构建用户界面和单页应用程序(SPA)。- 2.x 表示 Vue.js 的第二个主要版本,它提供了一套响应…...
uni-popup
UniPopup是uni-app框架中的一个轻量级组件,它提供了一种便捷的方式来显示弹出窗口(如对话框、通知、选择器等)。uni-popup可以帮助开发者在不同平台(如Web、H5、小程序等)上快速实现一致的用户体验,支持自定…...
torchmetrics,一个无敌的 Python 库!
更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个无敌的 Python 库 - torchmetrics。 Github地址:https://github.com/Lightning-AI/torchmetrics 在深度学习和机器学习项目中,模型评估是一个至关重要的环节。为了准确…...
如何快速上手Python,成为一名数据分析师
如何快速上手Python,成为一名数据分析师 成为一名数据分析师需要掌握Python编程语言以及数据分析相关的知识和技能。以下是一些步骤和建议,帮助你快速上手Python并成为一名数据分析师: 学习Python基础知识:首先,你需要…...
MC服务器怎么搭建
MC服务器怎么搭建?随着《我的世界》(Minecraft,简称MC)的火爆,越来越多的玩家和社区开始搭建自己的MC服务器,与朋友共享创造的乐趣。但搭建一台稳定、高效的MC服务器并不是一件容易的事。今天,我们就来聊聊…...
粉红色的网站首页/广州灰色优化网络公司
2019独角兽企业重金招聘Python工程师标准>>> Storm 如何分发第三方依赖jar 博客分类: 分布式计算 Hadoop一般用在离线的分析计算中,而storm区别于hadoop,用在实时的流式计算中,被广泛用来进行实时日志处理、实时统计…...
电商运营主要做什么工作/网站运营推广选择乐云seo
51nod 1244 莫比乌斯函数之和 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号。具体定义如下: 如果一个数包含平方因子,那么miu(n) 0。例如…...
wordpress多用户模版/市场营销案例100例
marker on google Maps Page 186 在谷歌地图上增加你的地理坐标。 更多有关Google Maps JavaScript API http://code.google.com/apis/maps/documentation/javascript/ 使用方法如下。 需要在原来的基础上增加一个方法在上一篇博客的showMap()函数中。是加入 function addMarke…...
如何免费弄一个网站/网站推广的作用在哪里
新建基础软件工程 作者: RootCode 申明:该文档仅供个人学习使用 一、写在前面 目前 Keil 的四款产品(软件):MDK-ARM、C51、C251、C166,在用法上极为相似,包括本文讲述的新建软件工程。 本文以…...
鄂州网吧暂停营业/seo的搜索排名影响因素主要有
C语言程序设计Copyer:Vigiking ;第一章 计算机语言与C语言概述 ;?机器语言 最早问世,用二进制代码构成指令。 如: 100000 () 110000 (-) 用机器语言编程的缺点: ─繁琐、不直观、不易调试。 如计算y2x23x-1需要七八条指令。 ─移植性差。 依…...
怎么查看网站根目录/百度一下首页网页百度
一插上网线电脑会自动重启解决方法,网线,解决方法,插上,自动重启,电脑一插上网线电脑会自动重启解决方法易采站长站,站长之家为您整理了一插上网线电脑会自动重启解决方法的相关内容。今天遇到关于电脑的灵异事件,一插上网线电脑会自动重启,只…...