- 浏览: 63779 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
zhangheng54321:
[b][/b][i][/i][u][/u]引用 ...
基于HTTP协议的轻量级开源简单队列服务:HTTPSQS -
relic6:
十分感谢。。rhel5成功yum了!!
RHEL5配置YUM源
(转载)http://timyang.net/misc/productive-programmer/
做卓有成效的程序员
Tuesday, May 25th, 2010 by Tim | Tags: DRY, programmer, YAGNI
最近阅读了《卓有成效的程序员》(The Productive Programmer) 一书,此书虽是2009年出版,但是介绍内容的价值并不会随着时间过去而降低,相信5-10年后对于大部分开发者仍然具有借鉴价值。
大部分章节是介绍具体的方法来如何提高程序员工作效率。记住具体的技巧未必有太大价值,很多人都认同一种观点就是,读一本书最终的目标是忘记其中所有的观点,但是它会潜移默化影响了你以后的思维和或观点,包括你的行为。因此我认为此书直接的影响就是帮助思考开发过程的方法和问题,思考以前的惯例是否存在问题。比如最近在设计某个产品删除功能的时候,一位同事突然提到是否产品将来有需要查看行为历史,如果需要记录历史,删除的流程就会变复杂,不但影响删除功能的实现,还会影响后端数据的规模,从而进一步会影响架构的设计。因而我的直觉是这是一个过早优化,也就是书中第9章讲的YAGNT(You Ain’t Gonna Need It 你不需要这个特性)。由于第一时间的质疑,这个可能需要耗费大量开发时间的特性被暂停,对于项目本身或许是一件好事。
此外书中一些敏捷的思路也会带来一些间接影响,我还意识到过去一些非敏捷方法可能会给项目带来风险,一个过去的项目,开发完成之后逐渐变得臃肿,和大部分后端服务相似,需要依赖一些特定的数据库及其他依赖环境。由于不希望开发环境与真实环境差距太大,开发环境也全部按真实环境最小单元的配置来进行,这就导致开发依赖的环境很多
内部依赖
MySQL master/slave
分表
Memcached(多个)
外部依赖
Message Queue(消息队列)
用户及鉴权服务
internal HTTP service
导致的问题
需要特定的环境才能开发,比如公司配好的环境中
无法在家中或咖啡馆干活,因为系统跑不起来,无法看到效果
一旦部分依赖环境有问题,则无法开工,只能等着服务恢复
一旦几天没跟进代码,可能就由于环境设置的变化而无法独自启动工程。
这些问题就导致代码改进的工作令人生畏,要像Google那样做到任何对代码感兴趣的人可以patch代码的意愿都会变成”mission impossible”。因此对于这个项目来说,最急需的一个改进是分析依赖,让项目能够随时随地可以方便的跑起来,大家可以很简单的改进代码,对改进的代码进行测试验证,测试之后新的代码基本可以无风险的运行到线上环境去。否则臃肿的项目只会降低大家的贡献的热情,最后变成一个死气沉沉的工作任务。
你的项目中的惯例是否存在问题呢?比如Java中POJO中无用的get/set方法,比如一些使用c/c++来“优化”项目中的瓶颈而走向时间泥潭的经历,比如贵公司是否又在雄心勃勃要做一个自己的框架,事实上这个框架对于项目本身毫无价值。诸如此类的情况会非常多,这本书主要介绍的是程序员要如何提高自身的效率,但我觉得程序员更多的也应思考团队的效率改进并发出声音。
做卓有成效的程序员
Tuesday, May 25th, 2010 by Tim | Tags: DRY, programmer, YAGNI
最近阅读了《卓有成效的程序员》(The Productive Programmer) 一书,此书虽是2009年出版,但是介绍内容的价值并不会随着时间过去而降低,相信5-10年后对于大部分开发者仍然具有借鉴价值。
大部分章节是介绍具体的方法来如何提高程序员工作效率。记住具体的技巧未必有太大价值,很多人都认同一种观点就是,读一本书最终的目标是忘记其中所有的观点,但是它会潜移默化影响了你以后的思维和或观点,包括你的行为。因此我认为此书直接的影响就是帮助思考开发过程的方法和问题,思考以前的惯例是否存在问题。比如最近在设计某个产品删除功能的时候,一位同事突然提到是否产品将来有需要查看行为历史,如果需要记录历史,删除的流程就会变复杂,不但影响删除功能的实现,还会影响后端数据的规模,从而进一步会影响架构的设计。因而我的直觉是这是一个过早优化,也就是书中第9章讲的YAGNT(You Ain’t Gonna Need It 你不需要这个特性)。由于第一时间的质疑,这个可能需要耗费大量开发时间的特性被暂停,对于项目本身或许是一件好事。
此外书中一些敏捷的思路也会带来一些间接影响,我还意识到过去一些非敏捷方法可能会给项目带来风险,一个过去的项目,开发完成之后逐渐变得臃肿,和大部分后端服务相似,需要依赖一些特定的数据库及其他依赖环境。由于不希望开发环境与真实环境差距太大,开发环境也全部按真实环境最小单元的配置来进行,这就导致开发依赖的环境很多
内部依赖
MySQL master/slave
分表
Memcached(多个)
外部依赖
Message Queue(消息队列)
用户及鉴权服务
internal HTTP service
导致的问题
需要特定的环境才能开发,比如公司配好的环境中
无法在家中或咖啡馆干活,因为系统跑不起来,无法看到效果
一旦部分依赖环境有问题,则无法开工,只能等着服务恢复
一旦几天没跟进代码,可能就由于环境设置的变化而无法独自启动工程。
这些问题就导致代码改进的工作令人生畏,要像Google那样做到任何对代码感兴趣的人可以patch代码的意愿都会变成”mission impossible”。因此对于这个项目来说,最急需的一个改进是分析依赖,让项目能够随时随地可以方便的跑起来,大家可以很简单的改进代码,对改进的代码进行测试验证,测试之后新的代码基本可以无风险的运行到线上环境去。否则臃肿的项目只会降低大家的贡献的热情,最后变成一个死气沉沉的工作任务。
你的项目中的惯例是否存在问题呢?比如Java中POJO中无用的get/set方法,比如一些使用c/c++来“优化”项目中的瓶颈而走向时间泥潭的经历,比如贵公司是否又在雄心勃勃要做一个自己的框架,事实上这个框架对于项目本身毫无价值。诸如此类的情况会非常多,这本书主要介绍的是程序员要如何提高自身的效率,但我觉得程序员更多的也应思考团队的效率改进并发出声音。
发表评论
-
五种常见的 PHP 设计模式
2011-05-11 09:18 633http://www.ibm.com/developerwor ... -
谈技术人员研究方向
2011-04-02 11:12 820(转载) http://timyang.net/categor ... -
web2.0图形设计样式指南
2010-05-07 17:20 683http://bbs.mycgs.cn/viewthread. ... -
Discuz!全局变量列表
2010-05-06 13:15 1723http://blog.fufuok.com/Article/ ... -
深入理解C语言指针的奥秘
2010-04-30 17:44 668来源:http://community.csdn.net/Ex ... -
字符,字节和编码
2010-04-30 17:40 658本文来自 http://blog.csdn.n ... -
推荐介绍几款小巧的Web Server程序
2010-04-30 17:37 1640本文来自 http://blog.csdn.n ... -
Linux字符集的修改方法
2010-04-27 12:17 1367用export LANG=zh_CN.UTF-8这样只下次重起 ... -
yum来安装lamp 实站
2010-04-27 10:25 1105apache yum install httpd httpd- ... -
apache2+PHP4.4.1+Mysql4.1.18+GD2+ZendOptimizer (原创)
2010-04-24 13:01 1549apache2+PHP4.4.1+Mysql4.1.18+GD ... -
CentOS 关闭 SELinux
2010-04-23 10:41 5585方法1 使用文本编辑工具打开 /etc/selinux/con ... -
rhel 使用 centos yum 源 实站
2010-04-22 14:23 1378wget centos.ustc.edu.cn/CentOS- ... -
中国科技大学 yum 源
2010-04-22 13:54 1909rpm --import http://mirrors.shl ... -
RHEL 5的yum源的设置
2010-04-22 11:11 1820RHEL 5的yum源的设置 我们市面上买的rhel好多是盗版 ... -
Windows下的Memcache安装
2010-04-22 09:46 2431Windows下的Memcache安装 很多phper不知道如 ... -
RHEL5配置YUM源
2010-04-21 16:27 2331RHEL5 配置YUM源 cd /etc/yum.rep ... -
RedHat 5.3配置YUM 从centos5源与光盘源更新软件
2010-04-20 15:22 2296YUM顾名思义,Yellow Dog Up ... -
checkbox 多选
2010-04-19 12:09 934<!DOCTYPE HTML PUBLIC " ... -
mysql 常用命令集合
2010-04-16 08:45 9301、MySQL常用命令 oracle create d ... -
JS的正则表达式
2010-04-15 14:20 610JS的正则表达式 //校验是否全由数字组成 代码 fu ...
相关推荐
卓有成效的程序员 卓有成效的程序员 卓有成效的程序员 卓有成效的程序员
《卓有成效的程序员》《卓有成效的程序员》《卓有成效的程序员》《卓有成效的程序员》《卓有成效的程序员》《卓有成效的程序员》《卓有成效的程序员》
卓有成效的程序员卓有成效的程序员卓有成效的程序员卓有成效的程序员
这个是 《卓有成效的程序员》的pdf格式的.因为pdf的不全里面有word的补充。
卓有成效的程序员,从各个方面提高开发效率
卓有成效的程序员(精选版) ,PDF格式。 本书是《卓有成效的程序员》的精选版,节选了原书中比较有代表性的四章。这不是一本帮助最终用户更有效率使用计算机的书。这是一本写给程序员、关于如何提高生产效率的书,这...
《卓有成效的程序员》就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows...
《卓有成效的程序员》就是讲述如何在开发软件的过程中变得更加高效。
卓有成效的程序员 精选版
这是一本少有的高清完整版,此书不看,是程序员的终身遗憾!
The Productive Programmer-卓有成效的程序员 ~~~~~~~~~
卓有成效的程序员,卓有成效的程序员电子书
[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机...
免费下载-卓有成效的程序员,中文和英文版的压缩包。不知道全不全,因为我也没看过全本的。
卓有成效的程序员 作者 Neal Ford 这不是一本帮助最终用户更有效率使用计算机的书。这是一本写给程序员、关于如何提高生产效率的书,这意味着我可以对读者作很多假设,很多基本概念也不需要浪费很多时间去解释,...
一本揭示高效程序员的思考模式,一本告诉你如何缩短你与优秀程序员的差距 Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive ...