`

高效程序员应该养成的七个习惯(转)

阅读更多

 

理解你的需求

成为一个有效率的程序员首先要知道如何正确的支配自己的时间。对时间最大的浪费莫过于去做那些没有用处或者永远不会上线的项目。而导致这种结果的根源往往是对需求理解的偏差。

要最大程度避免这种情况的发生,最好的办法是快速建模,尽可能让演示系统早点出来。对于客户来说,只有看得到摸得着的产品摆在面前,他们才会有兴趣去试用观察,才会在实际的操作中发现供需双方在需求理解上的偏差。否则即使你写上几百页的需求分析文档也只能是自己的一面之词,客户可没耐心去检查这些文档写的是否准确。

另一方面,你应该让每一个阶段的开发成果都能够尽早的提交给客户。让他们以完全不考虑操作合理性和业务逻辑性的傻瓜级操作来发现程序员编程中的固有思维局限。尤其必须让QA尽早的介入到项目开发中来。如果能够每天提交一份测试版本给QA自然是最理想的了,但大多数项目开发做不到这样的粒度,那么就争取每周提交一份可测试版本。重要的是应该让QA和开发能够保持交错并行状态。只有这样,才能让QA 尽早发现bug,降低每个bug的修复成本,同时缩减独立测试周期的跨度。

程序员往往不愿意把半成品代码交付给测试人员,相反他们更喜欢在所有代码都完工,达到自己满意的程度之后再让别人来测试。因为在这之前的代码往往存在很多程序员自己知道需要修改(或者故意留待后续补全)的流程缺失和Bug,测试人员并不知道哪些是真正的Bug,哪些只是临时性的运行错误,每次都会一股脑儿作为Bug反馈给程序员。这往往让程序员们心烦。同时测试人员有时候也不喜欢测试这种很多分支都走不通的中间版本。

但不管喜不喜欢,测试并发现问题是测试人员的工作;程序员则应该认识到,Bug反馈得越早就越是件好事情。QA和开发之间的关系往往很敌对,可实际上双方的目标是一致的。“忠言逆耳”古训有之,对于程序员来说就应该“有则改之,无则加勉”。总好过项目完成之后才发现一堆的问题,到那时候再要做修改,基本上都会牵一发而动全身,痛苦的还是程序员自己。

保持真实性

尽可能让你的系统运行在最接近真实环境配置下面,使用有实际意义的数据和真实的编译版本,并经常性进行模块整合。如果你的测试环境使用的数据都是些胡乱添加的东西,那么将来和测试数据大相径庭的真实数据这块大冰山早晚会撞沉你的程序。另一方面如果你只在开发环境来编译运行测试,会发现正式发布之后有各种各样莫名其妙的问题产生,到最后原来都是因为环境配置与开发环境有些不起眼的差异所导致。把所有模块整合进行编译联调,看上去应该是最后作的一项附加工作,但实际上这是一项需要在开发过程中经常性进行的工作。只有这样QA才能有最完整的东西拿来测试,得到更多的Bug反馈,同时降低模块整合的难度。

理解你的代码

书写规范的代码,并保持代码的整洁。Coding是一门艺术。正如写作一样,同样的文字在文豪的笔下就能够熠熠生辉,读起来赏心悦目;在普通人的笔下大概就只是词能达意的效果了;在某些人的笔下或许就需要研究半天才能猜出个大概来。当然不可能人人都成为艺术家,但至少你可以学会欣赏艺术、学习艺术。书写漂亮的代码是对自己工作的尊重,也是对其他程序员的尊重。如果你的代码中间充斥着大段过时的注释、可读性差的变量/函数,怎么去要求别人或者自己以后能够理解它们?

最优编程

把你的时间花在代码的功能上, 而不是去把现有的代码改得对自己胃口(尤其对于那些copy/paste过来的代码);要找到系统的瓶颈进行优化,而不是对那些无益于系统整体性能提高的地方做无用功。

管理好你自己

也许有人会说计划和进度控制是PM的事情,但一个好的程序员应该比PM更了解自己目前工作的进度。不论上头给的进度计划是否合理,你都应该有自己的原则和概念,清楚知道每天该做什么怎么去做。

持续教育

只有不断的学习、实践、犯错误,你才会真正有所提高。在我看来,对于程序员来说最好的老师不在学校,而在书本、网络、社区。学会自我学习才能保持与时俱进。

R-E-S-P-E-C-T

互相尊重是一切的基础。



分享到:
评论

相关推荐

    高效程序员应该养成的七个习惯

    高效程序员应该养成的七个习惯

    高效程序员应该养成的习惯

    要成为一个有效率的程序员要知道些什么?正确的支配自己的时间。。。

    高效程序员的10个习惯,希望对你有所帮助

    标题和描述中提到的“高效程序员的10个习惯”,实际上是在强调软件开发领域中,尤其是敏捷开发过程中,程序员应当遵循的一系列最佳实践和心态。这些习惯不仅有助于提升个人的工作效率,还能增强团队协作,最终确保...

    一个优秀的程序员的十个习惯

    成为优秀的程序员不仅在于编写高质量的代码,更重要的是养成一系列有益的习惯,这些习惯能够提升个人技能,促进团队协作,以及保持对技术的敏锐度。以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **...

    作一个真正合格程序员的七种素质

    程序员应该养成撰写清晰、准确的技术文档的习惯,这包括但不限于需求文档、设计文档、代码注释等。文档不仅可以帮助团队成员更好地理解项目的结构和功能,还能在后期的维护、扩展和升级过程中发挥重要作用。缺乏文档...

    一个程序员的开发习惯

    ### 一个程序员的开发习惯 #### 一、项目目录结构的重要性及建议 1. **创建清晰的项目目录:** - 开发过程中,一个清晰合理的项目目录结构对于提高开发效率和后期维护至关重要。 - 建议为每个项目设置一个主目录...

    软件员的七大武器,成功的程序员

    以下是七个核心知识点,它们构成了软件员的七大武器: 1. **开发工具**:熟练掌握至少两到三种开发工具是程序员的基础。C/C++因其高效和灵活性成为系统级软件开发的首选,而JAVA则以其跨平台特性和与WEB的良好集成...

    ACWORDS打字软件(程序员的使用习惯)

    它不仅关注速度,更注重与编程实践的紧密结合,帮助程序员在日常工作中养成良好的输入习惯,从而提高编程效率,减少因误输入导致的bug。无论你是初入编程的新手,还是经验丰富的老手,这款软件都将是你提升打字技能...

    一名Delphi程序员的开发习惯

    作为一名Delphi程序员,养成良好的开发习惯至关重要,这不仅能够提高代码质量,还能提升开发效率,确保项目的稳定性和可维护性。以下是一些核心的Delphi开发习惯: 1. **模块化编程**:将大型项目分解为小的、独立...

    一个Java程序员应该掌握的10项技能

    ### 一个Java程序员应该掌握的10项技能 随着信息技术的快速发展,Java作为一种重要的编程语言,在软件开发领域占据着举足轻重的地位。对于初学者来说,了解并掌握一定的Java技能是十分必要的。本文将详细介绍《一个...

    程序员专用个人知识管理

    因此,选择一款合适的个人知识管理系统并养成良好使用习惯,对于程序员的成长至关重要。在实际使用中,可以结合个人需求调整管理策略,例如定期复习、归档不再需要的信息,以保持知识库的整洁和有效性。

    Delphi程序员成长攻略

    Pascal语言是Delphi的基础,其严谨的语法结构有助于程序员养成良好的编码习惯。了解IDE的各项功能,如代码编辑器、调试器和项目管理器,能提升开发效率。VCL则提供了大量预先构建的用户界面组件,使得快速应用开发...

    如何成为程序员如何成为一名C++程序员(看完深受启发)

    养成良好的编程习惯对于长远发展至关重要。这包括但不限于编写清晰可读的代码、进行单元测试、代码重构等。一个好的习惯不仅能提高工作效率,还能减少后期维护的成本。 总之,成为一名优秀的C++程序员并非一蹴而就...

    一篇关于程序员 文章

    根据提供的标题、描述、标签及部分...综上所述,这些知识点涵盖了程序员学习和发展过程中的多个方面,包括基础知识学习、实践经验积累、持续学习习惯的养成以及解决问题的能力培养等。希望这些内容能够对读者有所帮助。

    JAVA程序员的心得

    #### 心得七:养成良好的编程习惯 良好的编程习惯对于编写高质量的代码至关重要。这包括但不限于编写清晰易懂的代码注释、遵循统一的编码规范、及时进行版本控制等。此外,还应该注重单元测试、集成测试等工作,...

    程序员的基本素质

    尽管大多数项目会有专门的测试团队负责这一部分,但程序员也应该养成良好的自我测试习惯。除了常规的功能测试之外,异常情况下的测试同样重要,比如在高负载条件下系统的稳定性测试、非法输入情况下的健壮性测试等。...

    编程修养(编程习惯养成).txt

    ### 编程修养——良好编程习惯的养成 在IT行业中,一名优秀的程序员不仅仅是掌握大量技术细节或具备快速编码能力的人。事实上,一个优秀的程序员应当具备一系列综合性的素养,这些素养涵盖了个人品质、团队协作能力...

    对程序员的忠告 txt文档

    因此,在日常工作中要养成严谨细致的工作习惯,力求将每一个环节做到最好。 #### 12. 持续学习新技术 技术更新换代的速度越来越快,只有持续学习才能跟上时代的步伐。可以通过阅读官方文档、观看视频教程、参与...

    高质量的C++编程 让你成为一个优秀的c++程序员

    书中详细阐述了如何编写有效的注释,包括单行注释、多行注释以及文档注释(如Doxygen)的使用,鼓励程序员养成良好的注释习惯。 此外,书中可能还涵盖了命名约定、异常处理、内存管理、模板使用、STL(标准模板库)...

Global site tag (gtag.js) - Google Analytics