点击上方“大鱼机器人”,选择“置顶/星标公众号”

福利干货,第一时间送达!

文章来源:http://rrd.me/eucMA

整理:薛定谔的coding猫

如果每个程序开发人员都只是周而复始地写代码,想必编程的工作就会让很多程序员发狂。那么如何在枯燥的工作中寻找乐趣,我认为我们要对工作保持激情和兴奋感、始终学习的态度,还需要掌握一些实用高效的编程技巧,这样对于提升工作乐趣和效率大有裨益。

今天小编就跟大家分享25条写代码的建议,希望可以给开发编程人员的工作和学习带来更多的思考。

  1. 不要毫无计划地写代码,思考、调研、计划、编码、测试、修改,一个都不能少;

  2. 不要写代码前过度计划,在一头钻进代码前做点计划是好事,但是即便是好事,也可能物极必反。

  3. 请勿低估代码质量的重要性,如果你只能够关注你所写的代码的一个方面,那么肯定是可读性。

  4. 使用实现功能的最简单方案,作为专业的程序员,你的职责不是找出问题的一个解决方案,而是找出问题的最简单的解决方案;

  5. 适时放弃,当你开始怀疑一个解决方案的时候,你就应该考虑抛弃它,并且重新思考这个问题。不管你已经在这个解决方案中投入了多少精力。像 GIT 这样的版本控制系统能够帮助你分开管理和尝试多种不同的解决方案,把它利用起来吧;

  6. 擅用Google,除非你正在使用一种极其前沿的技术,否则当你遇到一个问题时,很可能别人早就遇到过同样的问题了,并且也找到了解决方案了。给自己省点时间,先 Google 一下;

  7. 做好封装,基本的想法就是你想你的代码高内聚和低耦合,意思是说保持相关的代码在一起(在一个类中),降低不同类之间的相互依赖;

  8. 做好规划,写好需求再写代码,尽可能编写目前正在实现的方案所需的最少量代码;

  9. 要懂算法,使用合适的数据结构;

  10. 不要写重复性代码,要用好配置文件,不要使用没必要的条件语句和临时变量;

  11. 做好代码注释,但是不要给傻子都知道的代码写注释;

  12. 一定要写好测试,如果可能的话,甚至在开始写代码实现需求之前,你就应该开始预估和设计需要测试校验的情况了。测试驱动开发 (Testing-driven development, TDD)不是什么花俏的炒作,它是会实实在在会对你思考功能特性、寻找更好的设计方案产生积极影响的。

  13. 不要觉得代码运行起来就是正确的,有些时候代码的 bug 可能并不是显而易见的;

  14. 要能够质疑既有代码,作为一个初学者,总是应该假定那些你读不懂的、且没有文档注释的代码很可能就是糟糕的代码。质疑之,询问之,使用 git blame 揪出罪魁祸首!

  15. 不要过度迷恋最佳实践,我觉得 "最佳实践" 其实是害人的,它暗示着你不需要深入研究它,这就是有史以来最佳实践,不用质疑!

  16. 不要过度迷恋性能优化,如果你在运行代码之前就在优化它了,那很可能你就是在过早优化代码了,也很可能你正在费时费力做的优化是完全没必要的。

  17. 以用户体验为目标,要站在最终用户的角度看问题。专业的开发者要考虑这个特定功能的用户需要什么、怎样使用,要想方设法使得这个功能容易让用户发现和使用,而不是想方设法在应用中用最便捷添加这个功能,毫不考虑这个功能的可发现性和可用性。

  18. 为你的开发任务挑选合适的工具,你可以使用最原始的工具建造房子,然后享受甜蜜时光。你也可以花费一些时间和金钱去了解先进的工具、更快地建造更好的房子。工具在不断地改进中,你要乐意去学习它们、使用它们。

  19. 要理解好代码问题和数据问题之间的关系,即使是程序中最小的 bug 也会导致它所管理的数据去到一种不可预测的状态。尤其是当所有数据校验都完全在这个有 bug 的程序中进行时。

  20. 切勿重复造轮子,使用好现有的轮子和各种开源库,会让你事半功倍。当然,不要仅仅为了使用一两个函数就引入一整个代码库,在 JavaScript 中的典型例子就是 lodash 代码库;

  21. 对代码审查保持正确的态度,应该把每一次代码复审当作是学习的机会,欢迎他们、感激他们、从中学习,最重要的,当你从你的代码复审人员那里学习到东西的时候,要感谢他们;

  22. 用好版本控制工具和系统,新手往往低估了一个好的版本控制系统的威力,我这里所说的好的版本控制系统其实就是指 Git;

  23. 不要过度使用共享状态,一个新手可能会尝试使用定时器来解决这个共享变量的竞态条件问题,特别是当他们必须处理一个数据锁的问题时。这是危险的标志,别这么做,注意它,在代码复审中指出它,永远也不要接受这样的代码。

  24. 正视 Error,Error 是好东西。Error 意味着你在进步,意味着你可以通过简单的后续修改就获得更多的进步。专业程序员喜爱 Error。新手则痛恨 Error;

  25. 学会休息,任何人的大脑都需要休息,身体也需要休息。

-END-

猜你喜欢(点击下划线即可跳转阅读

GitHub真把代码冰封北极1000年!

CPU 到底是怎么识别代码的?

雷军 1994 年写的代码,经典老古董。

最 后

若觉得文章不错,转发分享,也是我们继续更新的动力。

5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

长按识别图中二维码关注

25条写代码建议,句句真言,值得牢记!相关推荐

  1. 25条实用的Python一行代码,你用过哪些?

    自从我用Python编写第一行代码以来,就被它的简单性.出色的可读性和特别流行的一行代码所吸引. 在下面,我将给大家介绍并解释一些非常实用Python一行程序. 可能有些你还不知道,但对你未来的Pyt ...

  2. 别只顾着写代码,学会这 25 条比涨工资都重要,你信不?

    点击上方"搜云库技术团队",选择"设为星标" 回复"1024"或"面试题"获取4T学习资料 如果每个程序开发人员都只是周 ...

  3. 写代码这条路,能走多远?工程师能力模型告诉你

    职场危机感似乎是每个人在职业生涯都会遇到的话题,我对这种危机处境和自己曾遇到的问题进行了一番思考, 参考了其他人的一些结论并结合自身的经历,设计了应对的初步方案.通过这篇文章,希望能给大家一些启发,也 ...

  4. 总结了 90 条写 Python 程序的建议

    这是一名5年经验的 Python小伙伴总结的90条python建议,如果你也在学pythpn,准备要学习python,希望这篇文章对你有用. 1. 首先 建议1.理解Pythonic概念--详见Pyt ...

  5. mixin模式 python_总结了 90 条写 Python 程序的建议

    这是一名5年经验的 Python小伙伴总结的90条python建议,如果你也在学pythpn,准备要学习python,希望这篇文章对你有用. 一.首先 建议1.理解Pythonic概念--详见Pyth ...

  6. 写代码这条路,能走多远?

    职场危机感似乎是每个人在职业生涯都会遇到的话题,我对这种危机处境和自己曾遇到的问题进行了一番思考, 参考了其他人的一些结论并结合自身的经历,设计了应对的初步方案. 通过这篇文章,希望能给大家一些启发, ...

  7. 写代码这条路,能走多远?阿里算法专家告诉你

    作者 | 张知临 (花名:妙临),阿里巴巴算法专家,专注于计算广告领域的策略研究和机制设计,包括调价机制.合约分配.多目标优化.用户体验建模等,并将上述策略和机制以及DL.RL等技术应用在淘宝.优酷等 ...

  8. CTO丢给我《技术Leader的30条军规》:照着做,做不好滚回去写代码!

    作者| Mr.K 来源| 技术领导力(ID:jishulingdaoli) 老K之前在电商独角兽公司担任过技术VP,带过几百人的技术团队,这几年下来,从我手下出去的Leader,有10几人都已经是各大 ...

  9. python语言必背代码-Python新手必须知道的25条知识点

    原标题:Python新手必须知道的25条知识点 1.到底什么是Python?你可以在回答中与其他技术进行对比 下面是一些关键点: Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,P ...

最新文章

  1. 关于Advanced Installer 11.0打包软件过程一些记录
  2. Web应用扫描测试工具Vega
  3. flyme禁止系统更新_魅族Flyme更新8.1.2.3A:重要系统更新!
  4. MATLAB图像增强程序举例
  5. batchsize大小对训练速度的影响
  6. PowerDesigner导出Report通用报表
  7. Qt工作笔记-对connect的第五个参数的研究
  8. springmvc重定向之后取值的几种办法以及优劣比较
  9. PowerShell 操作 Azure Blob Storage
  10. 在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程
  11. android开源数据库,Android Hawk数据库 github开源项目
  12. 微电子学与计算机模板,微电子学专业个人简历模板
  13. ISO9001认证审核常见问题大汇总
  14. 邮件系统extmail搭建手册
  15. 三维模型格式转换神器-assimp
  16. 净化-湿式除尘器:湿式除尘器
  17. vscode配置代理
  18. C++关于函数声明定义的位置
  19. python ide哪个好用_好用的Python IDE推荐
  20. .java.smap_利用Java Binary Webshell对抗静态检测

热门文章

  1. SAP云平台CloudFoundry环境里新建SAP UI5应用后,自动生成了哪些组件
  2. Where is number of opportunities not displayed message poped up
  3. SAP UI5 oSelectedItem.getBindingContext(json)
  4. SAP云平台CloudFoundry环境里route 超过quota的错误处理
  5. Angular self study 2 - compile how is hello {{ name }} compiled
  6. SAP Fiori My task里complete checkbox的处理
  7. 本文可能是国内第一篇介绍C/4HANA Foundation的中文博客
  8. 如何研究Maven build时发生了哪些事情
  9. Java SpringAOP学习之How is beforeMethodAdvice called
  10. 关于Fiori应用sandbox JavaScript的两个疑问