有关于结对编程的一些看法

  结对编程是一个很有意思的形式,我很对这个感兴趣,因为大学的时候就是参加了ACM/ICPC,三个人,一台电脑,去共同解决几个问题。典型的结对编程。

  结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人
称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。   在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员
当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。 --维基百科
结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或同一组测试。与两位程序员各自独立工作相比,结对编程往往只需花费
大约一半的时间就能编写出质量更高的代码。
                                                                  --百度百科

结对编程的特点:

  两个员工坐在一台电脑前面,一个负责编写代码(驾驶员),另一个负责阅读,核对,以及编写测试用例,思考接下来的任务(领航员)。每隔一段时间(可以一小时,或任意时间),两人互换角色。如果项目团队大,可以定期更改结对的组合,让每个人相互之间有接触的机会。结对编程可以说是一种全程参与的代码审查机制了。

 

结对编程的优势很明显:

   1)两个人一起写,代码质量可以得到很大的保证,避免犯很多小错误,细节考虑更全面,代码风格也可以保持一致。而且我相信完全可以提高工作效率,因为当有另外一个人就坐在你身边负责审查你的代码的时候,你是不可能忽略他的。

   2)同时最起码有两个人熟悉这一段代码,这对代码以后的维护,项目的运营都是很有好处的。

   3)当你在另一个开发伙伴身边坐下并一起工作的时候,你总可以从他身上学到一些诀窍和技术。这样,参与的双方都可以快速的学习进步。

   4)两个员工之间当面相互的交流,很直接,很容易碰出火花。很多人看来,程序员似乎是一个很木讷的人,但实际上很多时候,程序员只是觉得跟你没有共同语言,熟称的看不起你的智商(我认为程序员是一个很自傲又很自卑的群体,但这个跟本文没有关系)。但如果跟对方有相应的互动,程序员可以表现的很善谈,很自信。这样,世界上就有多了一对基佬。多美好的事情。

  

但我认为如果执行起来,也存在很大的隐患。

  首先,程序员都习惯了个人的编程,当另一个人出现在你的身边的时候,短时间内可以有很好的交流,但如果整整8小时都这样工作,我不敢保证不会有厌倦或是疲劳。当然,如果对方是女的就另说了。但可惜,学妹程序员太少了,这个方案几乎不可能实现,再说了,有学妹在,对程序员来说什么样的编程方式都是超高效率的啊。

  然后,程序员是一群有很强控制思维的人,这与他们长时间写代码有很大的关系,因为他们习惯了去发号命令,然后让代码表现出他们预期的效果。因为每个人都有自己的思维方式,有自己的编码风格,如果在结对编码过程中,领航员对驾驶员横加干涉,强加自己的思维到对方身上,我觉得这是绝对的灾难性的。当两个伙伴在那里因为一个很细节的问题(函数名的命名,用数组还是使用List,一个函数是定义为私有还是公有)而争论半天的时候,结对编程已经没有任何意义了。

 

  结对编程有很大的好处,但在中国很多公司,几乎大部分公司都没有推广这种模式,说明隐患还是很让主管担忧的。当然,老板不喜欢看着上班的时候两个人坐的那么近不知道在干嘛,特别是两个男的,真是的,我们公司怎么可以这样子呢,老板会觉得这是在浪费时间。

 

我觉得如果结对编程要在实际中运用近来,需要一定的改良。

  首先,还是两个人去实现一段程序这个不变,但不应该强制两人组成伙伴必须整天坐一起进行结对编程。

    1)在前期的代码设计中,两人讨论得到公论,这段代码该怎么实现,定义好数据类型和接口;

    2)然后分配任务,把相应的简单的,清楚的代码分别实现;

    3)最后把最复杂的逻辑,单独拎出来,两个人共同去解决。(在两人要去处理一个比较困难的问题的时候,细节上的差异他们就不会关注了。所以所有吵架都是闲的没事干的人做的)

    4)把程序整合,调试,然后互相review对方实现的代码。

    5)最后,把代码给架构师review,完成。

  在具体的操作中,一个项目组怎么推广这种方式呢,如果你不强制,程序员很可能就根本不理会。我觉得首先得有一人有这个习惯,而且是一个在项目团队中有威信得人(比如架构师),由他开始,跟一个人进行结对编程,然后,由一个有结对编程习惯的人带一个没有该习惯的人进行开发工作。一变二,二变四,四变八,八卦生万物,生生不息。

转载于:https://www.cnblogs.com/silencExplode/p/3745116.html

源码链接: https://pan.quark.cn/s/7b9e1590db2e 在本计划中,我们聚焦于一个基于数字逻辑的药片装瓶系统的构建,这构成了北京邮电大学(北邮)在小学期内向学生提供的一次课程设计课题。该系统致力于模拟实际药品包装的操作流程,借助电子操控和自动化技术达成药片的高效且精准的装瓶目标。以下是对该系统设计所涉及的关键知识领域的详尽阐述: 1. **数字逻辑**:数字逻辑是电子工程领域的核心学科,主要探究如何运用二进制数字进行信息的表征与处理。在此项目中,数字逻辑用于构建和实现系统的控制机制,诸如计数器、编码器、解码器、触发器等,旨在保障药片装瓶过程的精确调控。 2. **硬件电路构建**:系统可能整合微控制器、传感器、执行机构等硬件单元。例如,微控制器作为系统的心脏,负责接收输入信号,处理数据,并指挥执行机构执行药片装填。传感器负责监测药片的数量和瓶装进度,而执行机构如电机则负责实际完成装瓶动作。 3. **计数器**:在药片装瓶的操作过程中,计数器用于追踪已装入瓶子的药片总数,确保达到预设的剂量标准。这可能需要设计同步计数器或异步计数器,以实现精确计数并触发装瓶操作。 4. **编码与解码**:编码器将特定的信息(例如药片种类或剂量)转化为二进制编码,便于硬件设备进行处理;解码器则将这些编码解读为可执行的操作,如切换装瓶路径或启动封盖流程。 5. **触发器**:在系统中,触发器可用于在特定条件达成时启动或中止某个操作,例如当瓶子达到满载时关闭装填机制。 6. **传感器技术**:可能包含重量传感器、光电传感器或机械触碰开关,用于识别瓶子的存在、位置以及药片的数量。这些传感器的精确度直接关联到整个系统的性能水平。 7. **控制算法**...
内容概要:本文针对孤岛微电网在遭受拒绝服务(DoS)攻击下的安全与稳定运行问题,提出了一种基于混合系统理论的弹性二次控制策略,创新性地将动态事件触发机制与DoS攻击防御进行协同设计。该方法在保障微电网电压、频率恢复及有功功率精确均分的同时,有效应对通信链路被恶意阻塞的安全威胁,实现了控制性能与通信资源利用效率的双重优化。通过Simulink仿真平台与Matlab代码实现,验证了所提策略在复杂网络攻击场景下的鲁棒性与有效性,深入分析了系统稳定性条件及攻击容忍边界,为电力信息物理系统(CPS)在面临网络安全挑战时的可靠控制提供了理论依据和技术路径。; 适合群:具备电力系统自动化、分布式控制或网络安全等相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网控制、信息物理系统安全或弹性控制研究的研究生、科研员及工程技术员。; 使用场景及目标:① 提升高比例分布式能源接入背景下孤岛微电网在通信受限与网络攻击耦合场景下的运行可靠性与弹性恢复能力;② 实现低通信开销下的分布式协同控制,优化资源利用并增强系统抗干扰性能;③ 为电力系统中安全-控制联合设计提供可复现的仿真模型与技术方案,推动安全防护从被动响应向主动容忍转变。; 阅读建议:读者应结合文中提供的Matlab代码与Simulink模型开展仿真实验,重点理解动态事件触发机制的设计原理及其与混合系统稳定性分析的融合方法,建议延伸学习DoS攻击建模、弹性控制理论及相关安全性证明技术,以全面掌握该协同设计框架的核心思想与实现细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值