《构建之法》读书笔记(2)
第四章 两人合作
1. “4.3.2 goto
函数最好有单一的出口,为了达到这一目的,可以使用goto。只要有助于程序逻辑的清晰体现,什么方法都可以使用,包括goto。”
问题:在java中goto是否还在使用?
回答:
-
goto语句提供了函数内部的无条件跳转,实现从goto语句跳转到同一函数内某个带标号的语句(无条件转移语句);
-
在结构化程序设计中一般不主张使用goto语句,以免造成程序流程的混乱,使理解和调试程序都产生困难。
-
因此在java中虽然goto作为了保留词,但是java并没有使用goto,而是利用了break和continue作出类似于跳转的效果。
-
break和continue的区别:
break是结束循环。
continue是结束本次循环。
循环是有很多次的,break之后不再循环,continue结束本次循环后,再开始下一次的循环。
因此,goto在java中的存在是不是已经没有意义了?
2. “数据成员
1)数据类型的成员用m_name说明
2)不要使用公共的数据成员,要用inline访问函数,这样可兼顾封装和效率。”
问题:inline是什么?
回答:因为之前对c++没怎么学习,因此看到inline很陌生。因此我去网上查找了资料:
inline:C++关键字,在函数声明或定义中函数返回类型前加上关键字inline,即可以把函数指定为内联函数。关键字inline必须与函数定义放在一起才能使函数成为内联,仅仅将inline放在函数声明前面不起任何作用。inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”。一般的,用户可以阅读函数的声明,但是看不到函数的定义。
例:在min()前加上关键字inline即把min()指定为内联。
inline int min(int first, int secend) {/****/};
第十七章 人,绩效和职业道德
1.在这一章中,出现了好多我以前没有见过的单词缩写,也没有注释,因此,我将这章出现的我不熟悉的词做一个归纳:
1)“也有根据人的性格、认识世界的方法、做决定的方法来分类,例如:MBTI。”
MBTI:迈尔斯布里格斯类型指标(MBTI)表征人的性格,是美国心理学家布里格斯和迈尔斯母女凯恩琳·布里格斯和她的女儿伊莎贝尔·布里格斯·迈尔斯制定的。这个指标以瑞士心理学家荣格划分的8种类型为基础,加以扩展,形成四个维度,即
类型指标介绍 |
||||
维度 |
类型 |
相对应类型英文缩写 |
类 型 |
相对应类型英文缩写 |
① |
外倾 |
E |
内倾 |
I |
② |
感觉 |
S |
直觉 |
N |
③ |
思维 |
T |
情感 |
F |
④ |
判断 |
J |
理解 |
P |
2)“要替他们设置SMART”目标,优先级和检查点,循序渐进的学习计划。”
问题:什么是SMART?
回答:SMART原则(S=Specific、M=Measurable、A=Attainable、R=Relevant、T=Time-bound),实施目标管理不仅是为了利于员工更加明确高效地工作,更是为了管理者将来对员工实施绩效考核提供了考核目标和考核标准,使考核更加科学化、规范化,更能保证考核的公正、公开与公平。
原则解释:
- 绩效指标必须是具体的(Specific)
- 绩效指标必须是可以衡量的(Measurable)
- 绩效指标必须是可以达到的(Attainable)
- 绩效指标是要与其他目标具有一定的相关性(Relevant)
- 绩效指标必须具有明确的截止期限(Time-bound)
3)“人员(people):参照RASCI模型,说清楚谁负责什么,谁不负责什么(说清楚谁不负责更有利于大家放手工作)”
问题:RASCI模型,具体是什么?
回答:RASCI用以明确组织变革过程中的各个角色及其相关责任。 我们知道,变革过程是不可能自发或者自动进行的, 必须有人对其进行作用,促使进程发生变化。 因而,就很有必要对谁做什么,以及促发什么样的变革进行定义和描述。除了RASCI以外,还有RASIC或RACI都是用来描述变革过程中的角色、任务的。
- A(A=Accountable):负责批准与布置任务,具有目标导向,负责确定目标、确定目标牵头者(即R),并评价“R”所承担目标的完成情况。
- R(R=Responsible):负责牵头完成“A”布置的任务与目标,具有结果导向,对“A”布置的任务与目标的结果负全责。所承担任务与目标与其他部门(或岗位)配合时,负责确定需要的配合部门,确定配合部门 的工作内容、工作标准等。“R”负责将其牵头的工作分解给相关的“S”、“C”与“I”。
- S:(S=Support):负责配合“R”完成指标的工作,达到既定的目标。对于同一任务,“R”可指定多个“S”。
- C:(C=Consulted):负责为各个相关的角色提供咨询服务。
- I:(I=Informed):信息的接受者,与任务的关系最为间接。
MSF有8个基本原则::
(1)推动信息共享与沟通(Foster open communications)
(2)为共同的远景而工作(Work toward a shared vision)
(3)充分授权和信任(Empower team members)
(4)各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
(5)重视商业价值(Focus on delivering business value)
(6)保持敏捷,预期变化(Stay agile, expect change)
(7)投资质量(Invest in quality)
(8)学习所有的经验(Learn from all experiences)
2. “17.7萝卜和白菜”
问题:你希望团队里白菜多还是萝卜多?
回答:看了这个小故事,我挺有感触的。虽然自己没有过大项目开发的经验,但也跟同学们做过团队小项目。就我个人而言,我希望团队里白菜多。为什么呢?首先,我作为团队里的一员,我的本职工作就是完成自己的工作,至于帮其他人,那要在我自己的工作完成之后有余力再去帮。至于“萝卜”,虽然第一个完成任务,但他自己的任务做的并不好,而且因为他的设计有缺陷,导致模块非常复杂,“萝卜”只能靠自己来修复bug。因此,在我看来,虽然他为了修复缺陷,工作到最晚,但这是他应该做的。因此,这不能作为他比“白菜”强的理由。
对于我而言,我宁愿我的团队里的人都是脚踏实地、一步一个脚印认认真真按时完成任务的“白菜”,也不要是为了速度不求质量而导致项目后期工作紧张的“萝卜”。不知老师和同学们见解如何?