中级农民
- 积分
- 136
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2015-1-20
- 最后登录
- 1970-1-1
|
我个人认为,如果一段代码能过99个test case,但是过不了第100个test case,那么从debugging的角度讲,它可能比一个test case都过不了的代码还糟糕。因为后者明显是有错误的,任何人都会想着去改正它;而前者的错误很可能难以发现,于是某些软件工程师就把它当成正确的代码部署在服务器上,用户端上……因为大家的使用方式都很“正常”,所以这个bug一直没有被触发,但是某天突然有个黑客以一种“非常”的方式发现了这个bug,于是你的所有用户的财产安全都受到了极大的威胁,或者甚至已经有用户开始丢失机密信息和财产了!于是公司就不得不花大量资源为用户升级,道歉等等……我绝对不是耸人听闻。
所以,我如果是面试官,可能不会接受1这种答案,除非因为特殊原因(比如时间所限,考虑特殊情况代码分支会比较长,来不及写完),但是这时我会让你说出什么样的test case不会过,为什么不会过。如果你答不出,或者甚至意识不到会有test case不过,那面试官也许就会认为你是公司未来某个潜伏bug的隐患而pass掉你。
如果不是算法问题,而是有些小typo,我认为是可以接受的。因为大多typo会导致编译都通不过,或者IDE能够检查出来(不过某些因为巧合而导致影响比较严重的typo不在此列)
3是最理想状态,但是可能难以做到,尤其是对于算法复杂的问题来说,但这应该是努力的方向;
总之,
|
|