五种类型的程序员

我在代码之路上曾经遇到过很多奇怪的对手,也遇到过奇怪的队友。我至少接触了五种不同的“代码斗士”。其中一些有才的战友有助于开发工作的进行,而另一些看起来阻碍了我的每一个计划。

然而,他们全都在软件开发的“万神殿”中拥有一席之地。如果不能将这些不同风格的程序员协调好的话,你会发现你的项目会花费很多时间、不够稳定或者代码难以读懂等问题。[......]

阅读全文

代码不是文学作品

我在最近两个工作过的公司(Etsy和Twitter)成立过代码阅读小组,一些人向我征询关于阅读代码以及运作代码阅读小组的建议。想说的太多,一言以蔽之:不要成立代码阅读小组。你应该去成立小组但不是我稍后提到的那样,而在此之前,我要解释一下我是如何得出目前观点的。 [......]

阅读全文

关于程序员开发效率的悖论

程序员看起来应该都是一帮非常高产的人。

你总能看到他们在电脑桌前噼里啪啦的敲着键盘;他们焦急的等待会议结束,希望马上能回去编程。当被问起,他们总是说没有足够的时间编写出这些程序,需要立刻开始编码,这样才能及早完成。

看来,敲代码一定是最重要的事情了,不是吗?[......]

阅读全文

结对编程VS代码审查:对比开发者文化

从上一份工作到现在的这份工作,我从结对编程的开发文化过渡到同行代码审查,这个转变过程是一个非常有趣的经历。我认为我要记录下些我所注意到的变化。

你可以找到很多标题是/(结对编程|代码审查)的(利|弊)/这种样式的文章,这些文章的作者都可以给出一套清晰且有说服力执行方案。我认为只要权衡它们的利弊,这两种方案都是非常有效率的。我想就两者的权衡策略提供些相对客观的讨论。 [......]

阅读全文

2013年软件领域因缺陷导致的五大事件

时间飞逝,农历的2013年也快要跟大家说再见了。在软件领域里,2013年是个不平凡的一年,越来越多的科技产品走进了人们的生活,移动、大数据、云计算的快速发展给许多企业带来了各种机遇和挑战。作为程序员,除了要回顾自己一年所参与的项目之外,还得了解去年的业内动态、发生过哪些令人深思的互联网事件。[......]

阅读全文

技术栈的选择:从Groupon转向Node.js、淘宝去IOE谈起

在本文开始之前,先来看看一些案例。

  • 今年10月份,知名团购网站Groupon宣布完成了为期1年的工作——将Groupon美国站点从Ruby on Rails全面迁移到了Node.js。
  • 2010~2013期间,阿里巴巴逐步完成了“去IOE”运动,将“IBM小型机+Oracle数据库+ EMC2存储”架构逐步转向了“MySQL+PC Server”。
  • Twitter将其一些后端服务从Ruby on Rails迁移到了JVM上。
  • 京东商场后台抛弃.NET,使用Java重写。
  • Facebook iOS客户端使用HTML5重写,后又换回原生应用。
  • ……

[......]

阅读全文

敏捷开发流程管理须参考的3个要素

Olga Kouzina认为使用敏捷项目管理工具需要遵守三个原则:流程优先,工具次之;开发流程需可复用;正确做法需可复制。因为人们在选择或使用敏捷项目管理工具时,往往会忽略开发流程中的某些关键要素,所以他重点对第一个原则中提到的“流程”进行了介绍,以期帮助大家对开发流程有个更加完整的认识。[......]

阅读全文

项目开发中,你会倾向于质量还是速度?

在项目开发中,你会倾向于质量还是速度?当然,两者都很重要,理想的情况是,在规定的时间段内高质量的完成所有的东西。但是往往现实是比较残酷的,很少会给你这种机会,使得这两者不能兼得。

在快节奏的开发工作中,你必须争分夺秒,以在最后期限之前项目能够如期交付。但时间一紧,就容易忽视代码的质量和规范,或者不去写测试用例。反过来,如果太过追求项目的质量,则会拖延进度。

当客户需要你尽快交出成品[......]

阅读全文

敏捷开发的6个实战经验

在大型企业中经常是各种软件开发模式混用,一些采用敏捷开发,一些则是采用传统的瀑布式或RUP(统一软件开发过程)。敏捷开发,相对传统软件开发模式,它主要是针对快速变化的需求,不断优化管理流程,最终推出优质软件。[......]

阅读全文

自上而下做好安全代码审查

安全的程序开发实践的一个关键方面就是安全代码审查。安全代码审查,与常规的代码审查一样,可以使用自动化工具完成,也可以要求开发者亲自参与到代码审查中人工完成。那么,安全代码审查与常规的代码审查有哪些差别、如何做到更有效的安全代码审查呢?大家可以通过本文了解一下。[......]

阅读全文

十种更好的表达“你的代码写得很烂”的方法

如果你有一个同事,他写的程序与其说是代码,不如说更像希腊神话中女妖美杜莎的头发,你当然不能熟视无睹,你应该做出一些反应,但你可选的合适的反应方式并没有多少:自己默默的帮他整理清楚、向上级抱怨、向其他同事背后唠叨此事、闷在心里直到憋不住,或者这最大胆的方法:走上去直接对程序员说他的代码很烂。[......]

阅读全文

如何持续提升自己的开发技能

IT圈子,改变是生存的必备要素之一。计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术,这些要求我们必须持续学习新东西。这里将为您介绍一些技巧,以使您在这从未停止的学习之旅更加轻松。[......]

阅读全文

代码重构应遵循的若干原则

重构是一种对软件进行修改的行为,但它并不改变软件的功能特征,而是通过让软件程序更清晰,更简洁和更条理来改进软件的质量。代码重构之于软件,相当于结构修改之于散文。每次人们对如何对代码进行重构的讨论就像是讨论如果对一篇文学作品进行修订一样无休无止。所有人都知道应该根据项目的自身情况来对代码进行重构,而重构是无止境的。莫扎特从来不不对他的作品进行修订,特罗洛普对自己作品修订的恰到好处,大多数作家认为他们俩这样做都是合适的,但他们的合适对于你我来说未必是合适的。[......]

阅读全文

18款在线代码片段测试工具

本文作者Steve Smith是网站DesignDrizzle的创始人,他是一位工作超过7年的专业网站设计者。在这篇文章里展示了一些比较有价值、用起来非常方便的代码片段检测工具。这些工具将大大的提升开发者在代码片段检测方面的工作效率,亦可确保他们的代码运行起来万无一失。许多开发者都使用在线代码片段检测工具,这些工具当中有些是允许开发者和别人一起编辑/ 分享相互之间的代码,分享的目的主要是共同分析代码并相互协助完成代码片段的检查。 [......]

阅读全文