点击上方“深度学习技术前沿”,关注公众号,选择加“星标“或“置顶”


作者:Kesk

编译:ronghuaiyang

导读

如何节省更多的时间,犯更少的错误。

在这个总结中,我列出了一些对我的职业生涯有帮助的事情。它读起来很快,但是用得好可能要花一辈子的时间。我写代码已经将近15年了,但有时候,我还是不得不停下来思考这个职业的关键部分。

  1. 把代码分解为小函数。

  2. 如果你下班的时候还没有解决问题。关掉电脑,留到第二天再解决。不要再想这个问题了。

  3. YAGNI principle:代码的功能不要超越需求。不要预测未来,只要尽快创造出可行的东西就可以了。代码只需要解决当前必须要解决的问题。

  4. 你不需要了解所有内容,也不需要了解所有现有框架。最重要的是要有一个良好的基础。在开始使用框架之前,要深入了解这门语言,并学习一些基本的东西,比如SOLID原则或如何编写干净的代码。

  5. KISS:“Keep it simple, stupid”或“Keep it stupid simple”是一个设计原则,它表明大多数系统在保持简单而不是复杂的情况下工作得最好。虽然这是合乎逻辑的,但有时很难实现。

  6. 不要想得太多。

  7. 如果你遇到问题或bug的时间太长,那就走开,稍后再来解决它。通常,我在从办公室到卫生间的路上就会想到这些问题的最佳解决方案。当你对客户或同事生气的时候,特别是如果你还想保住你的工作,走一走也是明智的。

  8. 学习编写有用的测试并学习做TDD。TDD是一种依赖于重复非常短的开发周期的软件开发过程:编写测试、运行所有测试并查看新测试是否失败、编写一些代码、运行测试、重构代码、重复。

  9. 先解决问题,然后再写代码。不要在不知道怎么做的情况下开始编码。

  10. 不要去记代码,而是要理解其中的逻辑。

  11. 如果复制粘贴stack overflow解决方案,请确保可以理解它。学会使用 Stack Overflow的正确方法。

  12. 如果你想学习,那就去练习。举个例子,让它们发挥作用,因为仅仅阅读是不够的。

  13. 学习别人的代码,也让别人时不时地学习你的代码。结对编程和代码复查是一个好主意。

  14. 不要重复造轮子。

  15. 你的代码就是最好的文档。

  16. 知道如何google东西。为此,你需要有经验和大量阅读,知道应该找什么。

  17. 你的代码将来可能需要自己或者别人来维护,所以写代码时要考虑到读者,而不是试图成为最聪明的人。让它读起来像你在读故事。

  18. 利用google来解决错误的最好方法是复制粘贴这个错误。

  19. 永不放弃,最终,以这样或那样的方式解决它。糟糕的日子总会过去的。

  20. 休息,休息,再休息。解决问题的最好办法是有一个冷静的头脑。

  21. 学习使用软件设计模式。设计模式是软件设计中常见问题的解决方案。每个模式都类似于一个蓝图,你可以自定义该蓝图以解决代码中常见的设计问题。(不要重复造轮子)

  22. 尽可能使用集成工具和自动化。

  23. 做代码练习。code kata是一种编程练习,帮助程序员通过练习和重复来提高他们的技能。这里:https://codingdojo.org/kata/

  24. 面对接口编程,而不是面对实现编程。依赖注入是必需的。参考SOLID原则。

  25. 重构-测试-重构,是一种重构现有代码、修改和改进其内部结构而不改变其外部行为的技术。

  26. 需要帮助的时候就去问。不要浪费时间。

  27. 熟能生巧。

  28. 虽然有时注释可以帮助你理解,但不要太在意它们。他们可能过时了。

  29. 熟悉你的开发环境,并购买于一个足够强大的开发环境,比如IntelliJ。

  30. 重用组件。

  31. 在开发web应用程序时,请考虑mobile-first以及相关的功率和带宽限制。

  32. 不要过早地优化或重构。更重要的是尽快有一个最小的可行产品。

  33. 永远不要为了节省几分钟而选择低效的捷径。每次写代码的时候,尽你最大的努力!

  34. 遵循文档的标准。

  35. 用户不是技术人员。当你开发你的UI时,想想它。

  36. 一定要用Github或bitbucket之类的代码管理系统,做小和频繁的git提交。

  37. 使用日志比调试代码更好。记录所有关键信息。

  38. 编码时要保持一致。如果你使用了一种风格,请始终使用同一种风格。如果你和更多的人一起工作,所有的团队使用相同的风格。

  39. 不要停止学习,但要比学习新的语言或框架更关注软件开发的基础知识。

  40. 最后,耐心以及热爱你所做的事情。

—END—

英文原文:https://medium.com/swlh/40-tips-that-will-change-your-coding-skills-forever-bf9d6b936ccc

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧

可以永久改变你的编程技巧的40个Tips相关推荐

  1. 单片机应用编程技巧100问

    单片机应用编程技巧100问 单片机应用编程技巧100问 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言.其主要优点 ...

  2. 单片机应用编程技巧---MCU专家答网友问

    单片机应用编程技巧---MCU专家答网友问 单片机应用编程技巧 Holtek MCU专家--邓宏杰答网友问 (转自电子工程专辑网站) 1.    C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇 ...

  3. BASH的保护性编程技巧

    BASH的保护性编程技巧 shell常用逻辑判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目录, ...

  4. 偏执却管用的 10 条 Java 编程技巧

    经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯.因为,你知道- "任何可能出错的事情,最后都会出错." 这就是人们为什么 ...

  5. 如果你是C开发人员请看这三个显式编程技巧

    嵌入式系统开发人员应尽可能明确,以避免 ASSUME 综合症并在其系统中产生意外行为.在今天的文章中,让我们来看看嵌入式开发人员可以通过更明确的方式清理代码的几个领域. 嵌入式系统开发人员应尽可能明确 ...

  6. 关于ThinkPHP的一些编程技巧

    在TP学习过程中难免会遇到一些大大小小的问题,把这些问题积累下来就可以在以后遇到时能很快速的解决,提高编程效率. 1.让Runtime下的文件格式化:入口文件处:define('STRIP_RUNTI ...

  7. c语言中的关于数学问题的编程,C语言中具有代表性几种数学问题编程技巧探索.doc...

    C语言中具有代表性几种数学问题编程技巧探索 C语言中具有代表性几种数学问题编程技巧探索 [摘要]本文分析了C语言中几种常见的具有代表性的几类数学问题,从数学规律.语法结构分析.语句优化设计及应用方面, ...

  8. VC++ 常用编程技巧总结

    VC++6.0的使用以及编程技巧整理 1.MDI子窗口一启动就最大化      BOOL   CChildFrame::PreCreateWindow(CREATESTRUCT&   cs) ...

  9. java编程代码大全_掌握Java编程技巧,代码重构

    代码重构在不改变软件系统外部行为的前提下,改善它的内部结构,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 代码重构目标 持续纠偏和改进软件设计 随 ...

最新文章

  1. java.net.SocketTimeoutException: Read timed out 异常排查
  2. Android测试环境配置
  3. 深入理解lombok
  4. 【最强VSCode】之管理MySql数据库
  5. sap的ides和ecc分别是什么意思
  6. Data Guard跳归档恢复的案例
  7. 说好的 All in AI,没想到科技巨头们都开始偷偷的挖矿中!
  8. 【Rust学习笔记】Rust生命周期参数的详细阐述
  9. AD15如何更新原理图库
  10. 第二章 确定性知识系统
  11. VUE3+TS脚手架安装+目录文件规范
  12. 《MLB棒球创造营》:走近棒球运动·迈阿密马林鱼队
  13. 如歌芳华,编剧柯伊玟获奖后畅谈从影历程
  14. 【科普】Windows客户端加域管理(AD)
  15. 爱普生Epson TM-T88III 打印机驱动
  16. python基础学习(三)之线性数据结构
  17. jquery服务器文件保存到本地,jQuery本地存储
  18. 统计之 - 离均差平方和
  19. RL论文阅读20 - MF类算法总结(VPG, TROP, PPO, DDPG, TD3, SAC)
  20. [导入]了解OGRE——起步常见问题

热门文章

  1. Mongodb的范式化和反范式化
  2. Ext JS 6正式版的GPL版本下载地址
  3. 编写高质量代码 Web前端开发修炼之道 读书笔记
  4. Linux下*.tar.bz2等文件如何解压--转
  5. WPF DataGrid 绑定DataSet数据 自动生成行号
  6. linux jna调用so动态库
  7. 漏洞检测,流量和性能监控
  8. 我对虚拟化的认识(一)
  9. html width字符数,HTML pre标签 width 属性
  10. ThreadLocalMap的enrty的key为什么要设置成弱引用