软件开发中总结经验笔记

作为开发专业软件的人员,一些软件中有一些是在非常严格的环境下使用的,安全性和可靠性是最重要的。那么如何才能做好这三点,基于对多位多年工作经验的软件设计师的交流,总结了一系列实用的经验教训。

下面是整理的一些建议、经验教训清单,与大家共享。

01

有时候编写一些垃圾代码也并非不可以。因为我们开发的应用程序的各个模块并非生来平等的。

02

为了学习新事物没有必要通过学习一门新语言来精通。很多相类似的事情可以使用多种语言来完成,我们宁可深但不广。

03

可以编写抛弃型代码来测试不同的方法函数。但是一定不要这些抛弃型代码变成产品代码,造成潜在软件风险。

04

实践防御式编程。你是否记得你认为永远不会变空的那个方法参数?是的,结果在某些时候它还是变成了空值,然后你写的应用程序“爆炸”了。为了防止程序“爆炸”,你需写下这些防卫语句(guard clauses)。

05

从来不要永远也不要有应用程序的硬编码设置。写出可配置组件并向其传递环境变量。通过重启应用程序比重新全部编译和部署都要简单的多。

06

编写容易测试的代码。就是说,不要在命令处理程序、服务等中“新建”数据库对象,而是要让其成为依赖项,就是抽取公用代码,将其封装。

07

保证异常只会在特殊情况发生时抛出,就是异常在可控的范围内才会抛出。

08

要了解替换 If-Else 的合适方法。If-Else 经常被滥用,这是成为糟糕设计的早期标志。并且If-Else 语句在许多设计模式中是不必要的。

09

并非每一个 IF 都需要 Else If 或 Else。If 本身是可以解决问题的,应当鼓励减少判断分支的使用。

10

重构意味着重构。当进行代码重构时,不要尝试添加任何新功能代码。因为这样做对重构代码并没有什么好处。

11

如果在程序中发现存在垃圾代码,那么请花时间清理掉它们,使代码更好,并且无论“更好”在特定环境中是什么意思。

12

作为程序员如果不学习设计模式,那么在软件设计中必然将会遇到一些困难。设计模式是无处不在,学会并应用它们会使你的编程生涯更轻松。

13

合理的应用设计模式有助于改善代码,提升代码可读性。

14

攻击甚至贬低别人的代码并不会让你成为一名更好的程序员,也不会提升你的资历。大多数新手都会攻击其他程序员的代码,因为他们可能对简单的概念都难以理解。

15

在需要接口之前不要创建接口。因为由具体的类开始,也是完全没有问题的。

16

你是否确定某些字段 / 属性 / 方法需要公开?如果不能,那么将其设为私有或者内部。

17

一个超简单的类,就像一个简单的方法,它的存在是合理可行的。

18

对于简单问题编写简单代码,不要复杂化。

19

要保证测试了重构代码的每一部分。不然的话你就不知道你在破坏什么,与你重构的目的事与愿违。

20

你刚刚灵光乍现草草写下的代码并不比下载量为 数千 万的 npm/nuget/pip 包好。下载那个该死的软件包,应用到你的程序中,这不会让你后悔。

21

对于复杂的问题,不要害怕提出复杂的解决办法。能迅速解决问题比花很多时间想简洁的方案更重要。

22

掌握几种语言即可。试着学习后台、前端和数据库语言。通过这种方式,你可以更好地理解团队中其他人所处理的问题。

23

别总看那些该死的教程了,尝试独立思考。当你陷入困境,或者需要快速学习一些东西的时候,偶尔有一些教程是很好的,快速通读它们。

24

其实大部分的开发者都会编写垃圾代码。别为此而丧失信心。

25

经常参加或观看开发者会议的讲座,并关注编程界的思想领袖。他们通常有很多很好的经验可以借鉴,而且你从中也很容易得到启发。将其应用的实践中。

26

在成为更好的开发者的历程中,每个人都会遇到瓶颈期。向有成就的开发者寻求建议。不要害怕给一个不认识、不熟悉的开发者发信息寻求建议。

27

以 GUID/UUID 作为实体 ID,这将使得程序处理起来更加简单。但是,也要注意取舍。

28

遵守 SOLID 原则,因为它们易于理解,并且可以改进代码质量。诸如“开发 / 封闭原则无关紧要”之类的声明会反过来遏制你。

29

当程序中需要列举类型的数据时,并且选项数目有限时,使用枚举代替字符串作为参数。

30

在模块中要合理安排代码。别把所有的东西都放在一个模块里,如果这样程序很快就会失去控制。

31

在进行软件开发的过程中,你将要解决的业务问题,或者将要开发的业务应用,都是必须牢记的。因为对于企业来说,代码只是实现企业战略目标的一种手段。

32

把软件开发看成一门手艺。要编写有目的、漂亮的、简介的代码。所以要主动去提升自己的编程技能。活到老学到老。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值