您的位置:知识库 » 软件工程

“软件工程”文章列表

英文原文:11 Laws of The System Thinking in Software Development “我会更加努力地工作” —— 一匹名叫Boxer的马(出自乔治·奥威尔的《动物农庄》) 彼得·圣吉在其著作《第五项修炼》中提到的系统思维定律同样适用于软件开发。 1. 今...
作者: Andriy Solovey   2013-05-13 21:39:16 阅读:8288 标签:软件开发
什么是遗留系统(Legacy System)?根据维基百科的定义,遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序[1]。这一定义事实上并没有很好地揭露遗留系统的本质。我认为,遗留系统首先是一个还在运行和使用,但已步入软件生命周期衰老期的软件系统。它符合所谓的“奶牛规则”:奶牛逐渐衰老...
作者: 张逸   2013-04-23 22:23:57 阅读:3212 标签:遗留系统
【编者注】王淮是Facebook第二位中国籍工程师,也是第一位中国籍研发经理,他一手开创了Facebook的支付安全和客服工具领域。2011年他离开Facebook,回国成为天使投资人,希望用自己在Facebook的经验帮助创业者。 在详细说明Facebook产品开发流程的九大步骤之前,必须先...
作者: 王淮   2013-03-25 17:22:46 阅读:6421 标签:Facebook 开发流程
目前IT行业中,似乎“要不要做持续集成?”已经不再是讨论的焦点,取而代之的是“如何进行持续集成?”。在前一篇文章中,我介绍了Cruise团队持续集成的演进过程。在最后,还曾提及Cruise团队的持续部署。本文将结合团队的实际情况,与大家分享持续部署的实践心得。 “最后一哩”问题 持续集成解决...
作者: 乔梁   2013-02-18 17:42:55 阅读:3588 标签:持续部署
Facebook 从 2004 年的哈佛校园的学生项目在短短的 7~8 年的时间中快速增长为拥有 10 亿用户的世界上最大的社交网络,又一次见证了互联网创业成功的奇迹。同时它的产品研发流程也成为了众多互联网产品公司的追逐对象。今天我们来看一下 Facebook 在产品质量控制方面的实践。有人说,...
作者: Bill Liu   2012-12-01 20:03:35 阅读:3968 标签:Facebook
也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长。在我发表“如何提高代码质量”的这一系列文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量。我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题: 软件项目普遍存在的问题 1)新手 任何项目组成员都不...
作者: fangang   2012-11-20 22:59:38 阅读:9923 标签:Code Review
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。 1. 代码审查要求团队有良好的文化 团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。 ...
2012-11-20 16:29:05 阅读:5774 标签:Code Review
文/ 黄亮王立杰 持续集成作为一种敏捷软件开发实践,已经被越来越多的开发者所接受。持续集成倡导开发团队频繁地进行系统集成——通常一天一次到数次,每次集成都能被自动编译和测试验证,从而能在最短的时间内发现问题,缩短开发周期,提高软件质量。 笔者面对的是具有十多年开发维护历史的5个相互依赖产品,...
2012-10-19 10:58:52 阅读:4162 标签:持续集成
作为 ThoughtWorks 的一名咨询师,我曾不止一次的被问到 ThoughtWorks 的交付项目和一般意义上的外包到底有何区别。要区分差别,首先要对外包加以定义,外包从最传统的 IT 外包到业务流程的外包,以及最近几年新兴的知识流程外包,其本身的定义也在不断的演化。每种外包有其不同的诉求...
作者: 李响   2012-10-13 12:17:37 阅读:6266
原文发表于InformIT 持续交付是一种软件开发策略,用于优化软件交付流程,以尽快得到高质量、有价值的软件。这种方法让你能更快地验证业务想法,通过直接在用户那里进行试验,做到快速迭代。 尽管《持续交付》一书主要讲的是工程实践,但持续交付的概念对整个产品交付过程都有重大意义,包括对特性的”fu...
作者: 乔梁   2012-10-01 10:47:12 阅读:2168 标签:持续交付
英文原文:On DVCS, continuous integration, and feature branches 翻译:乔梁 为了吸引大家的注意力,我想说:“特性分支是邪恶的化身”。 自2008年起,Mercurial (最近是Git)就成了我日常工作的工具,而且我喜欢使用分布式版本控...
作者: jez   2012-08-31 15:32:03 阅读:3849 标签:持续集成 特性分支 Git
英文原文:11 proven practices for more effective, efficient peer code review SmartBear Software 团队® 花费了数年时间去搜索已有的代码评审研究成果,并从超过 100 家公司的 6000 多名程序员那里,收集了...
作者: Jason Cohen   2012-08-11 13:40:38 阅读:6247 标签:Code Review
乔梁,十多年软件开发及项目管理经验,专注于提高软件企业提高交付能力,推广最佳实践。曾为多个大型电信企业、互联网企业提供专业的软件交付咨询服务。现任百度项目管理部高级架构师,负责百度敏捷过程改进与持续交付推广实施。译有《持续交付》。曾任Thoughtworks资深咨询师,对敏捷项目管理及持续集成有...
作者: 博客园团队   2012-08-02 11:00:50 阅读:2848 标签:持续集成
此页图解 git 中的最常用命令。如果你稍微理解 git 的工作原理,这篇文章能够让你理解的更透彻。 基本用法 上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。git addfiles把当前文件放入暂存区域。git commit给暂存区域生成快照并提交。git reset...
作者: Mark Lodato   2012-07-02 15:54:30 阅读:10683 标签:Git
爱因斯坦曾经说过,如果他有一小时来拯救世界,他会花 55 分钟来定义问题,只花 5 分钟去寻找解决方案。除了在问题和解决方案上所花费的时间比例之外,我完全同意他对于在设法解决问题之前先理解问题的重视程度。 没有充分理解问题的后果 在软件工程中,理解问题是在系统需求定义阶段早期必须完成的工作。...
作者: Marília Coelho   2012-07-01 17:10:19 阅读:4297
英文原文:Measuring Code (编者注:原文译者将Measure译为“评估”,这里改为了“测量”) 你的代码写得怎么样?如果你不属于平庸的80%,我敢打赌你的代码一定写得很棒。也许你正在维护遗产代码(不再被广泛支持的系统相关的源代码),这些代码究竟能有多糟糕?情况会有所好转吗?虽然...
2012-06-30 14:37:59 阅读:2930 标签:代码测量
很多人应该都看过James whittaker的博客或新书 《How Google test software》,在这里我不想重复他的内容,而是从另外一个角度来分析对比Google是如何保障它的产品质量的。 首先申明的是本人并没有在Google工作过,所以没有第一手的经验,仅以一个旁观者的身份...
作者: Bill Liu   2012-06-28 14:03:39 阅读:4250 标签:Google 软件质量 测试
英文原文:Technical Debt a Perspective for Managers 作者:Mark Levison 译者:赖勤毅 发布于 2010年11月5日 现在已经到第十次迭代开发周期了,你的项目开发速度开始变慢。在之前的几个迭代周期中,团队没有像以前那样完成很多的“故事场景”...
2012-06-07 13:35:17 阅读:2478 标签:技术债务
英文原文:Multitasking Gets You There Later 作者:Roger Brown 译者:鲍央舟 发布于2010年8月31日 现代商务依靠多任务来完成工作。评价员工也基于的他们多任务能力。IT业人员会被例行指派到多个项目中去。我们是经常在这样做吗?多任务起作用吗?多任...
2012-06-02 22:25:24 阅读:4359 标签:敏捷开发
处理遗留系统,几乎是每个程序员都不可能绕过的一件麻烦事儿。因为时间压力,技能不足以及功能复杂等诸多原因,常常使得遗留系统的代码变得糟糕混乱,可读性与维护性差,无法保证功能的可测试性,纠缠不清的代码让类、方法之间紧紧耦合在一起。如果遗留系统能够正常工作,那么我们还可以置之不理,即使代码接近腐烂的边...
作者: 张逸   2012-05-28 15:33:08 阅读:2427