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

    面试官谈代码质量:

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

    代码规范性:

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

    代码完整性:

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

    代码鲁棒性:

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

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

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

  • 相关阅读:
    js与jquery实时监听输入框值的oninput与onpropertychange方法
    jQuery实现的浮动层div浏览器居中显示效果
    jquery代码规范让代码越来越好看
    asp.net截屏功能实现截取web页面
    拦截asp.net输出流并进行处理的方法
    asp.net调用系统设置字体文本框的方法
    asp.net网站防恶意刷新的Cookies与Session解决方法
    Attribute在.net编程中的应用(一)
    java学习——构造类之3!+5!=126
    java学习——构造类
  • 原文地址:https://www.cnblogs.com/xuyaowen/p/for-offers-3.html
Copyright © 2011-2022 走看看