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

“软件工程”文章列表

一张技术文凭就是铁饭碗敲门砖的时代已经一去不复返了。如今,各大公司寻觅的是具有商业头脑的IT高手,而不是单纯的技术专家。如果你现在是一个编程高手,想要成为一名软件工程师,探索和学习就不能停止。不久之前,软件开发者的软件应用编程和测试工作是相对独立的。如今,DevOps(开发运营)革新浪潮来袭,强...
作者: 刘国强   2014-09-16 17:44:45 阅读:5544 标签:DevOps 运维
英文原文:Software Development: Fast and Slow 本文作者 Michael Dubakov 从事软件开发方面的工作,他在读了 DanielKahneman 的《思考,快与慢》后,思考了软件开发中的快与慢,并且把书中的一些思想应用到实际的软件开发中。下面是笔者对原...
作者: Michael Dubakov   2014-08-28 17:00:47 阅读:3687 标签:软件开发
1、软件长期运营存在什么问题 一个大规模的客户端软件的生命周期中,我们可以把它分为两个比较粗的时期。一个是前期的搭建软件的时期,即从无到有的时期;第二个是搭建完成之后,进入的一个稳定的运营时期。第二个时期才是最关键的,在这个时期我们会持续的迭加需求,持续的优化功能,而且第二个时期也是代码在慢慢...
2014-08-20 08:39:11 阅读:5223
一个正在持续增加新功能的软件,尤其是类似QQ这种做为一个超大规模客户端软件,又随时需要适应用户要求和发展的需求,需要不断的做快速的更新,开发节奏非常快。而且因为我们的用户是海量用户,用户的软硬件环境非常复杂。性能作为软件的用户第一体验,如何去系统性地保障软件的性能,对于QQ来说就变得非常重要。 ...
2014-06-20 12:43:25 阅读:2622 标签:软件开发 性能
英文原文:Swiss Army Knife Syndrome 如果大家认为这篇文章更多是在喷,我先说抱歉。“瑞士军刀综合症”的想法是起源于我和项目经理、客户、甚至其他开发者打交道的过程中产生的沮丧感,他们都以一种狭隘特殊的方式思考问题。我称之为“瑞士军刀综合症”。 瑞士军刀 “瑞士军刀...
作者: Allan MacGregor   2014-05-29 12:38:31 阅读:7211 标签:单一职责
这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。当然,这并不能说没有记录他们就没有做Code Review...
作者: 陈皓   2014-04-14 08:34:59 阅读:15614 标签:Code Review
Jim Bird是一位经验丰富的软件开发经理、项目经理与CTO,专注于软件开发与维护、软件质量与安全等领域中疑难问题的解决。在过去的15年间,Jim曾管理过团队建设并主导过高性能的财务系统的建设。他的主要兴趣在于如何提升小团队的效率以构建真正的软件:高质量、安全、可靠、高性能及适应性强。近日,J...
2014-03-07 18:22:22 阅读:10622 标签:代码审查
英文原文:El-Habya'a” or the Technical Debt 我们曾遇到过最后期限即将到来、时间非常紧迫的情况。当时,我们必须尽快修复Bug,然而其中的一个Bug特别坚韧,任我们百般努力也无可奈何!随后,我的某个同事接手了调试工作。他强行写入了一些应该从数据库中检索来获取的值—...
作者: Yaser Marey   2014-02-19 21:51:42 阅读:2581 标签:程序员 技术债 项目管理
[注:原文发布于2011年12月23日] 背景 现如今,单元测试、自动化验收测试、持续集成等技术手段已被很多项目团队所采用,它们可以在软件开发活动中很大程度的保证开发软件的正确性,即是否满足了新的需求并且没有破坏已有的需求。但是如果软件无法顺利的部署到生产环境上,就不能带来任何商业价值。 ...
作者: 冯智超   2013-12-15 12:31:01 阅读:1879 标签:持续集成 虚拟化 云计算
英文原文:Why Software Development Methodologies Suck 围绕软件开发实践和方法论,总有很多教条式的口水仗。阶段式(phase-gate)方法能够有效管理软件开发过程的风险,还是说只是风险管理中的花哨噱头?TDD真的能够促生出高品质软件?结对编程是代码评...
2013-06-20 18:01:18 阅读:4014 标签:软件开发管理
在《建设全功能团队》和《建设全功能团队——实践篇》两篇文章中,我的同事胡凯曾介绍过建设全功能团队的必要性和良好实践,此后在围绕这一话题的讨论中,很多人都分享了自己的理解,或看好,或看淡。在ThoughtWorks有许多团队一直在建设全功能团队方面实践着,在这篇文章中我希望与大家分享我从这些团队收...
作者: 吴少博   2013-06-07 10:37:41 阅读:3216 标签:团队管理
英文原文:The Best Developer Team Structure 在灭火时,有一种“水桶阵型”——队伍中所有人排成一列或几列,将水桶从水源处传递到火灾现场。这样在团队协作时甚至不需要语言交流,但显然不适用于软件开发。 Scott根据自身经验,针对软件开发总结了以下几点建议,不一定...
作者: Scott Porad   2013-06-05 16:18:50 阅读:3789 标签:开发团队
英文原文:Patterns for Continuous Delivery 当你有了持续集成需要的构建服务器和脚本之后,下一个问题肯定是:“我们该拿这些构建版本怎么办?”持续交付,以自动化或半自动化方式,将构建版本从一个环境提送(promote)到更接近实际生产的交付准备环境;这常常是公司在这...
作者: Jonathan   2013-05-20 08:41:01 阅读:5137 标签:持续交付
英文原文:11 Laws of The System Thinking in Software Development “我会更加努力地工作” —— 一匹名叫Boxer的马(出自乔治·奥威尔的《动物农庄》) 彼得·圣吉在其著作《第五项修炼》中提到的系统思维定律同样适用于软件开发。 1. 今...
作者: Andriy Solovey   2013-05-13 21:39:16 阅读:7414 标签:软件开发
什么是遗留系统(Legacy System)?根据维基百科的定义,遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序[1]。这一定义事实上并没有很好地揭露遗留系统的本质。我认为,遗留系统首先是一个还在运行和使用,但已步入软件生命周期衰老期的软件系统。它符合所谓的“奶牛规则”:奶牛逐渐衰老...
作者: 张逸   2013-04-23 22:23:57 阅读:2586 标签:遗留系统
【编者注】王淮是Facebook第二位中国籍工程师,也是第一位中国籍研发经理,他一手开创了Facebook的支付安全和客服工具领域。2011年他离开Facebook,回国成为天使投资人,希望用自己在Facebook的经验帮助创业者。 在详细说明Facebook产品开发流程的九大步骤之前,必须先...
作者: 王淮   2013-03-25 17:22:46 阅读:6033 标签:Facebook 开发流程
目前IT行业中,似乎“要不要做持续集成?”已经不再是讨论的焦点,取而代之的是“如何进行持续集成?”。在前一篇文章中,我介绍了Cruise团队持续集成的演进过程。在最后,还曾提及Cruise团队的持续部署。本文将结合团队的实际情况,与大家分享持续部署的实践心得。 “最后一哩”问题 持续集成解决...
作者: 乔梁   2013-02-18 17:42:55 阅读:3031 标签:持续部署
Facebook 从 2004 年的哈佛校园的学生项目在短短的 7~8 年的时间中快速增长为拥有 10 亿用户的世界上最大的社交网络,又一次见证了互联网创业成功的奇迹。同时它的产品研发流程也成为了众多互联网产品公司的追逐对象。今天我们来看一下 Facebook 在产品质量控制方面的实践。有人说,...
作者: Bill Liu   2012-12-01 20:03:35 阅读:3591 标签:Facebook
也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长。在我发表“如何提高代码质量”的这一系列文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量。我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题: 软件项目普遍存在的问题 1)新手 任何项目组成员都不...
作者: fangang   2012-11-20 22:59:38 阅读:8314 标签:Code Review
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。 1. 代码审查要求团队有良好的文化 团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。 ...
2012-11-20 16:29:05 阅读:5288 标签:Code Review