代码的鲁棒性
容错性是鲁棒性的一个重要体现。不鲁棒的软件在发生异常事件的时候,比如用户输入错误的用户名、试图打开的文件不存在或者网络不能连接,就会出现不可预见的诡异行为,或者干脆整个软件崩溃。
提高代码鲁棒性的有效途径是进行防御性编程。防御性编程是一种编程习惯,是指预见在什么地方可能会出现问题,并为这些可能出现的问题制定处理方式。比如,当试图打开文件时,发现文件不存在,可以提示用户检查文件名和路径;当服务器连接不上时,可以试图连接备用服务器等。这样,当异常情况发生时,软件的行为也尽在我们的掌握之中,而不至于出现不可预见的事情。
在面试的时候,最简单也最实用的防御性编程就是在函数入口添加代码以验证用户输入是否符合要求。通常面试要求的是写一两个函数,我们需要格外关注这些函数的输入参数。如果输入参数是一个指针,那么指针是空指针怎么办?如果输入的是一个字符串,那么字符串的内容为空怎么办?如果能把这些问题提前考虑到,并进行相应的处理,那么面试官就会觉得我们有防御性编程的习惯,能够写出鲁棒的软件。