`

做卓有成效的程序员

阅读更多
(转载)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++来“优化”项目中的瓶颈而走向时间泥潭的经历,比如贵公司是否又在雄心勃勃要做一个自己的框架,事实上这个框架对于项目本身毫无价值。诸如此类的情况会非常多,这本书主要介绍的是程序员要如何提高自身的效率,但我觉得程序员更多的也应思考团队的效率改进并发出声音。
分享到:
评论

相关推荐

    《卓有成效的程序员》

    《卓有成效的程序员》是一本面向广大程序员的实践指南,旨在帮助他们提升工作效率和代码质量。这本书结合了多种编程技巧、项目管理策略以及个人生产力的提升方法,为程序员提供了全面而实用的知识。 首先,书中的...

    卓有成效的程序员书籍

    卓有成效的程序员卓有成效的程序员卓有成效的程序员卓有成效的程序员

    卓有成效的程序员 卓有成效的程序员

    《卓有成效的程序员》是一本探讨如何提升程序员工作效率和质量的专业书籍,由Neal Ford著,ThoughtWorks(中国)公司翻译。这本书旨在揭示那些高效程序员的思考模式和工作习惯,帮助程序员们提升自身的专业素养,...

    卓有成效的程序员.pdf

    《卓有成效的程序员》就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows...

    卓有成效的程序员(精选版)

    卓有成效的程序员(精选版) ,PDF格式。 本书是《卓有成效的程序员》的精选版,节选了原书中比较有代表性的四章。这不是一本帮助最终用户更有效率使用计算机的书。这是一本写给程序员、关于如何提高生产效率的书,这...

    卓有成效的程序员

    卓有成效的程序员 精选版

    《卓有成效的程序员》 迷你书

    终身学习和持续的专业发展是成为卓有成效程序员的关键。 6. **沟通与团队合作**:强调软技能如沟通、倾听和协作在项目成功中的作用。有效的沟通可以减少误解,促进团队间的协同工作。 7. **问题解决与调试技巧**:...

    卓有成效的程序员 新版下载

    《卓有成效的程序员》迷你书是一本针对程序员提升工作效率和生产力的重要读物。这本书旨在帮助程序员在日常工作中更好地管理时间、优化代码、提升团队协作效率以及掌握有效的学习方法,从而实现个人技能与团队整体...

    《卓有成效的程序员》中文版电子书

    《卓有成效的程序员》是一本面向广大软件开发者的实用指南,旨在帮助他们提升工作效率,优化工作流程,从而在软件开发领域实现更大的成就。这本书深入浅出地探讨了程序员在日常工作中可能遇到的各种问题,并提供了...

    卓有成效的程序员高清完整版

    这是一本少有的高清完整版,此书不看,是程序员的终身遗憾!

    <卓有成效的程序员>

    最后,身心健康也是成为卓有成效程序员的重要因素。长时间的工作可能导致疲劳和压力,因此,平衡工作与生活,定期休息和锻炼,以及培养健康的饮食习惯,都是保持高效工作的前提。 总的来说,《卓有成效的程序员》这...

    [13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载

    [13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机...

    The Productive Programmer-卓有成效的程序员

    长时间坐姿工作可能导致健康问题,因此定期站立、做眼保健操和适当的运动是必要的。合理安排工作与休息的时间,避免过度劳累,才能保持持久的创造力和生产力。 总的来说,《The Productive Programmer》是一本全面...

    免费下载-卓有成效的程序员

    标题中的“卓有成效的程序员”是一本书的名字,这本书旨在帮助程序员提升工作效率和产出质量。在编程领域,卓有成效通常意味着能够有效地解决问题,编写出高效、可维护的代码,并且能够持续学习和适应技术的发展。这...

    技术资料分享卓有成效的程序员技术资料.zip

    技术资料分享卓有成效的程序员技术资料.zip

Global site tag (gtag.js) - Google Analytics