zoukankan      html  css  js  c++  java
  • OO第二次总结

    Only through the blood of finger , Can play out in the world alongside.

    • OO的课程转眼就过了一半,最近的这三次作业里我们练习了多线程的设计与编码,无论是难度还是所花的时间都大大上升了。虽然经历了痛苦,但也有很大收获。

    作业分析

    第五次作业

    类图

    • 与之前最大的差别就是电梯类写成了自动机,调度器通过修改三个电梯的状态,每台电梯自己是一个线程,于是会自己跑,从而实现多线程的调度。

    度量图

    • 从度量图中可以看出,这一次作业写的还是很丑的,一个是嵌套比较深,由于是自动机写法,有比较多的if-else,再一个就是传参的过程中由于传了一个比较大的对象,这样写还是不太安全,下次要改进。

    时序图

    分析

    • 第五次作业是多线程的电梯,这一次是第一次写多线程,最关键的地方在于多个线程同时调用公共资源时,也就是托盘上的请求时,要注意线程的安全,我是使用synchronize来解决这个问题的。
    • 公测与互测
      自己的bug:输出时没有把空格过滤。算是没有看讨论区吃的亏,在输出request时自己以为输出原来的输入即可,没有输出过滤后的。
      对方的bug:无。

    第六次作业

    类图

    • 对于每一个监控指令建一个monitor线程来监控,一旦发现文件有触发条件则用detail以及summary来输出。

    度量图

    • 这一次依旧有代码嵌套太多以及由于使用深搜导致块深度过大的原因,可以再多尝试不同的写法来提高自己的编码能力。

    时序图

    分析

    • 第六次作业写的是文件检测系统,比较难的地方在于,监控文件夹时,由于有很多文件,所以要采用搜索的办法,要将各种文件的属性给存起来然后再进行判断。
    • 公测与互测
      自己的bug:
      1.recover非法组合时由于打错了打成了recober没有检测出来,僵硬。
      2.(自己不认为是bug的地方)在提供给测试者测试线程时,写了一个sleep,本意是让测试者在后面写,不过测试者认为测试线程是可以自己改的,所以就他在sleep前写会出现别的线程还没有处理完的情况,就会出错。
      3.忘记使用UTF-8了,僵硬。
      对方的bug:renamed和path-changed在文件很多的情况,会出现检测不到的bug。

    第七次作业

    类图

    • 值得注意的地方是,有三种线程同时与queue有关:
      user类实时跟新queue种的请求;
      controller类通过请求来更新queue中taxi类的状态;
      taxi类通过queue来调整自己的状态。

    度量图

    • 这一次较上两次有了进步,不过嵌套还是太多,说明写的还是太过于冗长了,还要继续改进。

    时序图

    分析

    • 第七次作业写的是出租车调度系统,这一次主要练习的是设计,也就是将出租车,调度器,请求对象给分好,设计好他们之间的关系然后再写,这样写会好很多。
    • 公测与互测
      自己的bug:
      1.读取的地图没有忽略空格。
      2.没有按照设计的标准中的准我原则与接口设计。
      对方的bug:无。

    心得体会

    • 不足:
      在设计过程中细节考虑的还是不够到位,还需要在未来的设计之中多花时间思考细节。
      代码编写的还不够简介,以后要多在编码技巧上花功夫,来提高自己的写代码能力
    • 继续保持:
      对于功能的测试自己还算测的比较多,所以功能性的bug基本没有。
      在作业时间的把握上也还行,基本没有肝过,把写作业的时间分散到了平时。
      这两点还要再未来继续保持下去。
  • 相关阅读:
    Rust 包管理器 Cargo 入门
    如何设置对企业批量的图文档加密?2021企业首选公司文档加密方案,宁波风奥金甲数据防泄漏
    跟坚哥学QUIC系列:加密和传输握手
    如何在SQLServer中处理每天四亿三千万记录的
    高德最佳实践:Serverless 规模化落地有哪些价值?
    浅谈 Pull Request 与 Change Request 研发协作模式
    Dbeaver连接国产数据库人大金仓
    我对云原生软件架构的观察与思考
    Java Web整合开发(20) -- Hibernate入门
    2 修改与恢复
  • 原文地址:https://www.cnblogs.com/reynolds/p/8977897.html
Copyright © 2011-2022 走看看