Week4-作业1:阅读与博客
第四章、两人合作
1、原文:
在变量面前加上有意义的前缀,程序员就能一眼看出变量的类型及相应的语义。这就是“匈牙利命名法”的用处。还有一些地方不适合用“匈牙利命名法”,比如,在一些强类型的语言(如C#)中,对类型有严格的要求,不同类型的值是不能做运算的,例如C#中,if()语句只能接受bool值的表达式,这样很大程度上就杜绝了上面的问题。在这类语言中, 前缀就不是很必要,匈牙利命名法并不适用。微软的.NET框架就不主张用这样的命名法则。
问题与思考:
既然匈牙利命名法在一定程度上并不适用,那么它出现的意义是什么?
“匈牙利命名法”是由匈牙利程序员Charles Simonyi发明的一种编程语言中对变量进行命名的规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则,保证名字的连贯性是非常重要的。例如:nFoo,szFoo,pFoo,cpFoo分别表示整型变量,字符串型变量,指针型变量和常指针型变量。
可以看出,匈牙利命名法将变量的类型信息从单一地点(声明变量处)复制到了多个地点(使用变量处),这是冗余法。冗余法的成本之一是要维护副本的一致性,这个成本在编写和维护代码的过程中需要改变变量的类型时付出。冗余法的成本之二是占用了额外的空间,一个优秀的书写者会自觉地遵从一个法则:代码最小组织单位的长度以30个自然行以下为宜,如果超过50行就应该重新组织,一个变量的书写空间会给这一法则添加不必要的难度。
但是使用匈牙利命名法的好处是看代码的人知道这里发生了一个整型变量的复制动作,听起来没什么问题,可以安心了。匈牙利命名法有其优点但也有缺点,这就需要在使用中扬长避短,合理应用它。
2、原文:
结对编程不是成与开发者独到的发明,在现实生活中,也存在着类似的搭档关系:越野赛车(驾驶,领航员);驾驶飞机(驾驶,副驾驶),这些任务都有共同点:在高速度中完成任务,任务有较高的技术要求,任务失败的代价很高。
问题与思考:
为什么说结对编程“任务失败的代价很高”?
我们都能明白越野赛车和驾驶飞机时任务失败很可能导致两个合作者的性命安全得到威胁,但是结对编程任务失败的代价以及后果到底是什么呢?在结对编程中的角色分别是:驾驶员(控制键盘输入);领航员(起到领航、提醒的作用)。与之前提到的搭档关系不同的是,在结对编程中这两个角色是可以互换的。在结对过程中,任何一段代码都至少被两双眼睛看过,被两个脑袋思考过,代码被不断地复审,这样使得代码的责任不属于某一个人,而是两个人共同的责任。
因此,结对编程十分忌讳个人英雄主义,它需要的是建立集体拥有代码的意识。所以,如果两人由于配合不当导致代码无法融合,没人负责,就会使编程进度大大下降。并且结对编程的过程也是一个相互督促的过程,这样使得程序员除了技术之外,对心智的要求也比较高。因此,结对成员若是做不到绝对的信任与高强度的配合,就会使结队任务无法进行,并从中还能够看出程序员的“不足”。
第十七章、人,绩效和职业道德
1、原文:
有时候一个企业也会展现出“假团队”的特性:领导非常努力地让员工相信公司非常关心员工;员工也非常努力地让领导相信自己完全领会了公司的大爱。私下里双方都不相信对方说的话,也看不起对方。
问题与思考:
如何使自己的团队不变成“假团队”?如果自己在的团队是一个假团队是该力挽狂澜,还是拂袖而走?
“假团队”是指名义上有团队的组织,但是成员相互掣肘,面和心不和,有人打酱油,这样的团队的效率还不如各人单干的工作组。那么, 如何使自己的团队不变成“假团队”?就应该在这个团队组成的萌芽阶段做好预防措施,在刚刚开始组队时就应该分配好各自的职责,制定好相应的规章制度,从根源上杜绝一切“混子”行为。在团队的磨合阶段,大家应该做到坦诚相对,积极沟通与交流。不要因工作理念或者习惯的不同而产生不满甚至隔阂,这样就不会有成员因为对内冲突而抵触工作。
但是万事都有一个万一,如果自己在的团队变成了一个假团队那么应该怎么做?是该力挽狂澜,还是拂袖而走?首先,我们要清楚自己在这个团队的位置,以及自己对待这个团队的情感是什么。如果你是一个刚刚加入的新成员,那么我认为自己的去留对这个团队影响不大,那么我选择离开。但是如果我是这个团队的老成员,我为了这个团队付出了很多,那么我可能会思考问题的所在,为我们的团队的未来做一个整治以及改变。
2、原文:
有些人把团队成员分为A、B、C这样的等级,并且认为A类员工最优秀,B类员工一般,而且B类员工会把更差的C类员工招入团队,急剧降低团队质量,因此要尽量只保留A类员工。
问题与思考:
为什么B类员工愿意招入C类员工来降低团队质量呢?将员工分类对绩效管理有何作用?
在我看来人类总是愿意与比自己“低”的人作比较,从而来增强自己的自信心。B类员工会把更差的C类员工招入团队,也许是由于自己的能力实在是超不过A类员工,因此想选择C员工作为自己的最低标准。所以,如果一个团队若尽量保留A类员工,就会激发B类员工的自尊心与求胜欲,从而使得团队的工作效率得到大幅度的提升。
一个团队中的每个人都有各自的努力和作用,如何衡量个人在团队中的绩效呢?有的人说根据工作量来算,但是代码虽多,还是要看结合起来在团队中的作用。有人建议按照角色来定位,有人建议根据工作时间来衡量……但是这些都是很片面的,在评定员工绩效时,还是应该从多维的角度思考。因此,虽说员工进行了分类,但并不代表A类员工的绩效就要比B、C类的好,我们还要看每个等级的员工在该等级的贡献与能力的提升。
Week4-作业1:阅读与博客的更多相关文章
- 17秋 软件工程 第六次作业 Beta冲刺 总结博客
题目:团队作业--Beta冲刺 17秋 软件工程 第六次作业 Beta冲刺 总结博客 Beta冲刺过程中各个成员的贡献百分比 世强:15.5% 陈翔:14.5% 树民:12.0% 媛媛:14.0% 港 ...
- Week2-作业1:阅读与博客
Week2-作业1:阅读与博客 第一章 :概论 1. 原文如下: 移山公司程序员阿超的宝贝儿子上了小学二年级,老师让家长每天出30道加减法题目给孩子做.阿超想写一个小程序来做这件事,具体实现可以采用很 ...
- 团队作业1——团队展示&博客作业查重系统
团队展示: 1.队名:六个核桃 2.队员学号: 王婧(201421123065).柯怡芳(201421123067组长).陈艺菡(201421123068). 钱惠(201421123071).尼玛( ...
- 优雅的阅读CSDN博客
CSDN现在似乎不强制登录了2333.但是广告多了也是碍眼的不行...将下列css添加到stylus中就行了. 代码转自xzz的博客. 自己修改了一下,屏蔽了登录弹出框. .article_conte ...
- 团队作业8——敏捷冲刺博客合集(Beta阶段)
第一篇(冲刺前安排):https://www.cnblogs.com/Aragaki-Yui/p/9057951.html 第二篇(冲刺第一天):https://www.cnblogs.com/Ara ...
- week4b:个人博客作业
下面是week4做程序的过程. 1.在做之前先做客户需求,要求使用的使用mul图. 自己第一次听到这个名字,网上查UML为, http://www.cnblogs.com/wangkangluo1/a ...
- [2017BUAA软工]第三次博客作业:案例分析
第三次博客作业:案例分析 1. 调研和评测 1.1 BUG及设计缺陷描述 主要测试博客园在手机端上的使用情况. [BUG 01] 不能后退到上一界面(IOS) 重现步骤:打开博客首页中任意博文,点击博 ...
- 第一次C语言作业:博客随笔
1)你觉得大学和高中有什么差别?具体学习上哪? 大学自主学习较多,锻炼自己独立的品质.在学习上,增加了课程的深度和难度,由更多的活动. 2)我希望大学的师生关系是?阅读上述博客后对师生关系有何感想? ...
- C语言I博客作业02
这个作业属于那个课程 C语言程序设计I 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/CST2019-3/homework/8656 我在这个课程的目标 ...
随机推荐
- HBase数据存取流程
一.HBase的特点是什么 1.HBase一个分布式的基于列式存储或者行式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理. 2.HBase适合存储半结构化或非结构化数据,对于 ...
- 各类分布----二项分布,泊松分布,负二项分布,gamma 分布,高斯分布,学生分布,Z分布
伯努利实验: 如果无穷随机变量序列 是独立同分布(i.i.d.)的,而且每个随机变量 都服从参数为p的伯努利分布,那么随机变量 就形成参数为p的一系列伯努利试验.同样,如果n个随机变量 独立同 ...
- 数据结构与算法之Stack(栈)的应用——in dart
参考教科书上的一个应用例子,用栈来分析一行输入中的括号brackets是否匹配.用stdin读取用户输入,并输出检查结果.exit 退出. 注意这行代码: import 'stack.dart';// ...
- Spring第二天——IOC注解操作与AOP概念
大致内容 spring的bean管理(注解实现) AOP原理 log4j介绍 spring整合web项目的演示 一.spring注解实现bean管理 注解: 代码中一些特殊的标记,使用注解也可以完成一 ...
- JavaScript总结(一)
什么是JavaScript? 首先我们要知道它是什么?JavaScript是一门专门用来对网页进行编程的脚本语言:因为我是学习Java之后再来学习JavaScript的,所以我的第一疑问JavaScr ...
- 查内存命令之free
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao@gmail. ...
- 3-[HTML]-head标签介绍
1.head标签 我们首先来介绍一下head标签的主要内容和作用,文档的头部描述了文档的各种属性和信息,包括文档的标题.编码方式及URL等信息,这些信息大部分是用于提供索引,辩认或其他方面的应用(移动 ...
- Kubernetes学习之路(十三)之Pod控制器--DaemonSet
一.什么是DaemonSet? DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这 ...
- Codeforces Round #511 Div.1 A Div.2 C
嗯切一题走人很开心. gzy-50分比我还惨. 题意:有n个数,去掉尽量少的数使得剩下数的gcd变大. 首先把这n个数都除以gcd,就变成了去掉尽量少的数使得gcd不等于1. 可以枚举一个质数,然后统 ...
- SSIS 控制流和数据流
在SSIS的体系结构中,Package是SSIS的最重要的部分,从本质上来讲,Package是一个有序地执行任务的单元.Package的核心是控制流(Control Flow),用于协调包中所有组件的 ...