虽然JavaScript在诞生之初由于商业原因及规范的缺少,一直饱受人们的诟病。但是随着时间的推移,
人们已经逐渐走出了对这门语言的偏见和误解,开始领略它那强大的语言特性。当下JavaScript语言大红大紫,研究讨论JavaScript的相关书籍也早已汗牛充屋,但是这本书作为Effective软件开发系列中的一员,却是不可或缺。

Read More

在使用源代码版本控制工具时,最佳实践是一直保持一个主干版本。但是为了应付实际开发中的各种情况,适时的开辟一些分支也是很有必要的。比如在持续开发新功能的同时,需要发布一个新版本,那么就需要从开发主干中建立一个用于发布的分支,在分支上进行bug fix,维护版本的稳定,并适时的将一些改动合并回主干。目前大红大紫的源代码版本控制工具git很受大家推崇,原因之一就是其在这方面的功能相当强大。其实老牌的SVN也是有这样的功能的,接下来就给大家讲解下。

Read More

王淮的《打造Facebook》一书不厚,花半天时间轻松读完。书中没有大段的说教,只有近乎流水的陈述。正如作者所说,打造Facebook这本书由巴克伯格来写再合适不过。可惜他至少在近几年内没有这个打算。而王淮作为加入Facebook最早的员工之一,以工程师角度描述的视角恐怕更适合我们。

Read More

Stand up meeting作为敏捷项目开发中的一个重要实践不可或缺。站立会议每天都要发生,在会议上大家可以了解到每个人的工作进展、项目遇到的concern和issue,从而做出适应的资源调整和措施,保证项目交付的顺利进行。如何让站会变得高效,本人总结了一些tips,希望对大家有用。

Read More

好几年没写SQL语句了。现在到了新的team,需要用到数据库。作为QA的话时常需要使用客户端工具连接到数据库中找寻或修改数据。这么长时间没使用,一些SQL的使用技巧都忘得差不多了。晚上看了一些资料,花了1个多小时又捡起了曾经的知识。现在总结一下以方便以后查阅。

Read More

上个项目接近尾声,我以developer的身份加入了现在的项目,姑且叫做项目A吧。说实话A项目蛮神奇的,干了一年多了只有一次release,8月初要进行第二次release了,但是测试环境还未搭建好。

该项目是个分布式团队,分布在成都和澳洲两个地方。由于成都这边团队都是清一色的developer,没有qa,严重阻碍了交付的进度。所以我跑到澳洲出差1个月来了解一下整个项目的context,并争取能找出一种解决方案来实现让成都团队中有人能够担任QA职责。目前已经在项目中呆了3周了,2周在成都,1周在澳洲。通过这三周的观察,我总结出了项目中目前存在的一些问题。

Read More

周一接到通知需要到布里斯班出差一个月,周五就踏上飞机。第一次出国,终于有机会近距离接触“万恶的资本主义”了。虽然在ThoughtWorks出差、出国是家常便饭,但是这是自己第一次出国,还跑这么远,难免有些兴奋。

Read More

今天全球CEO来成都office做每月一次的“老郭说事”。在会议的末尾一个应届毕业生问了他一个问题“你是否有每天都需要进步的压力那?”。该毕业生提出这个问题我想很可能是由于她现在处于试用期,感受到了比较大的压力。为了能让毕业生尽快的适应工作节奏,能够独立胜任工作,试用期的员工压力都是很大的。他们要在一定时间内表现出自己,让团队中其他人能够明确看到自己在某段时间内的进步。我们不担心你目前的技术水平,我们关心的是在有限的时间内你能否进步。

Read More

包管理器是神马东西?让我们看看wikipedia上的介绍。

In software, a package management system, also called package manager, is a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer’s operating system in a consistent manner.

简单的来说,包管理器就是一个提供对一系列软件包的安装、卸载、升级的自动化工具。
包管理器大体分为两种,一种是管理预编译好的软件(Binary installation/Precomplied packages),如MAC上的App Store,Windows下的Windows installer。另一种是基于源码的安装包,通过编译脚本来安装软件(Sourcecode-based installation/installing using compile scripts),如MAC上的Homebrew,Linux上的apt-build。

Read More