• 2018春 OO第一阶段总结


    基于度量分析程序结构

    第一次作业

    第二次作业

    第三次作业

    分析自己程序的 Bug

    第一次作业使用 java 正则表达式类库的时候,没有详细查询文档,导致输入串过长的时候,正则表达式类库会爆栈抛出 Error。而我在最外层只 catch 了 Exception,导致程序崩溃。

    第二次作业没有被发现 Bug。

    第三次作业误解了指导书中的 INVALID 格式,因为一个格式错误导致公测所有的非法输入都挂掉了(10 个测试点),略有遗憾。其他的也没有被发现 Bug。

    分析发现别人 Bug 所采用的策略

    第一次作业发现了别人两个 Bug。第二次作业发现了别人会程序崩溃(然而他申诉我的输入是无效输入,被助教删掉了 Bug,我不太懂指导书中“任何情况下都不应该出现 crash”和他的 README 谁的优先级比较高)。第三次作业发现了别人的两个 Bug。

    我的策略主要是先自己阅读两遍他人的代码,一般读完一遍我就能找出所有的功能性和边界的 Bug,读第二遍只是为了确保万一。同时,我也会制造一些随机数据,让我的程序和他的程序一起运行,然后比对结果。不过这一步一般没什么用,Bug 通常在阅读代码的时候已经找完了。

    心得体会

    前两次作业我都只在周二晚上花了约 1h 写完,导致对第三次的难度估计有些偏差,没有花费足够的时间阅读指导书。虽然第三次作业没有功能性的问题,但是却因为格式错误而挂了 10 个公测点,略有遗憾。

    通过三次作业,我对 java 的面向对象设计方法有了更深的理解,对于继承、接口,以及重载、覆盖等也比较熟悉了。java 这套方法虽然有的时候会感觉略有累赘,没有写 c++ 的时候的畅快的感觉,但是对于多人合作一个大的工程却很有帮助。

    编写面向对象程序的时候,我们一定要提前设计好程序的整体层次、类的继承关系、接口,还要分析好需求,考虑可扩展性。

  • 相关阅读:
    Excel求值表达式——太好用了
    CPU保护模式深入探秘
    用QT创建WINDOWS服务程序
    windows服务怎么向应用程序发消息(部署在同一台机,非SCOKET)
    TCP的流量控制和拥塞控制
    PHP:执行模型和内存模型
    Web API CSRF保护实现
    C#中易混淆的知识点
    字符串合并与拆分写法小结
    zabbix实现对磁盘动态监控
  • 原文地址:https://www.cnblogs.com/coldwater/p/8715815.html
Copyright © 2020-2023  润新知