现代软件工程 第四章 【结对编程】练习与讨论

4.7.2  性格对合作的影响

人和人不一样,在和别人合作的时候,要注意各人表达观点的方式和思考的方式不尽相同。请看网上关于MBTI的文章,测试并分享各自的MBTI类型,讨论不同性格类型对合作有多大的影响, 在合作的各个阶段应该如何应对。

ISTJ

安静、严肃,通过全面性和可靠性获得成功。实际,有责任感。决定有逻辑性,并一步步地朝着目标前进,不易分心。喜欢将工作、家庭和生活都安排得井井有条。重视传统和忠诚。

ISFJ

安静、友好、有责任感和良知。坚定地致力于完成他们的义务。全面、勤勉、精确,忠诚、体贴,留心和记得他们重视的人的小细节,关心他人的感受。努力把工作和家庭环境营造得有序而温馨。

INFJ

寻求思想、关系、物质等之间的意义和联系。希望了解什么能够激励人,对人有很强的洞察力。有责任心,坚持自己的价值观。对于怎样更好的服务大众有清晰的远景。在对于目标的实现过程中有计划而且果断坚定。

INTJ

在实现自己的想法和达成自己的目标时有创新的想法和非凡的动力。能很快洞察到外界事物间的规律并形成长期的远景计划。一旦决定做一件事就会开始规划并直到完成为止。多疑、独立,对于自己和他人能力和表现的要求都非常高。

ISTP

灵活、忍耐力强,是个安静的观察者直到有问题发生,就会马上行动,找到实用的解决方法。分析事物运作的原理,能从大量的信息中很快的找到关键的症结所在。对于原因和结果感兴趣,用逻辑的方式处理问题,重视效率。

ISFP

安静、友好、敏感、和善。享受当前。喜欢有自己的空间,喜欢能按照自己的时间表工作。对于自己的价值观和自己觉得重要的人非常忠诚,有责任心。不喜欢争论和冲突。不会将自己的观念和价值观强加到别人身上。

INFP

理想主义,对于自己的价值观和自己觉得重要的人非常忠诚。希望外部的生活和自己内心的价值观是统一的。好奇心重,很快能看到事情的可能性,能成为实现想法的催化剂。寻求理解别人和帮助他们实现潜能。适应力强,灵活,善于接受,除非是有悖于自己的价值观的。

INTP

对于自己感兴趣的任何事物都寻求找到合理的解释。喜欢理论性的和抽象的事物,热衷于思考而非社交活动。安静、内向、灵活、适应力强。对于自己感兴趣的领域有超凡的集中精力深度解决问题的能力。多疑,有时会有点挑剔,喜欢分析。

ESTP

灵活、忍耐力强,实际,注重结果。觉得理论和抽象的解释非常无趣。喜欢积极地采取行动解决问题。注重当前,自然不做作,享受和他人在一起的时刻。喜欢物质享受和时尚。学习新事物最有效的方式是通过亲身感受和练习。

ESFP

外向、友好、接受力强。热爱生活、人类和物质上的享受。喜欢和别人一起将事情做成功。在工作中讲究常识和实用性,并使工作显得有趣。灵活、自然不做作,对于新的任何事物都能很快地适应。学习新事物最有效的方式是和他人一起尝试。

ENFP

热情洋溢、富有想象力。认为人生有很多的可能性。能很快地将事情和信息联系起来,然后很自信地根据自己的判断解决问题。总是需要得到别人的认可,也总是准备着给与他人赏识和帮助。灵活、自然不做作,有很强的即兴发挥的能力,言语流畅。

ENTP

反应快、睿智,有激励别人的能力,警觉性强、直言不讳。在解决新的、具有挑战性的问题时机智而有策略。善于找出理论上的可能性,然后再用战略的眼光分析。善于理解别人。不喜欢例行公事,很少会用相同的方法做相同的事情,倾向于一个接一个的发展新的爱好。

ESTJ

实际、现实主义。果断,一旦下决心就会马上行动。善于将项目和人组织起来将事情完成,并尽可能用最有效率的方法得到结果。注重日常的细节。有一套非常清晰的逻辑标准,有系统性地遵循,并希望他人也同样遵循。在实施计划时强而有力。

ESFJ

热心肠、有责任心、合作。希望周边的环境温馨而和谐,并为此果断地执行。喜欢和他人一起精确并及时地完成任务。事无巨细都会保持忠诚。能体察到他人在日常生活中的所需并竭尽全力帮助。希望自己和自己的所为能受到他人的认可和赏识。

ENFJ

热情、为他人着想、易感应、有责任心。非常注重他人的感情、需求和动机。善于发现他人的潜能,并希望能帮助他们实现。能成为个人或群体成长和进步的催化剂。忠诚,对于赞扬和批评都会积极地回应。友善、好社交。在团体中能很好地帮助他人,并有鼓舞他人的领导能力。

ENTJ

坦诚、果断,有天生的领导能力。能很快看到公司/组织程序和政策中的不合理性和低效能性,发展并实施有效和全面的系统来解决问题。善于做长期的计划和目标的设定。通常见多识广,博览群书,喜欢拓广自己的知识面并将此分享给他人。在陈述自己的想法时非常强而有力。

4.7.3  是否需要有代码规范

- 这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。

- 我是个艺术家,手艺人,我有自己的规范和原则。

- 规范不能强求一律,应该允许很多例外。

- 我擅长制定编码规范,你们听我的就好了。

- 规范的代码可以促进团队合作

- 规范的代码可以减少bug处理

- 规范的代码可以降低维护成本

- 规范的代码有助于代码审查

- 养成代码规范的习惯,有助于程序员自身的成长

4.7.4  代码复审的讨论

首先世界级的软件也会因为小小的纰漏而导致世界级的问题。例如我们常常听到的安全漏洞和紧急补丁。其次,软件的开发是一个社会性的活动, 有它的规律。其中一个规律就是“破窗效应”,如果团队成员看到同伴们连一些细小的规范都不遵守,那自己还要严格执行单元测试么?另一个成员看到这个模块连单元测试都没有,那他自己也随意修改算了。这样下去,整个软件的量可想而知。

完全同意邹老师的观点。代码应该复审,规范应该要保持。

4.7.5 阅读别人的代码有多难?

我们经常抱怨阅读别人的代码很难, 我们自己在写代码的时候,是否考虑到如何让代码更易于阅读和维护呢?

  1. 总结文章中主要观点:
  2. 使代码遵从工具
  3. 坚持使用一种命名模式
  4. 使用断言来记录先决条件(preconditions)和后置条件(postconditions)
  5. 别缩写英文单词
  6. C语言标准运行时库的设计不是很优秀。别去效仿它
  7. 别写“聪明”的代码
  8. 理解编程语言特性的设计初衷,使用这些特性去做它们适合完成的工作,而不是它们能做到的工作
  9. 按功能单元划分源码树,而不是按组织结构
时间: 2024-12-15 12:49:37

现代软件工程 第四章 【结对编程】练习与讨论的相关文章

“人向猿进阶”之软件工程第四课——结对编程

黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人

现代软件工程 练习与讨论 第四章 结对编程

4.7.2. 人和人不一样,在和别人合作的时候,要注意各人表达观点的方式和思考的方式不尽相同.请看网上关于MBTI的文章,测试并分享各自的MBTI类型,讨论不同性格类型对合作有多大的影响, 在合作的各个阶段应该如何应对. ISTJ 安静.严肃,通过全面性和可靠性获得成功.实际,有责任感.决定有逻辑性,并一步步地朝着目标前进,不易分心.喜欢将工作.家庭和生活都安排得井井有条.重视传统和忠诚. ISFJ 安静.友好.有责任感和良知.坚定地致力于完成他们的义务.全面.勤勉.精确,忠诚.体贴,留心和记得

现代软件工程 第四章 练习与讨论

4.7.1  结对项目的案例和论文 在现代软件工程教学的过程中,同学们已经总结了不少切身体会.例如: 总结1[i]:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前,一边讨论一般coding,那次才真正的体会到结对真的能够带来效率.一整天的coding是容易走神的事,还好有pair在旁边指导,总是不断在我敲某某变量之前提前告诉我成员变量的名字,数据修改时帮忙检查是否有漏掉的,变量和函数定义的时候一起为其取名字,感觉有点眼花了,就换了个角色,我也开始对他“指指点点”

软件工程第二次作业—结对编程

一. 作业要求 两人组成一队,进行结对编程. 从第一次软件工程作业中选出一人的作业作为这次作业的基础. 设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序.网页程序或者手机程序. 设计的应用程序可以完成加法.减法.乘法.除法运算. 应用程序可以完成真分数的四则运算. 例如:1/2 + 1/3 = 5/6 例如:1/5 + 3/10 = 1/2(而不是5/10) 例如:1'1/3 - 2/3 = 2/3 (是1'1/3而不是4/3,注意:" ' "为1'1/3整数

Python基础教程(第十四章 网络编程)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5538341.html______ Created on Marlowes 本章将会给读者展示一些例子,这些例子会使用多种Python的方法编写一个将网络(比如因特网)作为重要组成部分的程序.Python是一个很强大的网络编程工具,这么说有很多原因,首先,Python内有很多针对常见网络协议的库,在库顶部可以获得抽象层,这样就可以

软件工程(3)结对编程

本次结对编程录制视频时选择完成退票功能,组长负责写代码,我监督并尝试指出写代码过程中出现的问题. 选择退票功能进行结对编程的好处是双方都熟悉抢票部分的代码(而由于其他课程作业耽误了本组开发进度的我并不熟悉组长写的活动部分的代码),退票的逻辑与之类似,适合结对编程. 结对编程的过程中没有遇到太多问题,我真正指出的错误应该只有要将Handler的类加入view里面,其他的感觉更像是组长故意考验我--(隐约觉得如果上周六有时间的话,把组长教我如何写抢票的过程录下来更好--) 个人感觉此次结对编程是非常

软件工程第二次作业—结对编程1

结对编程队员: 马菊瑞 1500802066:https://www.cnblogs.com/mjr15/ 马晓燕 1500802046:https://www.cnblogs.com/MXY1239542491/ coding链接:https://coding.net/u/mjr1500802066/p/project/git/tree/master/ 程序实现各个功能截图: ?四则运算欢迎界面 ?综合练习(1) ?综合练习(2) ?结对编程图片 结对编程心得体会: ?最大的好处就是,两个人在

作业四:结对编程——四则运算

项目名称:结对编程——四则运算(GUI) 同学小伙伴:张富彬 博客园地址:http://www.cnblogs.com/legend07/ GitHub代码地址:https://github.com/8561549/Arithmetic2.0/tree/master/Arithmetic2.0 需求分析: 首先是实现GUI的界面设计,主要有两个窗体,一个窗体进行参数设计,另一个窗体负责显示题目.两个窗体之间实现自由跳转.在参数设置窗口可以获取各个控件中的信息,能对出题窗口的出题情况进行限制,其中

软件工程—第四章

第四章—需求工程 软件需求是决定软件开发是否成功的一个关键性因素,可以划分为业务需求.用户需求.系统需求.功能需求和非功能需求等类型.业务需求包含:业务.客户.特性.价值和优先级.用户需求是从用户的角度描述系统功能需求和非功能需求.功能需求描述系统应该提供的功能和服务.非功能需求还可以分为很多类型.系统需求则详细的描述系统应该做什么. 需求工程的过程包括需求获取.分析.规格说明.验证和管理等.首先,需求获取的是对客户需求的普遍理解,然后对收集到的需求进行提炼.分析和认真审查即需求分析,需求规格说

软件工程第二次作业----结对编程

队员: 旦切措毛  1500802071 博客地址:https://www.cnblogs.com/GDM1108/ 专格吉  1500802070   博客地址:https://www.cnblogs.com/zhuan11248/ Coding地址:https://coding.net/u/zhuan11248/p/Demo/git 程序实现和结果测试的截图 github的提交链接和提交日志截图 结对编程时的照片 结对编程的心得体会 任何人都不是完美的,与其两位程序员各自独立工作相比,结对编