zoukankan      html  css  js  c++  java
  • G4&Sui老师的pair project(197&)

    在做的云里雾里的individual project之后,这次的pair project让我开始找到了一下软件工程的感觉!其中原因除了C#能稍微捯饬明白了,还有就是合作的力量。

    本次结对编程进程:

    10.10~10.15 G4和Sui老师各自下载elevframework,尝试读懂代码

    10.16~10.19 G4和Sui老师经过交流,发现大家都没怎么读懂框架,但是大限将至,继续读代码的同时也要想算法,Sui老师发了一篇博客

    10.20~10.22 G4还苦于代码读不懂,而本班唯一的明白人不知去向,G4想等待明白人归来问之;21号晚,Sui老师开始动手写一个简易版的算法,也就是BUS算法的初级优化版。不管多么简易的算法,能够在着手实践就不简单!怀着对Sui老师的敬佩之情,G4搬着凳子到Sui老师宿舍开始了真正的结对编程。即便是一个简单的算法,在这个框架中实现都要理解了整个框架的工作机制、解决众多的边界问题、细节问题才能成功实现。在李栋大神的帮助下,最终G4和Sui老师用了一晚上的时间搞定了这个算法,虽然只是BUS算法的简单改进,但G4和Sui老师都非常欣喜。不过,既然解决了众多与算法无关的细节问题,G4和Sui老师想可以进一步优化这个算法。G4和Sui老师交流确定下算法后,G4在第二天中午实现了这个算法,运行结果不出意料地更加快了。

    初步算法:

    BUS算法中,StopAtEachFloor方法令电梯在每层都停靠。我们希望电梯在每次运行前,判断一下下一层是否有内部与外部请求,如果没有就停靠到下下层。

    改进算法:

    在初步算法基础上,进阶算法中,电梯在每次运行前会从电梯当前楼层开始,到当前方向顶层依次判断此层是否有请求,发现第一个请求时设置此层设为目的地;若直至当前方向顶层也没有请求,则改变运行方向。同时,改进了电梯初始状态时的行为:初步算法中令电梯初始向上运行,进阶算法中当外部请求发出时,判断请求发出楼层,根据电梯当前楼层设置相应的电梯运行方向。

    合作编程心得:

     

    《移山之道》中,关于结对编程的优点是这样写的:

      (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

      (2)对于开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

      (3)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已被其他人共享。总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。

    在这次pair work中我深切地体会到了前两点:我是个有点懒的人,如果事情有些基本问题搞不清楚我往往感到无从下手,而当别人都开始动手的时候又会有些急躁。但是我对工作很执着,比较完美主义。而partner隋宇豪比较积极主动,勇于实践,但考虑略显不够细致。万事开头难,隋宇豪为我们的结对编程创造了一个良好的开始。当我们的简易算法得以实现后,我并不满足于这个初步的尝试,于是我们共通进行改进、优化。我认为我们两人配合还是很协调的。而结对编程的缺点,如老师在课上所讲,时间安排不如个人灵活、双方需要相互熟悉、磨合的过程、小型项目不需要太多人等。

    程序运行结果:

    passenger1:

    passenger2:

    passenger3:

  • 相关阅读:
    git指令累计
    vue里函数相互调用,包括watch监听事件调用methods里面的函数
    FPGA实战操作(2) -- PCIe总线(例程设计分析)
    FPGA实战操作(2) -- PCIe总线(协议简述)
    干掉Vivado幺蛾子(2)-- 快速替换debug probes
    FPGA基础学习(9) -- 复位设计
    UltraFast设计法实践(1) -- 初始设计检查
    《UltraFast设计法实践》系列目录
    干掉Vivado幺蛾子(1)-- Xilinx Tcl Store
    FPGA基础学习(8) --内部结构之存储单元
  • 原文地址:https://www.cnblogs.com/metalcrash/p/2734810.html
Copyright © 2011-2022 走看看