zoukankan      html  css  js  c++  java
  • 剑指Offer(第二版)面试题目分析与实现-高质量的代码

    面试官谈代码质量:

    • 容错能力,特别输入是否考虑,如何处理;考虑异常情况和资源回收;
    • 掌握基础知识点;能通过和面试官交流、请教,解决问题;
    • 考虑边界情况;
    • 正确命名变量和函数名称;能根据具体的问题,选择合适的数据结构;
    • 关注程序的正确性和鲁棒性;关注对于输入参数的检查、处理错误和异常的方式、命名方式等;能够在面试官的提醒下,找到程序的缺陷,从而正确解决问题;

    代码规范性:

    • 清晰的书写: 在进行手写代码的时候,要注意书写的格式,规范性,清晰地书写每一个字母;
    • 清晰的布局
    • 合理的命名

    代码完整性:

    • 功能测试:把题目中要求的功能想清楚;
    • 边界测试:考虑问题的规模;是否是大数问题,问题输入的规模;是否应该用特殊的数据结构来存储这些数据;
    • 负面测试:考虑错误案例;是否存在错误输入,是否需要处理错误输入;当出现错误输入的时候,我们应该如何进行处理等;
      • 三种错误处理的方法:
        • 函数返回值,告诉调用者函数出错;
        • 当错误发生时,设置一个全局变量;这种情况下,调用者经常会忘记检查全局变量;
        • 异常;try catch 机制;当函数运行出错的时候,即抛出异常,可以根据不同的出错原因定义不同的异常类型。不同的语言有不同的异常处理情况;早期的时候的语言可能没有异常处理机制;
        • 在面试的时候,针对错误处理情况要和面试官来进行讨论;选择较好的错误处理方式来进行解决问题;

    代码鲁棒性:

    • Robust 健壮性;是指程序能够判断输入是否合乎规范要求,并对不符合要求的输入予以合理的处理;
    • 防御性编程:提前预测错误可能发生的情况,并对错误进行应对性处理;

    保持更新,转载请注明出处;更多内容请关注cnblogs.com/xuyaowen; 

    代码仓库:https://github.com/yaowenxu/codes/tree/master/剑指Offer

  • 相关阅读:
    Lua IDE工具-Intellij IDEA+lua插件配置教程(Chianr出品)
    XLua热更新用法全流程总结(所有容易出问题的点)
    Unity用GUI绘制Debug/print窗口/控制台-打包后测试
    Unity在UI界面上显示3D模型/物体,控制模型旋转
    Eclipse的Debug调试技巧
    IntelliJ Idea 常用快捷键列表
    设计模式之代理模式的静态代理和动态代理
    设计模式之单例模式
    linux下防火墙设置
    FastDFS简介和安装
  • 原文地址:https://www.cnblogs.com/xuyaowen/p/for-offers-3.html
Copyright © 2011-2022 走看看