摘要: 项目大到一定程度,为了代码复用,通常会抽象出一些公共的功能作为类库或函数库。建立这些公共设施本身是件利国利民的好事情,老大们也乐意有人做这样的事情,做的人也获得了Credit。但是公共设施建立以后,往往会陷入疏于维护的状态,久而久之,极有可能成为一个垃圾场。这是一个发生在我们项目中的真实的例子,我们建立一个Python的库,来提供通用的功能,代码是从各个部分抽象出来的,刚刚开始皆大欢喜,各个部分的逻辑清晰了很多,代码库也作为亮点在项目内推广。随着项目的进行,问题开始逐渐地呈现了,新的需求不能被现有的库满足,又不能想开始一样安排专人维护这个库,如何维护这个库成为了一个难题。对库的改动有两种,一种 阅读全文
posted @ 2011-08-27 10:47 utopiazh 阅读(1833) 评论(4) 推荐(1) 编辑
摘要: 很多程序员习惯自嘲称自己是码农、民工、矿工等等,如果仔细分析一下,除了经常加班之外,还是有一些系统性的原因的。首先,程序员和这些民工、矿工一样,都是使用非常简单的工具,典型的就是vim/emacs加make,典型的活动就是使用这些工具一个字符一个字符地敲代码,这和使用榔头的农民没有本质的区别。要摆脱码农的命运,就需要使用更加先进的工具,比如DSM(Domain Specific Modeling,这里有一篇中文的简介),使用模型(领域知识)构建产品。其次,程序员的产品一般都是一个萝卜一个坑,为一个产品写的代码下一次还需要再写一次,也就是同样的价值需要差不多同样工作量的重复劳动才可以创造,有人据 阅读全文
posted @ 2011-03-22 22:44 utopiazh 阅读(4665) 评论(18) 推荐(3) 编辑
摘要: 工作个几年,就会碰到代码维护的问题,温伯格先生在《理解专业程序员》中非常生动地描述了这个现象:“”“在一个只有三个软件公司的城市里,软件程序员X在公司A工作,工作了两三年,做几个项目,然后发现自己的大多数时间都是在为以前的项目修bug,X君觉得这样非常不给力,所以就跳到了公司B。在B公司工作了几年,又做了几个项目,然后又发现自己深陷在老项目bug的泥潭中,于是又... 阅读全文
posted @ 2010-11-26 23:08 utopiazh 阅读(2583) 评论(15) 推荐(0) 编辑
摘要: 在命令行下工作,不练就一点绝活绝对是浪费生命。References:- 另外一篇不错英文文章:Bash Emacs Editing Mode。- Cheatsheet 在这里下载。- Online Help: bind -P- 最权威的当然还是Readline的文档。 阅读全文
posted @ 2010-11-25 23:30 utopiazh 阅读(1167) 评论(0) 推荐(0) 编辑
摘要: 由于做的是新产品,客户服务正处于一个组建过程中,所以会被拉去做一些技术支持的任务。回想过去几十次的技术支持任务,总结、思考一下。一、面向客户技术支持是一种面向客户的任务,客户服务可以分为一线(On-site engineer)、二线(On-call support)和三线(Engineering Support),虽然一般都会有On-call在场,Engineer是起主导作用的。具体来说,技术支持... 阅读全文
posted @ 2010-11-25 21:33 utopiazh 阅读(1901) 评论(1) 推荐(2) 编辑
摘要: 转自自己的豆瓣,http://book.douban.com/review/2695381/,当时读完比较激动。 这是一本值得一读的报告文学,从来没有哪一本书能这么贴近我们软件行业的工作。    在那个变革的时代,在微软这个伟大的公司,有一群人,为NT一个软件而奋斗了四年之久,终于成功了。    每个人都是普通人,都是俗人,以工作为中心折腾了这么久,这是为什么呢,是什么给与他们这么大的动力,又是什... 阅读全文
posted @ 2010-11-24 20:28 utopiazh 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 转眼之间已经工作三年多了,开始使用博客或类博客也已经有五六年的时间了,一直没有太认真地写博客,整日随波逐流。现在感觉有需要开始记录、整理和规划自己的思绪和道路。博客的内容1、读书感悟、摘要。很多时候读书都会觉得特别有感悟,读的过程中思绪万千,等书读完了想法如果没有经过整理,很难有长久的印象。考虑把以前的几个书评也转过来,把最近读过的几本书整理一下,将来养成读书做记录的好习惯,最好记录一下书上的知识... 阅读全文
posted @ 2010-11-24 20:24 utopiazh 阅读(112) 评论(0) 推荐(0) 编辑