第一次发布代码,就好比借了一笔钱.只要通过不断重写来偿还债务,小额负债可以加速开发.但久未偿还债务会引发危险.复用马马虎虎的代码,类似于负债的利息.整个部门有可能因为松散的实现,不完全的面向对象的设计或其他诸如此类的负债而陷入窘境. ---维基百科 简介 技术负债(英语:Technical debt),又译技术债,也称为设计负债(design debt).代码负债(code debt),是编程及软件工程中的一个比喻.指开发人员为了加速软件开发,在应该采用最佳方案时进行了妥协,改用了短期内能加速软…
当企业想要迁移到一个 DevOps 模型时,经常需要偿还高等级的技术债务 说得更明确一点,机构往往陷入「技术债务的恶性循环」中,以至于任何迅速.敏捷的迁移方式都无法使用.这是技术债务中的希腊债务危机水平. 在多数情况下,机构会将层与层之间的流程和管理添加到软件开发生命周期,从而缓解低质量版本.生产等级缺陷.不稳定的环境.性能不佳等问题,然而这么做只能是治标不治本. 那么,在企业丧失竞争之前,我们应该如何摆脱这个死亡漩涡,可以快速进行颠覆性创新,同时也腾出时间做一些别的事情. 如今,我们看到的一个…
什么是质量内建 随着时间的推移,我们项目的开发效率会逐渐降低,直到几年之后整个项目可能就无法维护,只能推倒重来.具体的表现首先就是随着时间推移,我们会发现整个需求列表里面能做的需求越来越少,因为每当我们增加一个新特性,需要改动的代码就非常多,所以最后每提出一个新的需求,团队评估出来的改动成本都非常高,导致最后难以增加新的特性. 第二个表现就是缺陷难以修复.我们做出来的系统只要有人用就会有反馈一些线上的故障,一开始代码很简单的时候修复起来是很快的,但是随着代码越来越复杂.代码行数越来越多,我们会发…
近日,在第三届未来网络发展大会SDN/NFV技术与应用创新分论坛上,新华三解决方案部架构师孟丹女士发表了主题为<NFV资源池实现中的技术探讨>的主题演讲. 孟丹指出,新华三的NFV核心理念主要分为三个部分:标准.开放.整体交付.标准指的是新华三的方案符合ETSI架构.有编排层.生命周期管理层.云平台层,有NFVI,有VNF网元,有EMS:开放是指层之间是解耦的,网元可以跑在友商的服务器.云平台上,目前多家运营商已经做过解耦测试.整体交付是和单设备交付相对应的,现在交付的是端到端方案. 上图中的…
在过去的十年中,对软件开发的需求已急剧发展.软件已成为公司获得竞争优势的关键优势,特别是如果您的公司属于SaaS范畴.通过在SDLC中实施瀑布等传统流程,组织现在正在向敏捷过渡,以便以更快的速度在市场上交付软件.为了应对RAD(快速应用程序开发),出现了许多新方法,例如CI / CD,DevOps,Shift左键测试,为了更好地构建,开发和优化软件交付. 即便如此,试图同时保持质量和速度仍然是一个真正的挑战,测试方法可以帮助或降低整个加速过程.今天,我们将探讨在DevOps中进行连续测试的重要性…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5892671.html 使用MVP解决技术债务 原文:https://medium.com/picnic-engineering/tackling-technical-debt-with-mvp-67e805ed5103#.couu0d5i0 免责申明:这篇博客并不是讲关于怎么使用MVP的方式(上帝知道关于这些已经太多了)去写Android代码.而仅仅是我的个人…
阿里技术突破性创新 世界顶级大规模数据处理分析管理会议VLDB(VERY LARGE DATA BASE)于9月1日至5日在杭州举办,该会议也是也是大数据云计算领域的盛会,阿里巴巴两个团队在这个会议上分别发表论文.两篇论文分别描述了在超大规模分布式集群环境下如何保持性能稳定,以及构建大规模的数据库云(RDS)的核心技术.两篇论文代表了云技术水平处于世界前列的阿里巴巴近些年的研究成就. 两篇论文的研究与阿里巴巴的云计算平台“飞天”相关. 分布式调度系统:“伏羲” 其中的分布式调度系统称为”伏羲”.…
如今的软件开发是在遍地敏捷,人人讲唯快不破的时代,哪有人有时间思考代码质量,设计的质量? 哪个又不是从一堆代码中杀出血路来实现还有一个功能?一个产品都存活不了几年,何必考虑什么可维护性? 我们追求进度的时候,总是要牺牲些东西.或是破坏了一些东西等着后面补. 这就是技术债! 管理不好,债台高筑,即使不破产,也是要拆东墙.补西墙的玩平衡. 现实是残酷的.但不影响我们抬头看看这个世界. 技术债务 技术债务(Technical Debt)这个词,我最早是从InfoQ关于Uber的一个訪谈中了解到的,正好…
在DevOps中,你可能经常会听到类似这样的一些话: 功能还没集成进来. 功能还没部署上去. 功能还没交付. 功能还没上线. 功能还没发布. 请问,以上“集成”.“部署”. “交付”.“上线”.“发布”这几个概念,表达的是同一个意思吗?如果不是,它们有什么区别呢? 我相信大多数人都会为此而迷茫,本人也常常被这几个术语搞晕. 也许你会说,上面的例子太简单,难于判断.好吧,下面再给你一些更多的例子(均来自DOM[DevOps Master,简称DOM]认证课程的权威教材): 还要再花几天才能把这个新…
DevOps实践:驭DevOps之力强化技术栈并优化IT运行 主旨 这本书并非坐而论道,而是介绍了DevOps全流程中的许多实践,以及相应工具的运用.虽然随着时代的推移,工具将来可能会过时,但是这些实践的应用和相应的方法是不会过时的,所以对于其中各种实践必要性和相关方法的讲解,是特别值得注意的.作者认为一切皆代码,所以各个章节是围绕代码的生命周期展开的,提到了这些环节的实践: 管理代码 构建代码 测试代码 部署代码 监控代码 DevOps和持续交付简介 DevOps的由来 Patrick Deb…