`
iamzhongyong
  • 浏览: 810652 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【原】高效程序员的45个习惯-读书笔记

 
阅读更多

 

最近阅读了《高效程序员的45个习惯》,看完后整体的感受是:

目前很多方法我们已经在使用了,有的一些已经成为项目以及日常的流程了,非常欣慰,有一些习惯个人感觉不是很合适使用,例如结对编程,这个我感觉貌似没法付诸于实践,首先是人力的时间成本,结对来搞一个事情,沟通成本会相对大一点,另外一点是,自己写代码的时候旁边有人看着,这个我估计很多程序员都接受不了吧,会感觉很不自在的。

         其实比起敏捷来说,更加喜欢高效这两个字,一名程序员完成一项任务后,当再有相同的任务出现时,能否高效率的完成,我指的高效包括代码质量、时间成本等等方面,假如和第一次做时间相同,我觉得是失败的,长远发展下去肯定对自己不利。如此,在日常工作中寻找高效率的方法显得格外重要。

         在目前人力资源成本日渐增长的今天,提高开发测试软件的效率显得格外重要。

         1)态度决定一切

“软件出现了问题,第一重要就是找出元凶,找到那个白痴。”这个明显是不对的,第一时间就是解决问题。

         一个重大的错误应该被当做是一次学习二不是指责他人的机会,团队成员在一起,应该是混响帮助,而不是互相指责。

指责不会修复bug,把矛头对准问题的解决办法,而不是人,这是真正有用处的正面效应。

在项目中,代码应该是很亮堂的,不应该有哦黑暗死角,也许你不知道每块代码的每个细节或者算法的每个步骤,但是你对整体的相关知识要有很好的了解。

分享并融合各种不同的想法和观点,远远胜于单个想法为项目带来的价值。

有一句话比较给力:“你不需要很出色才能起步,但是你必须起步才能变的很出色”。

如果你在压力下对代码质量作出妥协,你可以指出,作为一个开发者,你没有权利毁坏公司的资产。

         2)学无止境

一个活力十足的敏捷开发团队需要有规律的反复做很多事情,一旦项目开始运作,你就需要把握开发节奏。

         迭代和增量的学习,每天计划用一段时间来学习新技术,不需要很长时间,但需要经常进行。

         了解最新行情,通过亲阅读最新的技术网站即可呵呵。

         参加本地的用户组活动,例如培训活动等,这个貌似淘宝比较给力,有不定期的培训。

         参加研讨会议。多多参与技术方案的评审,这个比较给力。

         如饥似渴阅读。阅读技术方案,阅读源码等。

你需要精通所有技术,但需要清楚知道行业的动向,从而规划你的项目和职业生涯。

对团队进行投资,增加团队之间的交流活动,长远来看是很有益处的。

不停的问为什么,不能只满足于别人告诉你的表面现象,要不停的问直到你明白问题的根源。

项目开发需要有一致和稳定的节奏,编辑、运行测试,代码复审。然后发布。

         3)交付用户想要的软件

         这个感觉是大家有点疑问的,我们做的不就是用户想要的吗,但是事实不是这样的,由于对于食事物的看法和见解不同,导致对于同一件事情的理解可能会有偏差。

这样的结果机会出现,我们程序员苦逼的写出来的程序不是用户想要的,其实是我们觉得是他们想要的。这种情况在产品是自己公司业务方用的时候问题不大,顶大大家多交流几遍,但是在

那种靠卖这个产品的公司来说,这个是致命的了,有可能用户就不给你钱了。

那既然这个问题存在,该怎么避免呢?

我的建议是:多交流,频繁的交流,在开发功能稳定后,提交测试人员进行测试之前,来一次冒烟的功能演示,喊上业务方的成员,大家就一些功能达成一致,有问题赶紧提出来,

在没有进入测试前,修改的成本还是不大的。经过这个过程的演示基本上问题就不大了呵呵。

         记录客户的决定,并注明原因,好记性不如烂笔头。

         不用低级别和没有价值的问题打扰繁忙的业务人员。

         不要随意假设低级别的问题不会影响他们的业务。

         让设计指导而不是操纵开发,这个确实是这样的,个人认为好的架构师进化出来的,而不是设计出来的。

         新技术就应该想是新的工具,可以帮助你更好的工作,它自己不应该成为你的工作。

         时刻保持你的代码可以发布,这个可以通过持续化回归测试来保证。

         提早集成,频繁的集成,这个对于大型系统多人员开发显得格外重要,我在项目中做的一个尝试是通过hudson来进行自动化部署,hudson每隔一段时间来检测代码是否又提交,如果有提交,则自动进行打包编译,出现问题,通过一些方式反馈出来。

         提早实现自动化部署和运维,这一点觉得淘宝做的还是比较不错的,基本上部署应用都可以通过页面点击来完成,比较高效,最主要的一个问题就是能够减少人员操作带来的失误呵呵,不过这个要求运维系统需要比较问题啊。

         使用演示来频繁的获取反馈,这个认为是一个很给力的环节了。

                  

         4)反馈、编码、调试、协作

使用单元测试,如果代码没有经过测试,你会觉得不舒服,就像在高空作业没有系安全带一样呵呵。

倾听用户的声音,每一个抱怨的背后,都隐藏了了一个问题,找出并解决他。

       使代码保持可阅读,通过代码来进行沟通,添加必要的注释。

       增量式编程,进行阶段 性的测试,能够避免集中性测试导致的问题。

       对于问题进行各个击破,将问题进行隔离,特别是在大型应用中。

提供有效的错误信息,反馈出需要的异常信息,对于异常不能简单粗暴的解决,要进行合理的控制。

       代码在本地测试没有问题后再进行提交,避免自己没有测试就进行提交,这样会导致别人协作的时候还需要排查你遗留的问题。

         不定期的进行代码review,这个虽然有点耽误时间,但是确实很有必要。         

         个人综合来看,提高编码测试效率,进行持续化回归测试,交付用户想要的软件,在过程中团队成员有效的沟通,最终的效果:用户满意,团队成员有所成长。

分享到:
评论

相关推荐

    高效程序员的45个习惯-读书笔记

    《高效程序员的45个习惯》一书,以其对软件开发各个方面的深入剖析,为我们展现了一条提高个人和团队生产力的光明之路。通过研读此书,并结合个人实践,提炼出的这45个习惯,不仅为个人的编程技巧提供了提升的途径,...

    VNote是一款更适合程序员使用的跨平台免费开源Markdown笔记工具,通过提供笔记管理功能,VNote编辑文档流畅高效,编

    编辑文档的流畅性和高效率是VNote的开发者重点考虑的方面,它致力于提供一个简单舒适的编辑环境,从而使得编写和阅读笔记变得更为方便快捷。软件还提供了实时预览功能,这样用户在编辑笔记时可以即时看到最终的显示...

    2023-04-06-项目笔记 - 第三百五十六阶段 - 4.4.2.354全局变量的作用域-354 -2025.12.23

    对于程序员来说,掌握变量作用域的规则对于编写出高效且可维护的代码至关重要。比如在编写大型软件项目时,良好的变量作用域管理能够帮助开发者更好地控制数据流,避免变量命名冲突,同时也有助于提高程序的性能。 ...

    2023-04-06-项目笔记 - 第三百零九阶段 - 4.4.2.307全局变量的作用域-307 -2025.11.06

    在编程语言的世界中,变量的作用域是一个基本概念,它决定了变量能在哪些区域被访问。理解变量的作用域对于编写高效且易于维护的代码至关重要。在C语言中,变量分为局部变量和全局变量,它们各自具有不同的作用域...

    2023-04-06-项目笔记 - 第四百三十一阶段 - 4.4.2.429全局变量的作用域-429 -2025.03.08

    笔记中提到的“写代码注意代码风格”,不仅是对编程习惯的培养,也是提高代码质量的重要一环。此外,笔记中的“坚持提交gitee”和“作业中提交代码”表明了对版本控制工具和代码提交规范的重视。在现代软件开发中,...

    2023-04-06-项目笔记 - 第四百二十五阶段 - 4.4.2.423全局变量的作用域-423 -2025.03.02

    通过持续的实践和学习,程序员可以更有效地使用变量的作用域,写出更加健壮和高效的代码。 变量的作用域是编程中的一个基础概念,它影响着程序中变量的可见性和生命周期。局部变量和全局变量各有其适用场景,合理地...

    一个程序员的工具箱

    ### 一个程序员的工具箱:全面解析 #### 引言 在信息技术(IT)领域,特别是对于程序员来说,拥有一套高效、实用的工具是至关重要的。这些工具不仅能提高工作效率,还能帮助解决各种技术难题。本文将详细介绍《一个...

    #资源分享达人# Typora For Markdown.rar 程序员人手一份编辑笔记好帮手,附有安装全过程,还不快来拿

    Typora是一款优秀的Markdown编辑器,它提供了无缝的预览体验,让编写Markdown变得更加高效和愉快。 Typora的主要特点: 1. **实时预览**:与大多数Markdown编辑器不同,Typora采用所见即所得(WYSIWYG)的方式,...

    2023-04-06-项目笔记 - 第三百六十阶段 - 4.4.2.358全局变量的作用域-358 -2025.12.27

    这不仅能帮助代码的维护者更容易理解代码,也使其他开发者在阅读和修改代码时更加高效。 在提交代码时,无论是到Gitee这样的代码托管平台,还是作为作业提交给老师,都应当确保代码的完整性和正确性。一个完整的...

    2023-04-06-项目笔记 - 第三百二十六阶段 - 4.4.2.324全局变量的作用域-324 -2025.11.23

    一个良好的编程习惯是,尽可能减少全局变量的使用,多利用函数参数、返回值以及局部变量等编程工具来控制变量的作用域和生命周期。 此外,代码风格也是编程中非常重要的方面。一个良好的代码风格不仅让代码易于阅读...

    2023-04-06-项目笔记 - 第三百三十四阶段 - 4.4.2.332全局变量的作用域-332 -2025.12.01

    在探讨编程语言的全局变量时,我们首先需要了解全局变量是什么,它们在程序中的角色,以及它们与局部变量的区别。...在学习和实践编程的过程中,不断地回顾和总结这些知识点,可以帮助我们成为更加高效的程序员。

    行业文档-设计装置-笔记本电脑专用小夜灯.zip

    这个设计考虑到了现代人长时间使用电脑的工作和生活习惯,以及夜晚使用电脑时对周围环境的影响。 首先,我们要理解小夜灯的功能性。它可能是通过磁吸、夹持或粘贴等方式固定在笔记本电脑屏幕边缘,以提供定向照明,...

    程序员的学习与思考.doc

    从给定的文件信息来看,本文档探讨的主题围绕着程序员的学习方法、思考习惯以及如何构建一个有益于个人成长和知识分享的社群环境。以下是对这些关键知识点的详细解析: ### 知识点一:程序员的学习习惯 #### 1. ...

    程序员资料整理软件

    【程序员资料整理软件】是一款专为程序员设计的高效文件管理和整理工具,旨在帮助程序员们更好地组织、分类和检索他们的代码示例、学习资料、项目文档等。这款软件结合了多种功能,如文件分类、标签系统、全文搜索、...

    程序员需要的高效率工具

    Markdown是一种轻量级标记语言,易于阅读和编写,非常适合用来撰写文档、笔记等内容。它有许多变种,如 GitHub Markdown、Markdown Extra 等,每种都有其独特的扩展特性,适用于不同的应用场景。 #### 编码工具 **...

    Typora程序员专用的md文档编写器

    总的来说,Typora作为一款Markdown编辑器,不仅提供了Markdown的基本功能,还通过实时预览、代码高亮、LaTeX支持等功能,为程序员提供了一种高效、便捷的文档编写方式,极大地提升了编程工作的效率和舒适度。

    林信良java学习笔记

    在阅读笔记理论知识的同时,通过代码示例,学习者可以将所学应用到具体的编程任务中,如数组操作、循环和条件语句的使用,以及设计模式的实例应用。这些例子不仅能够让学习者更直观地理解概念,也能够帮助他们掌握...

    c语言学习笔记,好东西

    它的语法简洁、高效,是很多程序员入门编程的首选。本压缩包包含了一份精心整理的C语言学习笔记,旨在帮助读者深入理解和掌握C语言的核心概念与技术。 笔记首先从基础语法开始,包括变量、数据类型、运算符以及...

    2018有道云笔记最新安装包

    有道云笔记是一款深受广大用户喜爱的笔记应用,尤其对于技术编程工程师来说,它更是日常工作中的得力助手。2018年的最新安装包...只需下载压缩包中的"YNote.exe"文件,即可开始体验这个智能、高效、便捷的笔记世界。

Global site tag (gtag.js) - Google Analytics