“软件工程”文章列表
前言 随着移动互联网的迅速普及,手机淘宝业务在迅速的成长,目前已经发展成为拥有40多个bundle(业务模块)的超大APP产品,在这后面有着数百名的研发人员的努力工作。业务的成长和人员的倍增给技术架构、团队合作、产品的交付都带来了巨大的挑战。本文将会讲述手机淘宝研发团队在两年的时间为了达到高质...
英文原文:The Best Process Is No Process 前年,Wikispeed团队掀起了一场业界风暴。它们把敏捷实践应用到了最传统的行业:汽车制造业。它们在3个月的时间里就研发了一款绿色汽车,而这原本需要经历10-25年的产品生命周期。 而且,得益于独立组件的测试驱动开发,...
英文原文:The Best Developer Team Structure 在灭火时,有一种“水桶阵型”——队伍中所有人排成一列或几列,将水桶从水源处传递到火灾现场。这样在团队协作时甚至不需要语言交流,但显然不适用于软件开发。 Scott根据自身经验,针对软件开发总结了以下几点建议,不一定...
英文原文:Why Software Development Methodologies Suck 围绕软件开发实践和方法论,总有很多教条式的口水仗。阶段式(phase-gate)方法能够有效管理软件开发过程的风险,还是说只是风险管理中的花哨噱头?TDD真的能够促生出高品质软件?结对编程是代码评...
英文原文:Multitasking Gets You There Later 作者:Roger Brown 译者:鲍央舟 发布于2010年8月31日 现代商务依靠多任务来完成工作。评价员工也基于的他们多任务能力。IT业人员会被例行指派到多个项目中去。我们是经常在这样做吗?多任务起作用吗?多任...
爱因斯坦曾经说过,如果他有一小时来拯救世界,他会花 55 分钟来定义问题,只花 5 分钟去寻找解决方案。除了在问题和解决方案上所花费的时间比例之外,我完全同意他对于在设法解决问题之前先理解问题的重视程度。 没有充分理解问题的后果 在软件工程中,理解问题是在系统需求定义阶段早期必须完成的工作。...
英文原文:Astonishments, ten, in the history of version control 引言:“如果你想要了解真正的历史,你需要回到在打孔卡上进行人工比对的年代。” —— Jim Rootham 在这个为鳕鱼编写传记都能够流行的年代,写一本记录程序员如何存储代码...
很多人应该都看过James whittaker的博客或新书 《How Google test software》,在这里我不想重复他的内容,而是从另外一个角度来分析对比Google是如何保障它的产品质量的。 首先申明的是本人并没有在Google工作过,所以没有第一手的经验,仅以一个旁观者的身份...
文/ 黄亮王立杰 持续集成作为一种敏捷软件开发实践,已经被越来越多的开发者所接受。持续集成倡导开发团队频繁地进行系统集成——通常一天一次到数次,每次集成都能被自动编译和测试验证,从而能在最短的时间内发现问题,缩短开发周期,提高软件质量。 笔者面对的是具有十多年开发维护历史的5个相互依赖产品,...
英文原文: How To: Live and Learn with Retrospectives 软件开发不是孤独的追击,它需要同其他开发者和其他部门协作。大多数组织建立的软件生命周期没有涉及到如何进行这些交互。现实是许多团队的过程并不符合他们的要求或没有得到一贯地遵循。当发生这种情况时,很容...
英文原文:Software Development: Fast and Slow 本文作者 Michael Dubakov 从事软件开发方面的工作,他在读了 DanielKahneman 的《思考,快与慢》后,思考了软件开发中的快与慢,并且把书中的一些思想应用到实际的软件开发中。下面是笔者对原...
本文是从 TDD leads to an architectural meltdown around iteration three 这篇文章翻译而来。
这些话来自于我们的软件领袖Jim Coplien——上世......
Facebook 从 2004 年的哈佛校园的学生项目在短短的 7~8 年的时间中快速增长为拥有 10 亿用户的世界上最大的社交网络,又一次见证了互联网创业成功的奇迹。同时它的产品研发流程也成为了众多互联网产品公司的追逐对象。今天我们来看一下 Facebook 在产品质量控制方面的实践。有人说,...
英文原文:Continuous Integration (作者:Martin Fowler,译者:滕云) 原文发布时间:2006年5月1日 翻译时间:2012年2月25日 持续集成是一种软件开发实践,在实践中项目成员频繁地进行集成,通常每个成员每天都会做集成工作,如此,每天整个项目将会有...
英文原文:On DVCS, continuous integration, and feature branches 翻译:乔梁 为了吸引大家的注意力,我想说:“特性分支是邪恶的化身”。 自2008年起,Mercurial (最近是Git)就成了我日常工作的工具,而且我喜欢使用分布式版本控...
英文原文:The Developer-Tester Divide 作者:Gil Zilberfeld 译者:蔡坚安 从此以后他们幸福地生活在一起 关于开发人员和测试人员的关系,人们阐述了很多,讨论了很多,争论了很多。而貌似一旦这两者坐在一起,对峙便开始了,两者间的争论多于相互认同。显然,这...
在《建设全功能团队》和《建设全功能团队——实践篇》两篇文章中,我的同事胡凯曾介绍过建设全功能团队的必要性和良好实践,此后在围绕这一话题的讨论中,很多人都分享了自己的理解,或看好,或看淡。在ThoughtWorks有许多团队一直在建设全功能团队方面实践着,在这篇文章中我希望与大家分享我从这些团队收...
目前IT行业中,似乎“要不要做持续集成?”已经不再是讨论的焦点,取而代之的是“如何进行持续集成?”。在前一篇文章中,我介绍了Cruise团队持续集成的演进过程。在最后,还曾提及Cruise团队的持续部署。本文将结合团队的实际情况,与大家分享持续部署的实践心得。 “最后一哩”问题 持续集成解决...
异常捕捉、处理是每个项目中必不可少的一部分,利用反射和XML配置技术实现一个通用的、灵活的、可配置的、高度可自扩展的异常处理框架对项目的整体健壮性以及异常处......
今年,“可观察性”(Observability)被引入到了 IT 领域。可观察性是一套理念系统。其重点是团队要融入可观察性的理念,特别是要求研发写出的应用是可观察的。将可观察性包含在你的需求之中,它是与扩展性,可用性同等重要的非业务性需求。 一个故事 距离伦敦 150 英里的地方有一座...