20200309——剑指offer第三章 高质量的代码

面试官是根据应聘者写出的代码来决定是否录用他的,如果应聘者代码写的不够规范,影响面试官阅读代码的兴致,那么面试官就会默默地减去积分。
书写,布局和命名都决定着代码的规范性。

首先,规范的代码书写清晰。绝大部分面试时要求饮品这在白纸上或者白板上书写,由于现代人已经喜欢敲键盘打字,手写变得越来越不习惯,因此写出来的字潦草。虽然应聘者没有必要为了面试特意去链子,但是面试过程中减慢写字的速度,尽量把每个字母写清楚还是很有必要的。

其次规范的代码布局清晰,平时程序员在继承开发环境里面写代码,依靠专业工具调整代码的布局,加入合理的缩进并让括号对其呈对呈现,离开这些工具手写代码,我们要格外注意布局问题。当循环,判断较多,逻辑较复杂时,缩进的层次可能会比较多。如果布局不够清晰,缩进也不能体现代码的逻辑,那么面试官面对这样的代码将会头昏脑胀。

最后,规范的代码命名合理。很多初学编程的人写代码总是习惯最简单的名字来命名,变量名是i,j,k 函数名f,g,h。由于这样的名字不能告诉读者对应的变量或者函数的意义、代码一长就会把变得晦涩难懂。强烈建议应聘者在写代码的时候,用完整的英文单词组合命名变量和函数。

代码的完整性
在面试过程中,面试官会非常关注应聘者考虑问题是否周全。面试官通过检查代码是否完整来考查应聘者的思维是否全面。通常面试官会检查应聘者的代码是否完成了基本功能、输入边界值是否能得到正确的输出、是否对各种不合规范的非法输入做出了合理的错误处理。

从三个方面确保代码的完整性
应聘者在写代码之前,首先要把可能的输入都想清楚,从而避免在程序中出现各种各样的质量漏洞。也就是说,在编码之前要考虑单元测试。如果能够设计全面的单元测试用例并在代码中体现出来,那么写出来的代码自然也就是完整正确的了。通常我们可以从功能测试、边界测试和负面测试三个方面设计测试用例、以确保代码的完整性。

首先考虑是普通功能测试的时候,我们要尽量突破常规思维的限制。面试的时候我们经常受到惯性思维的限制,从而看不到更多的功能需求。打印1到最大的n位数,如果超出int的范围了呢

其首次需要考虑各种边界值的测试用例。很多时候我们的代码中会有循环或者递归。如果我们的代码基于循环,那么技术循环的边界条件是否正确。如果基于递归,那么递归终止的边界值是否正确。这些都是边界测试需要考虑的用例。

最后还需要考虑各种可能的错误输入,也就是通常所说的负面测试的测试用例,我们写出的函数除了要顺利地完成要求的功能。当输入不符合要求的时候我们需要做出来合理的错误处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值