可以从代码的规范性、完整性、健壮性、扩展性等几个方面提高代码的质量。
(1)代码的规范性
书写清晰、布局清晰、命名合理;
书写清晰:可以写慢一点,但是字迹清晰;
布局清晰:缩进,以及代码的风格统一;
命名合理:变量命令,函数命名,尽量用容易理解的命名;不用魔数等;
(2)代码的完整性
是否完成了基本功能、输入边界值是否能得到正确的输出、是否对各种不合规范的非法输入做出了合理的错误处理:
从功能测试、边界测试和负面测试三方面设计测试用例;
(2.1.1)普通功能测试
比如面试题要求完成的功能是把字符串转换成整数,应聘者就可以考虑输入字符串“123”来测试自己写的代码。这里要把零、正数(比如123)和负数(比如-123)都考虑进去。
各种边界值的测试用例:
(2.1.2)边界测试
很多代码都包含有循环或者递归。如果代码是基于循环,那么结束循环的边界条件是否正确?基于循环的代码要特别注意开区间和闭区间的使用;
如果代码是基于递归,递归终止的边界值是否正确?
(2.1.3)非法输入测试(负面测试)
应聘者写出的函数除了要顺利地完成要求的功能之外,当输入不符合要求时,面试官还希望他能做出合理的错误处理。
(3)扩展性以及可维护性
在软件开发过程中,永远不变的就是需求会一直改变。如果应聘者在面试时写出的代码能够把将来需求可能的变化都考虑进去,在需求发生变化时能够尽量减少代码改动的风险,那他就向面试官展示了自己对程序可扩展性和可维护性的理解。
(4)鲁棒性(健壮性)
鲁棒性是指程序能够判断输入是否合乎规范要求,并对不合要求的输入予以合理的处理。容错性是鲁棒性的一个重要体现。
(5)总结
面试时写一个算法题时:
1)理清题意;
2)大概思路;
数据结构,用到的算法,整体流程;
3)代码实现;
关键代码加注释;
4)单元测试;