软件开发32条法则:经过实践检验的实用建议和经验教训

开发 前端
过去的几年里,笔者一直在为各种大小客户专业开发软件。一些软件已经在非常严格的环境中使用了,在这些环境中,安全性和可靠性是最重要的。根据多年的经验,我整理了一些实用建议。

本文转载自公众号“读芯术”(ID:AI_Discovery)。

过去的几年里,笔者一直在为各种大小客户专业开发软件。一些软件已经在非常严格的环境中使用了,在这些环境中,安全性和可靠性是最重要的。根据多年的经验,我整理了一些实用建议。无需赘言,以下是一些自认为实用的建议、经验和优秀实践。

[[338899]]

1. 偶尔写写垃圾代码没关系,应用程序的各个部分并非都是平等的。

2. 无需学习一门新的语言来学习新东西,同样的事情通常可以用许多语言来完成,深度胜于广度。

3. 可以编写一次性代码来测试不同的方法,只是不要让一次性代码变成生产代码。

4. 防御性代码。还记得你认为的永远不会为空的方法参数吗?是的,事实证明它为空,你的应用程序爆炸了,只需编写这些保护条款并加以使用即可。

5. 拒绝硬编码应用程序设置。编写可配置组件并将环境变量传递给它们,重新启动应用程序比重新编译和重新部署更容易。

6. 编写易于测试的代码。这意味着停止在命令处理程序、服务类等内部“新建”数据库对象等等,而是将其转变为依赖项。

软件开发32条法则:经过实践检验的实用建议和经验教训

图源:unsplash

7. 仅在发生异常情况时抛出异常。

8. 了解If-Else的合适替代方法。If-Else经常被过度使用,它是设计不良的早期迹象,事实上,许多设计模式都不需要If-Else语句。

9. 并非每个IF都需要ELSE IF或ELSE。

10. 重构就是重构。在进行重构时,请勿尝试添加新功能,相信我,结果不会很好。

11. 当识别垃圾代码时,花点时间把它清理干净,使其变得更好——无论“更好”在特定情况下意味着什么。

12. 若不学习设计模式将会遇到困难。它们无处不在,学习它们可以使工作更轻松。

13. 应用设计模式很可能会改进代码。

14. 抨击别人的代码不会让你成为更好的程序员,也不能彰显你的资历。初学者抨击其他开发人员的代码的主要原因是,即使是简单的概念,他们有时也会很难理解。

15. 在需要界面之前不要先创建界面,从具体的类开始就完全可以了。

16. 确定字段/属性/方法需要公开吗?不,将其私有化或内部化即可。

17. 超级简单的类(就像简单的方法一样)是正确的方法。

18. 为简单问题编写简单代码。

19. 确保对重构的每一部分都进行测试,否则你将不知道自己的问题所在。

20. 刚刚记下的代码并不比具有1100万次下载量的NPM / NuGet / pip程序包更好,下载f * kn程序包并继续。

21. 不要害怕为复杂的问题提出复杂的解决方案,只是要把握好大方向。

[[338900]]

图源:unsplash

22. 你可以选择几种语言。尝试使用后端、前端和数据库语言,你会对团队其他成员正在处理的事情深深地感激。

23. 停止观看各种无用的教程,试着得出有自己的想法。当然,当遇到问题或需要快速学习时,偶尔使用教程也可以,只是不要受困于教程。

24. 大多数开发人员也编写垃圾代码。不要迷失自己的方向,他们这样做肯定是有原因的。

25. 观看开发者大会演讲,追随思想领袖,可以吸取丰富的经验并容易获得灵感。

26. 在成为更好的开发人员过程中,每个人都会遇到一段停滞期。向有经验的开发人员寻求建议,不要害怕向任意一位开发人员发送消息。

27. 将GUID / UUID用作实体ID通常会使事情更容易处理,但请注意要做出的权衡。

28. 遵守SOLID原则。它们易于理解,可以提高代码质量。诸如“遵守或违背原则无所谓”之类的说法会伤害到你。

29. 如果选项数量有限,请用字符串枚举作为参数。

30. 将代码排列在模块中(以.NET术语表示的项目)。不要将所有内容都放在一个模块中,这样很快就会失控。

31. 记住,要解决的业务问题或开发的业务应用程序是最重要的事情。对于企业而言,你的代码只是达到目的的一种手段。

32. 将软件开发视为一门手艺。编写目标明确的美观代码,积极提高自己的技能。

[[338901]]

图源:unsplash

这只是笔者自己在实际工作中总结出来的经验建议,肯定会有人反对上面的一些建议,总是会有不同的意见、方法和心态,多角度考虑是有益的。你要做的是保持批判性,并把你认为有意义的内容融入到自己的思想行为体系当中。

【责任编辑:赵宁宁 TEL:(010)68476606】

 

责任编辑:赵宁宁 来源: 读芯术
相关推荐

2009-12-09 10:16:42

ibmdwSOA

2019-07-05 10:24:33

云计算技术开发

2011-05-30 15:44:07

敏捷开发

2018-04-12 11:42:48

混合云

2018-04-11 11:00:56

混合云云安全数据

2022-09-29 10:57:23

业务转型企业

2020-01-14 11:17:33

Go并发Linux

2016-02-24 09:41:44

IT人士经验教训

2012-03-05 13:08:35

编程

2017-11-17 08:00:03

软件开发程序员前辈经验

2022-08-09 11:15:28

CIOIT

2015-07-29 10:39:33

代码审查经验教训

2015-09-14 08:43:42

程序员谷歌经验教训

2015-05-20 12:58:43

程序员经验教训

2010-05-10 18:22:03

2024-01-17 16:06:38

2020-06-30 16:01:39

Kubernetes自动化部署

2022-03-11 10:22:58

IT变革IT领导者数字化转型

2019-04-12 08:28:18

物联网智慧城市IOT

2009-06-14 17:15:10

ibmdwWebSphereSOA
点赞
收藏

51CTO技术栈公众号