白交 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

编程如何节省更多的时间,犯更少的错误?

最近,这样一份「心得」火了。这位名叫Kesk Noren的软件工程师在Medium上分享了一篇博文——「40 Tips that will change your coding skills forever」,获得3.5k点赞。

40个将永久改变你编程技能的小技巧,你值得拥有~

除了软件工程师以外,Kesk Noren还是一位全栈工程师。他用15年的工作经验,总结出来一些对职业生涯有帮助的东西。

还提到,

这篇文章虽然读起来很快,但是真正能够应用好它,就需要一生的时间。

话不多说,我们就来一睹为快!

40个改变编程技能的小技巧

1、将大块代码分解成小函数

2、今日事今日毕,如果没毕,就留到明天。

如果下班之前还没有解决的问题,那么你需要做的,就是关闭电脑,把它留到明天。

中途不要再想着问题了!

3、YAGNI原则

「You aren’t gonna need it!」

你自以为有用的功能,实际上是用不到的。除了要求的核心功能,其他功能一概不要部署。

这一原则的核心思想是,尽可能快、尽可能简单的将软件运行起来。

4、不必全知全能,但基础一定要扎实

比如学习一些基础知识,SOLID原则,如何写干净的代码等等。

5、KISS原则

「Keep it simple,stupid.」or「Keep it stupid simple.」,一种程序设计原则。

大多数系统往往「最简单」,运行效率最高,但实际操作起来并不简单。

6、别想太多

7、被问题/Bug卡住时,walk away!

不过还是要记得回来。

当你走在去上班、去厕所、去散步的时候,也许就能想到解决方法。

尤其是在与客户、同事生气时,甚至关乎你工作去留的时候,效率会更高。

8、学会写测试代码TDD

TDD是一个软件开发过程,它依赖于重复一个很短的开发周期:写一个测试,运行所有的测试,看看新的测试是否失败,写一些代码,运行测试,重构代码,重复。

9、先分解问题再开始写代码

不要不知道怎么做就开始写代码。

10、代码不要死记硬背

要理解逻辑。

11、学好用好Stack Overflow

如果你复制粘贴一个Stack Overflow解决方案,请一定要确保已经理解了它。

12、不要「光学不练」

如果你想学点什么,就去练习,光学是不够的。

13、与小伙伴互相审查代码

研究别人的代码,让别人时常研究你的代码。

互帮互助,共同进步。

14、Don’t Reinvent The Wheel

「不要重新发明轮子。」

充分利用已有的经验和成果,避免不必要的投入和浪费。

15、你的代码是最好的文档

16、懂得如何搜索

对于这一点,你需要有经验以及读很多书,才知道要找什么东西。

17、写代码时要之后维护考虑

你的代码将来需要你自己或者别人来维护。

所以,写代码的时候要考虑到读者,而不是想成为最聪明的人,让它读起来就像在读一个故事。

18、复制粘贴

用谷歌、百度解决错误的最好方式就是「复制粘贴」。

19、不要放弃

到最后,不管用什么方式,问题肯定会解决。

20、休息、休息再休息

解决问题的最好方法是有一个安稳的心态。

21、学习软件设计模式

设计模式是软件设计中常见问题的解决方案。每一种模式就像一个蓝图,你可以自定义来解决代码中常见的设计问题。(不要重复发明轮子。)

22、使用集成工具

尽可能实现自动化。

23、Do code katas.

「Code kata」是编程中的一种练习,可以帮助程序员通过练习和重复来提高他们的技能。

24、依赖注入是一个要求

编程到一个接口,而不是implementation。

所谓依赖注入,就是组件之间的依赖关系由容器在应用系统运行期来决定,也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。

25、重构-测试-重构

重构是一种对现有代码进行重组的技术,在不改变其外部行为的前提下,改变和改进其内部结构。

26、及时寻求帮助

不要浪费时间。

27、Practice makes perfect.

熟能生巧。

28、不必太在意评论

虽然有时评论可以帮到你,但不要太过在意。他们可能已经过时了。

29、了解你的开发环境

了解你的开发环境,并invest一个足够强大的环境,如,IntelliJ。

30、重复使用组件

31、考虑相关限制

在开发网络应用时,要考虑到移动优先以及相关的功率和带宽限制。

32、不要过早优化或重构

更重要的是尽快拥有一个最低限度可行的产品。

33、不要投机取巧

千万不要为了节省几分钟的时间而选择效率低下的捷径方式。

「Every time you code, give your best!」

34、遵循规定的标准

35、用户不是技术人员

当你开发你的UI时,需要考虑到这一点。

36、坚持使用Github或bitbucket

可以进行小规模、频繁的git提交

37、记录所有关键部分

记录系统日志比调试代码更好。

38、风格保持一致

如果你使用一种风格,请总是使用相同的风格。

如果你和更多的人一起工作,对所有的团队都使用相同的风格。

39、Don’t stop learning

但比起学习新语言或框架,更要注重学习软件开发的基础知识。

40、patience and love

最后,对你正在做的事情保有足够的耐心和热爱。

好了,这就是40个改变你编程技能的小技巧,希望能对你有所帮助~

当然,如果你有什么好的经验技巧,也欢迎与我们分享~

博文链接:

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

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

喜欢就点「在看」吧 !

全栈工程师15年经验分享:40个改变编程技能的小技巧相关推荐

  1. 15年经验分享:40个改变编程技能的小技巧

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法那些事 编程如何节省更多的时间,犯更少的错误 ...

  2. 40个改变编程技能的小技巧

    40个改变编程技能的小技巧 1.将大块代码分解成小函数 2.今日事今日毕,如果没毕,就留到明天. 如果下班之前还没有解决的问题,那么你需要做的,就是关闭电脑,把它留到明天. 中途不要再想着问题了! 3 ...

  3. 15年程序员经验分享:40个改变你编程技能的小技巧!

    编程如何节省更多的时间,犯更少的错误? 最近,这样一份「心得」火了.这位名叫Kesk Noren的软件工程师在Medium上分享了一篇博文--「40 Tips that will change you ...

  4. 40条提升编程技能的小妙招

    作者:Kesk, 翻译自:机器之心 如何提高编程技能?恐怕很多开发者思考过这个问题.最近,拥有将近 15 年开发经验的软件工程师 Kesk 写了一篇博客,列举了 40 条对其职业生涯有所帮助的事项. ...

  5. 40个提升自己编程能力的小技巧

    40 个改变编程技能的小技巧 1.将大块代码分解成小函数 2.今日事今日毕,如果没毕,就留到明天. 如果下班之前还没有解决的问题,那么你需要做的,就是关闭电脑,把它留到明天. 中途不要再想着问题了! ...

  6. 程序人生:如何成为一名优秀的全栈工程师

    对性能影响有着深入理解的技术通才 掌握多种技能,并能利用多种技能独立完成产品的人 一位资深开发工程师.架构师,以及具有敏捷开发技能的程序员 目 录 1. 什么是全栈工程师 2. 全栈工程师的价值 3. ...

  7. 关于晋升全栈工程师,从入门到放弃的神功秘籍,不点进来看一看?

    什么是全栈工程师 全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Stack .他把全栈工程师定义为对性能影响有着深入理解的技术通才.自那以后全栈这个词 ...

  8. python成语接龙到为所欲为_ParisGabriel:Python全栈工程师(0基础到精通)教程 第十八课(递归函数、闭包)...

    ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 全栈工程师 Python人工智能从入门到精通 函数式编程: 是指用一系列函数解决问题 每一个函数完成细小的功能,一系列函数的任意组合 ...

  9. 从零开始的全栈工程师——html篇1

    全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言,标记通用标记语言下的一个应用.) "超文本"就是指页面内可以包含 ...

最新文章

  1. 半透明AlphaBlend
  2. 分享php中四种webservice实现的简单架构方法及实例(转)
  3. php透明颜色的代码,PHP imagecolorallocatealpha - 为一幅图像分配颜色和透明度
  4. 【CodeForces - 245C 】Game with Coins (思维,贪心)
  5. 通过管道进行线程间通信
  6. Unity Failed executing external process for 'Bake Runtime' job
  7. 基于CNN的中文文本分类算法(可应用于垃圾文本过滤、情感分析等场景)
  8. 产品经理面试必备常见10道题及解析
  9. 译:手把手教你如何写自定义babel代码转换
  10. 为什么要用Handler
  11. SQL中的笛卡尔你真的懂吗?
  12. 土壤微生物多样性分析
  13. 485与232的区别
  14. RabbitMQ的工作模式
  15. 黑苹果热补丁hotpatch来禁用笔记本独显
  16. C++(STL)学习笔记
  17. nodeJS的环境搭建以及nodeJS和npm简介
  18. 使用Java理解逻辑程序之实现计算会员折扣
  19. Spark 大表之间的join
  20. java 返回布尔值_如何使用Java方法返回的布尔值?

热门文章

  1. 中国电子学会图形化四级编程题:解密
  2. 【青少年编程】【蓝桥杯】排队购票
  3. 【ACM】与全排列相关的STL函数 prev_permutation next_permutation
  4. 【CTF】实验吧 传统知识+古典密码
  5. 2020长沙“科技之星”榜单重磅揭晓,近百家企业凭实力“出道”!
  6. 赠书 | Python人脸五官姿态检测
  7. “编程能力差!90%输在这点上”谷歌AI专家:其实都是瞎努力!
  8. 基于人脸关键点修复人脸,腾讯等提出优于SOTA的LaFIn生成网络
  9. 支撑亿级用户“刷手机”​,百度Feed流背后的新技术装备有多牛?
  10. 百度自动驾驶新突破:获首批T4牌照,升级Apollo 5.0,将进行复杂城市场景路测...