对不安全代码的一点思考

不安全代码,大概就是说编译器可以编译,但没法验证是不是会出异常问题的代码。

不安全代码主要是有指针相关操作,或者类型强转操作。这两种操作编译器一般是无法验证是否会出现异常的。

这是基于编译器能否验证的角度,对日常写代码帮助还是比较小。

如果从能否轻松编写正确代码,包括业务逻辑也正确,的角度来思考。似乎可以把代码分几类,第一类是靠测试能保证没问题的,第二类是靠编译器能保证没问题的,第三类是靠人来保证没问题的。

靠人保证的,要尽量少些,多了靠人就不靠谱。靠测试的也需要人来思考写哪些测试,虽然靠谱多了,还是希望少些。靠编译器的尽可能多些才好。

一般业务逻辑是靠测试最方便。

指针操作,类型强转,死锁,循环引用,这些只能靠人保证了,应该是要尽量少用。

这样思考下来,Rust也没有解决死锁和循环引用的验证问题,猜测以后还会有更安全的语言和编译器出现。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值