面向对象设计与构造2022 (北京航空航天大学 - 计算机学院)

  • Re:BUAA_OO_第二单元总结与反思

    分析自己的bug时,只说这是个低级的bug,虽然这个问题也许很小,不过最好还是引起重视并用代码举例进行论述。
    BUAA-Dreamer  2022-05-10 18:07
  • Re:面向对象第二单元总结回顾

    作者的图画的确实很精美,尤其是对于测试用例的解释的类似漫画的图,事实上对于电梯这样的作业,进行一定程度的可视化确实是不错的思路,不管是设计样例还是最终呈现,在做第二单元工作总结的时候,我也用unity尝试写了一个电梯模拟器:github链接,感兴趣可以看一看。希望作者在之后的一些课程中也能常用类似本
    BUAA-Dreamer  2022-05-10 17:28
  • Re:BUAA-OO-UNIT2-Elevator

    为啥UML图后面unregistered字样,这样的图片作者自己不会感到有点难受吗,本强迫症觉得有点难受。 其次本单元如果能仔细阅读他人代码一定会很有收获,然而作者测试也只是做了随机测试,看得出也没有太认真构造数据,这样显然与互测初衷违背了
    BUAA-Dreamer  2022-05-10 17:18
  • Re:BUAA-OO-第二单元总结

    总的来说写的非常细致全面。 作者提到了checkstyle的规范问题,这里写一点我个人的理解。 其实checkstyle的用途直观来说就是定义一种规范。比如像实参不能直接修改这样的要求,现在你可能改一个int还好,但是假设你哪天传了一个列表,也就是对象指针,那你可能就会对调用处的某种逻辑做了修改但自
    BUAA-Dreamer  2022-05-10 17:15
  • Re:面向对象第二单元总结

    架构整体解释的可以说是很详细了;从类的结构上来看,各个类之间的解耦合与交互也都很清晰,属于是有几分面向对象的真传了(^_^) 调度表这种设计方式明显是基于一个集中的调度器了(毕竟请求不能从调度表中被取出);其实有些同学的自由竞争调度算法是在人进入电梯前都可以保持竞争状态的,当然不同算法各有优劣,加一
    tadshi  2022-05-09 23:06
  • Re:BUAA_OO_第二单元作业

    设计总结的很到位了,两三句话就能读出来整体的设计思路 以及比较好奇这个《剩余调度次数》,既然是自由竞争了,感觉在调度器里面维护一个这种全局值稍显奇怪? 不知道具体是如何实现的 最后其实可以简单说说同步,用的synchronized/volatile/各种锁/阻塞队列都可以说道说道
    tadshi  2022-05-09 22:58
  • Re:面向对象第二单元博客

    CoScheduler这个设计确实很有趣,其实可以画几张图来展开说一说~ 以及从叙述来看感觉你的代码好像使用了状态模式和策略模式的样子,也可以谈一谈的
    tadshi  2022-05-09 22:41
  • Re:BUAA_OO_Unit2总结

    电梯单元确实是bug高发区,而且这单元的bug测试也确实比较费劲,很多时候不写评测机就没有活路;不过还是可以用一些朴素的方式来进行测试的。 多线程的同步问题这个确实是需要经验:总会有你想不到的线程问题从奇怪的地方出现。总而言之:还是要多测试 此外其实可以再详细讨论一下调度器的相关设计;即使是als策
    tadshi  2022-05-09 22:36
  • Re:BUAA OO 2022 第二单元个人总结

    同学啊,这可不兴sleep啊~ 抛开作业的语境不谈,现实的多线程交互场景中sleep对性能的影响非常大。最好还是去使用正常的wait和notify这一套 以及从类图来看DIspatcher略显臃肿,看起来有一些字段和方法可以通过继承等方式来节缩; 以及好像没看到时序图
    tadshi  2022-05-09 22:30
  • Re:【Unit2】电梯调度-作业总结

    其实在很久很久以前是没有评测姫的。卷的人多了,大家就都有了评测姫…… U2单元的评测机确实很难写,不过说实话这门课程一直是支持大家去动手写一些测试的。或许除了数据生成+运行+检验结果正确性这种一看就直到很费劲的路线之外,还有手动构造+运行+对某些特定问题的检验的加点方式?gitlab上其实也能找到往
    tadshi  2022-05-09 22:25
  • Re:OO_Unit2

    gymtql
    Pl4y_w1th_M3  2022-05-09 22:13
  • Re:BUAA_2020面向对象_第二单元总结

    @L_RUA 收到谢谢助教。线程协作没有集中详尽的讨论,非常抱歉。另外,“选择”的目的,是到达目的楼座,之后即可通过纵向电梯到达目的地。这个选择的原则分为三步,首先是检索本楼层是否有可到达目的楼座的横向电梯,然后考虑目的楼层与当前楼层间有没有满足要求的横向电梯,最后考虑反方向上的横向电梯。分解的结果
    tsyhahaha  2022-05-09 14:20
  • Re:OO第二单元总结

    对于架构和锁、同步块的选择和线程之间的协同还需要细化。对于第三次作业 bug 的思考还是很到位的,同时也建议脱离指导书给的基准策略去尝试更多更好写、性能更优的调度。
    L_RUA  2022-05-09 12:07
  • Re:北航oo第二单元博客作业

    最开始提到的给共享对象的方法加锁的方法我个人也觉得是非常好的做法。“比较简单,同时也能够避免线程安全的问题”就非常难得了,性能上大概也没提升的空间了,因为在这个数据量级下是否采用RW锁影响不是大。 同学的博客思考很深入,程序的架构设计的也不错。希望能学有所获。
    春日野草  2022-05-09 11:59
  • Re:BUAA_2020面向对象_第二单元总结

    整体架构还是很清晰的,可以多加入一些对线程协同的思考,也可以考虑用顺序图来进行分析(注意类图、顺序图线程都要加上《Thread》)。动态分解的思路很不错,可以详细讲讲 “某层” 的选择?
    L_RUA  2022-05-09 11:57
  • Re:OO第二单元总结

    从类图的绘制上可以看出同学架构设计能力是很强的。电梯运行时的有限状态机的设计思路很清晰。并且也有通过自动评测来排除自己程序中的错误。能看出同学的工程能力十分出色,之后的单元继续加油!
    春日野草  2022-05-09 11:47
  • Re:BUAA_2022_OO_第二单元总结

    感觉在架构和调度方面还可以再细化一点。然后横向电梯和纵向电梯那部分可以考虑一下做一个移动策略相关的接口或者是继承?这样可能就没有那么扁平了(二单元相比一单元做层次化的设计的空间确实没有那么大)
    L_RUA  2022-05-09 11:46
  • Re:北航20级oo课程第二单元总结

    bug分析为啥要略去啊?就算是自己的程序三次全部AC也可以分析别人出现的bug呀! 至于说优秀代码,由于查重问题的确不方便公布了,不过可以参考学长学姐的优秀博客应该会很有收获(之后的单元也一样)
    春日野草  2022-05-09 11:41
  • Re:OO-2022-Unit2-BeihangSCE

    整体上的架构还是很清晰,可以多一点关于线程协同的思考,详细讲讲换乘的实现等。另外注意在类图和流程图中,线程需要加上《Thread》
    L_RUA  2022-05-09 11:39
  • Re:「BUAA-OO」第二单元总结

    讲的很详细,总的来说很不错(最后一次有个 bug 有点可惜)。另外,顺序图和类图应该给线程加上《Thread》,然后 java 也是支持信号量的,其实没必要像实验那样自己造轮子(博客园的界面美化也可以考虑一下?
    L_RUA  2022-05-09 11:23