程序员最有价值的18条建议

1. 保持简单和易理解

Keep It Simple, Stupid. 是指在设计当中应当注重简约的原则。保持简单(避免复杂)永远是你应该做的第一件事,简单的代码不仅写起来简单、不容易出Bug,还易于维护,让人使用和理解都是顺其自然、轻轻松松,而不是让人费劲心思的去消化。

总结工程专业人员在设计过程中的经验,大多数系统的设计应保持简洁和单纯,而不掺入非必要的复杂性,这样的系统运作成效会取得最优,而且不会出意外问题。因此简单性应该是设计中的关键目标,尽量回避免不必要的复杂性。将该原则应用于工作中的表现:

  • 尽量保持系统的核心模块算法逻辑尽可能的简单而有效,复杂的算法很多时候并不会带来多少效果,还不易测试容易出bug
  • 将你的任务按天按小时的来拆分为子任务
  • 把你的问题拆分成多个小问题。每个问题用一个或者很少的几个类来解决掉
  • 让你的类小点。即遵循单一职责原则,控制类的粒度保持高内聚性
  • 保持你的方法足够小,每个方法永远不要有太多行代码。每个方法都应该只处理一个小小的问题。
  • 先解决问题再开始编码,编码会简单很多
  • 不要害怕干掉旧代码,重构会干掉很多冗余复杂的垃圾代码

2. 不要提前设计

提前设计和提前优化都是编码的万恶之源。避免提前设计可以带来很多好处:更少的时间去设计和编码,更少的测试,更少的代码维护,更多的时间用于更重要的功能、文档编写等。大多数软件开发都是根据客户的需求进行的,最后呈现给你的实际需求到底是什么样子的根本无法预测,提前设计和实现的功能很大可能性完全无用,浪费时间精力,还可能引入未知的问题。而提前优化同样问题多多,先实现功能才是第一要务,只有实现功能之后才应该去考虑优化的问题。一边实现一边优化就会转移自己的专注度,编码缓慢影响进度,还会导致bug发生,而且优化和未优化的代码也许性能差别几乎没有。

3. 拒绝重复

旨在软件开发中,减少重复的信息。系统中的每一部分,都必须有一个单一的、明确的、权威的代表,类似统一接口人,这样需要使用的时候就知道找谁,而不是既可以找A又可以找B,导致有的地方找A,有的地方找B,修改时引入巨大的混乱麻烦。具体比如:拒绝代码重复、文档重复、数据重复、重复造轮子,重复的事项尽可能使用自动化程序解决。当然也不要过于去追求拒绝重复而破坏了类的内聚性。

4. 为维护者编码

为维护者编写程序。比如让代码有自解释的功能,在逻辑复杂的地方尽可能的有详细注释。在你编写代码的时候永远记得将来可能需要维护他,这也是在为自己省事,省的到时自己修改程序时还得重新理清逻辑,费时费力还可能引入bug。

5. 不能测试的代码就是灾难

没有经过测试的代码是不能上生产环境的。是人就会写出bug,所以需要测试。无法测试或不易测试的代码可以看出写的是多么的糟糕,让人难以理解。

6. 不要轻易去引入新东西

必须要清楚的知道你的编程环境,熟悉他们就不怕会不会发生自己不知道的情况。如果你需要完成一项任务,最好的方式是不要引进“新的内容”,只有当你完全掌握“新的内容”的时候再去考虑引入,不然就可能引入未知的问题。

7. 编码应该时快时慢

在编写程序的核心模块时,尽可能保证准确,可以用时更多,详细检查;而在编写不重要部分时可以加快速度。

8. 遵循编码6大原则

编程时遵循:开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则。

9. 尽可能去偷懒

重复的事情使用自动化程序去做;不要重复去造轮子;多想想怎么可以使自己更轻松就会有一些好点子。

10. 编程只是一种方法并不是目的

编码只是一种实现方式,而不是解决方案。我们是为了解决问题,而不是为了去编码,所以能解决问题就好,编码只是其中的一种手段。

11. 你永远不可能什么都知道

尤其是在刚开始的时候,我以为我什么都能学会,在开发生涯的大部分时间里,我都是这样想的。但是,每次我学了什么新东西,就打开了一个全新的世界,里面有不同的概念和技术。那似乎很有吸引力,你很愿意尝试,希望把什么都学会,但这是一个没有终点的旅程。如果要学的话,总是有其他的库、框架以及其他很酷的东西可以学。因为似乎永远无法达成自己的目标,所以最终你的热情会慢慢冷却。最好是立足于你最擅长的东西,然后因需而学,即在真正需要的时候才学习新东西。这可以让你保持清醒,维持学习的动力。你还可以把这一点应用在任何其他的领域。不是什么都知道才能达成预期的结果。利用这一点来打造自己的优势,在需要的时候学习。

12. 持续性是关键

持续不断地做某件事可以帮助你成为专家。但并不是一次性投入 10 个小时,而是每天投入半小时或一小时。不断的重复可以让你越来越擅长做某件事。开始的时候,你会经常查资料,逐渐地,你查的次数会越来越少。你的大脑慢慢地习得了相应的模式并保存了下来。

13. 经常休息可以让你更高效

休息有助于大脑恢复,有助于分散拓展思维,先前的停滞就像卡bug似的,稍微停留下来观察,会发现还有其他路可走。

14. 好的团队会让你的能力呈指数增长

独立工作很好,但也会把你局限在自己的能力范围内。在一个好的团队中,交谈和讨论可以在很大程度上影响你的思维过程,也会拓宽你的视线,这样子的进步远比一个人慢慢摸索来的快的多。

15. 社交网络很重要

熟人内推工作比自己投简历靠谱得多。

16. 如果你希望职业生涯能更进一步,就需要一个好人缘

在以前,我以为只要我付出足够的努力就可以获得回报。但事实证明,事情并非如此,没有人过来给我提供晋升机会或为我加薪,我只是在无人注意的情况下继续工作。

17. 大多数公司都不是你希望的样子

不要把公司想得太好,这世界就是个草台班子。

18. 最重要一条:不要一根筋去钻研技术

不要陷到了一心钻研技术的泥潭里去,不然不会有好结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sf_www

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值