在软件开发的广阔世界中,行为驱动开发(Behavior Driven Development,简称BDD)逐渐成为一种重要的开发实践,因为它提倡将业务需求作为开发的驱动力,而不是仅仅关注代码本身。这篇文章将详细介绍BDD的核心概念、方法和价值。
【编者按】Docker改变了应用程序开发领域的很多事情,已经成为时下最流行的开源项目之一,而且也从根本上改变了人们构建应用程序思维方式。Docker正在改变云的开发实践,允许任何人以整合别人容器的形式利用封装社区的最佳实践,这就像云组件的乐高玩具。 以下为译文: Docker就像一场森林大火,这个新的Linux容器技术以它自己的方式点燃了周围的一切,我们许多人难以跟上它蔓延的速度。Docker不仅是历史上最流行的开源项目之一,而且也从根本上改变了人们构建应用程序的思维方式。 严格来说,许多基于Docker
Docker的发展势态如同森林大火,势不可挡。这项新型的Linux容器技术引燃了一路上的一切东西,面对其迅猛发展的势头,我们许多人还没有回过神来。Docker不仅是有史以来最受欢迎的开源项目之一,它还从根本上改变了人们考虑构建应用程序的方式。 基于Docker的应用程序背后的许多理念从严格意义上讲并非很新颖,但Docker给那些旧观念带来了全新视角。借助许多云开发实践,Docker促进了最佳实践,比如12-Factor应用程序。这些最佳实践当初是为了构建基于PaaS的应用程序而开发的,如今普遍适用于基于Do
导语 由中国信息通信研究院举办的首届“精益软件工程大会”已于今日6月16日开幕。 关于精益软件工程大会 云赋新生,精益求精 随着云计算的蓬勃发展以及数字化转型的推进,各行业头部企业都已经开始云上软件开发实践,并形成了良好的带头和示范作用。云计算提升了软件开发运维效率,云测试打破了效能瓶颈进而提升软件质量,以混沌工程为代表的技术理念保障了云上系统稳定性。新一代软件工程将从开发效能升级、软件质量提升、系统稳定性保障三个维度全面革新。 在此背景下,中国信息通信研究院将举办首届“精益软件工程大会”。大会以“云赋
【前置条件:你已经在Linux下搭建好了Jenkins的服务且安装了相应的plugin】
近日,国内领先的自主物联网操作系统(RT-Thread)厂商睿赛德科技联合其高级会员国内领先RISC-V物联网芯片公司中科蓝讯正式发布基于AB32VG1 RISC-V评估板,AB32VG1评估板原生搭载RT-Thread物联网操作系统,基于RT-Thread Studio提供SDK,并配备了数百页开发实践指南,践行为开发者提供易获取、易用的RISC-V开发平台的初心。
前置条件:你已经在Linux下搭建好了Jenkins的服务且安装了相应的plugin
向 DevOps 的过渡需要文化理念和心态上的转变。简单来说,DevOps 的宗旨就是消除两个传统上孤立的团队(开发团队和运营团队)之间的壁垒。有些组织甚至没有独立的开发团队和运营团队,工程师可能身兼两职。利用 DevOps,这两个团队可以携手合作,共同提高开发人员的生产力,同时增强运营的可靠性。他们力求频繁沟通、提高效率,并改善客户服务的质量。他们能够完全掌控自己的服务,并且经常越过自己的既定角色或职能的传统工作范畴,思考最终用户的需求以及解决这些需求。质保和安全团队也可以与这两个团队紧密协作。凡是采用 DevOps 模式的组织,无论组织结构如何,参与团队都会将整个开发和基础设施生命周期视为己任。
openIDL 平台提供了一个标准化的数据存储库,简化了监管报告,并支持交付下一代风险和保险应用程序
敏捷测试方法已在软件开发和测试生命周期中不断变化的企业所采用。优秀的敏捷实践要求开发和测试活动必须同时进行,与传统瀑布模型相比,其结构非常不同。因此,敏捷测试方法也与传统测试方法完全不同。
1949年,Ward Cunningham 出生于印第安纳州的密歇根市,并在莱克县的一个小镇中长大。怀揣着对计算机浓厚的兴趣,在普渡大学学习期间,他获得了跨学科工程(电子工程和计算机科学)学士学位以及计算机科学硕士学位。1978年,Ward Cunningham 完成了全部学业。
在软件开发生命周期中,从系统模型到软件模型的过渡是一项关键任务。系统模型关注整个系统的结构和行为,而软件模型更集中于软件组件的详细设计和实现。本文将介绍如何平滑地从系统模型过渡到软件模型,确保一致性和有效性。
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。 看完这段话,估计还是有点懵。怎么理解呢?我是这样理解的: 软件集成是软件开发过程中的一个环节,这个环节的工作一般会包括以下流程:合并代码---->安装依赖---->编译---->测试---->发布。软件集成的工作一般会比较细碎繁琐,为了不影响开发效率,以前软件集成这个环节一般不会经常进行或者只会等到项目后期再进行。但是有些问题,如果等到后期才发现,解决问题的代价很大,有可能导致项目延期或者失败。因此,为了尽早发现软件集成错误,鼓励团队成员应该经常集成他们的工作,通常每个成员每天应该至少集成一次。这就是所说的持续集成。所以说,持续集成是一种软件开发实践。 软件集成的工作细碎繁琐,以前是由人工完成的。但是现在鼓励持续集成,那岂不是要累死人,还影响开发效率。所以,应该考虑将软件集成这个工作自动化,这就出现了所谓的持续集成系统。
1什么是持续集成 持续集成Continuousintegration,简称CI 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile)在软件工程领域越来越红火,如何能在不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发
DevOps、 SRE 和 平台工程是对软件工程和IT运维领域内三种不同但相关的学科的比较。每种方法在现代软件开发和IT基础设施管理中都扮演着关键角色。了解它们之间的差异和相似之处对于寻求优化软件交付和运营效率的组织至关重要。
这个原则突出了人的重要性。无论有多么完善的流程和先进的工具,它们都无法替代人的创造性、直觉和理解。人际交互的价值远超过僵化的流程和工具,它能提供更好的反馈,促进问题的快速解决。
DevOps消除了障碍,并减轻了开发人员和运营人员之间的紧张关系。革命性的DevOops!
正所谓有人的地方就有江湖,有设计的地方也一定会有架构。如果你是一位软件行业的老鸟,你一定会有这样的经历:一个业务的初期,普通的 CRUD 就能满足,业务线也很短,此时系统的一切都看起来很 nice,但随着迭代的不断演化,以及业务逻辑越来越复杂,我们的系统也越来越冗杂,模块彼此关联,甚至没有人能描述清楚每个细节。当新需求需要修改一个功能时,往往光回顾该功能涉及的流程就需要很长时间,更别提修改带来的不可预知的影响面。于是 RD 就加开关,小心翼翼地切流量上线,一有问题赶紧关闭开关。
导语 腾讯作为国内敏捷实践的先行者和引领者,与全国高校合作,共同助力软件工程人才培养。敏捷开发是大型互联网公司目前以及计划使用的主流软件工程方法,是高校软件工程相关课程关注的重点方向之一。腾讯自2006年起推动研发模式的敏捷进化,如今已形成系统化的、成熟的敏捷研发体系,敏捷研发文化在腾讯深入人心。 基于成为各行业数字化助手的战略,腾讯正在快速将公司积累的知识和能力对接给各行业,腾讯敏捷开发文化和方法作为第一批能力,在2018年教育部产学合作协同育人项目(第一批)中正式对接给学校,为高校软件工程课程提供
DevOps 已成为不可或缺的软件开发方法。得益于其诱人的优势,例如更快的软件交付、更高的质量和高客户满意度。在疫情期间,DevOps 获得了巨大的重视,因为它简化了远程协作以促进敏捷开发实践和基础设施灵活性。事实上,83% 的受访组织在 2021 年实施了 DevOps 实践。
Development Containers将容器配置为功能齐全的开发环境,为开发者提供了一个一致、可配置和可重复使用的开发环境,这对于项目的持续集成和持续部署(CI/CD)流程尤为重要。
什么是持续集成? 持续集成(Continuous integration,简称CI)。 根据敏捷大师Martin Fowler的定义,“持续集成是一种软件开发实践。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度。 为什么要持续集成? 1 快速发现错误:每完成一点更新,就集成到主干,可以快速发现错误,定
使用A/B测试的技术将新功能或某项功能的不同变体推向不同组别的用户,这些功能可通过比较指标和用户行为进行评估。
精益软件开发是精益制造原则和实践在软件开发领域的变体。它基于丰田生产方式(TPS),由敏捷社区引入并发展。精益产品开发的目的是消除软件生产中的浪费和持续改进。
软件测试是软件开发过程中至关重要的一环,它确保了软件的质量和稳定性。随着软件开发的快速发展,软件测试的重要性日益凸显。本文将深入探讨软件测试的艺术,帮助读者理解测试的原则、方法和技术,并掌握如何在实际项目中运用它们。
Lean UX(精益用户体验)和Agile UX(敏捷用户体验)这两种方法对于设计师来说并不陌生,但对于设计新人来说,想准确地对二者进行区分是件不容易的事。如果你在谷歌中搜索“Lean UX 和 Agile UX 的区别”, 然后一篇篇地阅读相关的文章,你会发现很多观点和立场是互相矛盾的,最终还是一脸茫然。实际上,我们在讨论任何概念时,只要以其在实际中的应用为导向,就不会过分纠结。对于精益用户体验和敏捷用户体验,我们只需知道它们的渊源,核心原则,优缺点,再根据这些来判断其在产品开发中的适用性,就已经足够了。有一点可以肯定:在实际的产品设计与开发流程中,二者大多数时候是相辅相成,混合使用的。
无事在家,闲得发慌,上周六面试华为的配置管理工程师,让我明白了在社会大行业里配置管理其实是个更为专业的岗位,涉及到软件开发的各个流程,数据的产生,规范的定义,代码的持续集成,基线管理,当然也涉及到供应链的一些东西,在工作中发现问题,解决问题,推动一些流程规范的制订,对流程中出现的问题进行修正等等。而我在原公司的配置管理更多是个兼职,是为软件工程师+配置管理工程师,特别是在软件部改革后,配置方向更多的边缘化,更多是DD会议召开,BUG发布及合并,代码审核数据汇总。也难怪配置管理会是一个兼职,软件上做的工作仅仅是配置管理(CM)这个岗位很小的一部分,也不可能花大价钱养一个人在这个岗位上了。
《计算机程序的结构和解释》(在业界也称为SICP)是一本经典的书,它教编程的基础知识。
ThoughtWorks的敏捷开发方法一直是一种神秘存在。在敏捷开发还没有主流化的年代,为了让外界理解ThoughtWorks全球团队怎么做敏捷,我们商定了一个“60% Scrum + 40% XP”的经典答案。当然其实ThoughtWorks的敏捷开发既不是Scrum,也不是XP。
世界需要更多的软件,但受限于 IT 成本,企业不再盲目扩张 IT 团队,而是转向于从研发效率下手,做出了流程、平台、规范等一系列动作。然而,并不是每个企业和管理者都明白,开发者不是流水线上的工人,不考虑实际情况通过严苛的规范标准去束缚开发者,最终得到的结果,只会是更大的团队矛盾,研发效率和质量的降低。 因此,为了提升软件开发效率,许多公司的重心放在了构建和采用开发者工具,还有一些开源团队正在用爱发电,并且,观察到这一需求的持续增长,不少专注于开发者工具的初创公司正在陆续诞生,这一类型的公司就如同他们的工具一
QECon全球软件质量&效能大会上海站 倒计时3天 会议时间:9月25-26日 9:00--18:00 会议地点:上海闵行区宝龙艾美酒店 9月25日上午主会场日程 09:05-09:35 话题:从数据到知识:智能化软件开发实践之路 彭鑫 复旦大学计算机科学技术学院副院长、软件学院副院长、教授、博士生导师 中国计算机学会软件工程专委会副主任,上海市计算机学会青工委主任,主要研究方向 包括软件开发大数据分析、智能化软件开发、云 原生与智能化运维、泛在计算软件系统等。带领复旦大学CodeWisd
《实战Python设计模式:实战Python设计模式:可复用面向对象软件开发实践 》是本人根据自己在实际开发工作中积累的有关Python语言,设计模式的经验,想法写成的一本书,由电子工业出版社出版。谨此推荐给各位。
CI/CD(持续集成/持续交付)是现代软件开发中的关键实践,旨在提高开发流程的效率、减少错误、缩短交付周期,以满足不断增长的市场需求。本文将深入探讨CI/CD的概念、重要性、工作原理、常见工具和最佳实践,同时提供一些示例代码,以帮助读者更好地理解如何实施CI/CD流程以及它如何影响软件开发。
传统IT技术团队中通常都有多个独立的组织-开发团队、测试团队和运维团队。开发团队进行软件开发、测试团队进行软件测试,运维团队致力于部署,负载平衡和发布管理。 他们之间的职能有时重叠、有时依赖、有时候会冲突。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
使用hexo静态博客已经半年多了,总体感觉挺好用的。但是有一点一直让我很苦恼,由于这是静态博客,所以每次写完博客都需要先generate,再发布deploy。而且博客的基本配置信息没办法同时更新到github,还需要我再push上去,这样一番下来,虽然花费不了太长时间,但是时间长了就比较难以忍受了。 特别是重装系统之后或者用别人的电脑,需要重新搭建环境,对像我这种喜欢捣腾系统的人,简直了… 前几天偶然看到了Travis CI,可以用来自动部署博客,心甚喜之,来与大家分享。
🎉你好,我是猫头虎博主!在现代的微服务架构中,服务网格已成为一个不可或缺的部分,为微服务提供了一种高效、安全、透明的通信机制。而CI/CD(持续集成和持续交付)则是当前软件开发领域的热门词条,它确保了软件开发的快速迭代与高质量交付。那么,如何将服务网格与CI/CD集成并充分发挥它们的优势呢?在这篇文章中,我们将深入探讨这两者的结合,并分享一些实用的代码和技术案例。对于希望提高微服务交付效率和质量的团队或个人来说,这无疑是一篇必读的技术博客。🚀
DevOps 是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
至少20年前,一些顶尖的软件设计人员就已经认识到领域建模和设计的重要性,但令人惊讶的是,这么长时间以来几乎没有人写出点儿什么,告诉大家应该做哪些工作或如何去做。尽管这些工作还没有被清楚地表述出来,但一种新的思潮已经形成,它像一股暗流一样在对象社区中涌动,我把这种思潮称为领域驱动设计(domain-driven design)。
正如敏捷开发能够解决工程技术瓶颈,微服务则能够解决架构层面的瓶颈。 2014年出现的“微服务”理念仿佛一道闪电,让技术人员意识到这一全新架构风格的重要意义。面向服务架构崛起又复衰落,微服务架构与SOA
由于书是由英文书籍翻译,读起来会难免拗口,本次分享是由《敏捷软件开发》结合网上相关资料总结而成。
业界领导者认为CI / CD是应用程序开发周期的重要组成部分,因为企业渴望缩短产品上市时间。持续集成和持续交付有助于改善和提高产品质量,同时降低项目成本。该博客将帮助您了解CI / CD管道的功能,其挑战和好处。在开始详细讨论之前,让我们看一下基本术语。
备受瞩目的2018Qcon"全球软件开发大会“近期在北京国家会议中心顺利举办。来自全球的架构师、工程总监、高级开发人员齐聚北京,共同探讨了未来软件开发方向。 作为 InfoQ 的重要合作伙伴,达观数据
这篇文章摘自Nicole Forsgren博士,Jez Humble和Gene Kim 的Accelereate摘录 。
部分开发人员只是片面的理解与执行CI,但对其原理与价值知之甚少。本文旨在分享XP极限编程与CI持续集成的定位与核心价值,让每位开发人员都能够理解其价值,更好的运用。
不再将测试视为独立阶段,TestOps 将其嵌入到 DevOps 框架中,作为一个持续的要素。
领取专属 10元无门槛券
手把手带您无忧上云