你属于开源性格测试六大分类中的哪一类呢

开源贡献者往往充满激情——他们愿意为项目奉献一切,这也自然会囊括相当一部分个性化因素。我们将共同了解贡献者中的几大不同性格类型、他们的目标所在,并如何在追求质朴与追求完美的pull请求之间做好取舍工作。在各类开源性格类型当中,您最认同哪一种呢?比如泛用型、专用型、完美主义者、概念论者、冒险主义者,还是拘泥传统者?

在团队当中工作必然要面临着成员们对于特定议题的争论,这当然并不是什么坏事。不同的意见有助于确保每位成员的思路都能得到讨论,同时确定问题来源并将重点集中在手头任务的核心矛盾身上。

然而,这一切在开源世界中却并没那么简单。开源贡献者往往充满激情——他们愿意为项目奉献一切,这也自然会囊括相当一部分个性化因素。这种情况虽然在其他领域也有出现,但开源贡献者显然更热衷于利用自己工作之余的宝贵时间做点自己真正想做的事。

为开源企业工作则会带来一种更加扭曲的心态组合:从业者需要在工作管理要求与项目前进方向之间找到平衡点。这很可能造就一种极具挑战性的环境,特别是考虑到面对贡献型项目时,企业本身往往并不一定能主导一切。

在今天的文章中,我们将共同了解贡献者中的几大不同性格类型、他们的目标所在,并如何在追求质朴与追求完美的pull请求之间做好取舍工作。虽然很 多朋友可能发现自己身兼多种性格类型的特质,但这些特质往往围绕着一类中心。要实现妥善管理,诀窍在于找出贡献者们的真正目标,并判断其能否与项目方向保 持一致。

1.泛用型 / 专用型

这种特性集中在项目如何在各类状态下正常起效。

泛用型性格的人希望确保项目能够在各项状态下全部正常起效。这往往要求贡献者采取非常广泛的审视角度。任何针对代码的变更通常都会涉及字符串变更与 变量替换、新增抽象层或者将某些功能以插件形式体现——这一切都将使得项目更具定制化特性与泛用能力。尽管这类方式并没有什么问题(事实上,我本人就是典 型的泛用型性格),但这意味着代码的复杂性会显著提高——可能导致编写时间延长且难于符合既定要求。

在另一方面,专用型则专门针对特定用例。这类贡献者往往乐于强调现有代码成果并不需要处理其他某些用例,而且倾向于对变量进行硬编码并利用现有代码 实现目标,而直接忽略其在其他状态下的可用性。专用型性格特别适合完成某种具体的任务,因为其通常能够实现优化程度更高的解决方案。

着眼于这两种思路对注释以及pull请求加以权衡并非易事。我个人的体验是,人们倾向于编写专用型代码,但却提供泛用型注释。人们在评论当中很少会 提到“现有代码太过泛用”,而更多是在抱怨其专用型倾向太强。总结来讲:具体取向要依托于项目的发展预期。泛用型性格的贡献者希望打造出一款瑞士军刀性质 的工具,而专用型性格的贡献者则希望其成为一把手术刀。

2.完美主义者 / 概念论者

这类特性专注项目是否符合标准与实践惯例。面对任何一项任务,在与相关工作团队进行讨论时,对于最终成效的判断都是有所差异的:有些人希望保证其完美符合现有标准,而有些人则认为取中位水平即可,另一部分则乐于通过我们前所未闻的方式加以实现。

其中完美主义者会对语法进行吹毛求疵般的挑剔。他们会强调称,完成任务的唯一途径就是按部就班、严格遵循规则。他们会指出,如果想让项目取得成功, 就必须按照他们的既定思路来推进。说实话,他们的观点通常都是正确的。他们也会深入查看我们的代码,并从中发现性能问题。即使是只需要运行三次的循环,他 们也会提出建议以确保它们能够拥有更快的运行速度。这帮完美主义者希望让代码成果成为一种艺术品。他们热爱优雅、高度优化且符合标准的代码。

在另一方面,概念论者则更关注如何让代码库中的组成部分切实生效。在“保证生效、加以改进、提高速度”这一循环当中,他们始终停留在“保证生效”阶 段,而且对于完美主义者们对于现有方案水平的抱怨之声充耳不闻。当然,这种坚持将能够生效作为最终标准的思维也让概念论者同始终坚持代码艺术化的完美主义 者们爆发出激烈的冲突。

对二者加以平衡本身也很讲究技巧——这取决于概念论者们的具体提议。有时候,时间周期可能是一项非常重要的因素,这意味着代码达不到完美主义者提出 的标准并不一定是坏事。毕竟有时候快速上线显得更加重要。这意味着对概念性代码的验证将成为必然,贡献者并没有时间或者其它资源将其提升到完美的高度。另 外,完美主义者的主张往往令概念论者头痛不已,因为前者对于完善编码规则的坚持在后者看来只是一种强迫症。不过在可读性方面,在绝大多数情况下完美主义者 编写的代码更容易阅读与维护。总结来讲,我们需要考量时间的限制以及现有资源规模,从而考虑如何更好地解决未来可能出现的问题。完美主义者希望自己的刀刃 尽可能锐利、耀眼,而概念论者则乐于利用一切刀具——甚至是某些只是看起来像刀具的东西——完成任务。

3.冒险主义者 / 拘泥传统者

在谈到解决问题时,不少人乐于将其视为尝试新事物的好机会。冒险主义者们就属于这类人。无所畏惧、着眼未来的冒险主义者们总是希望使用最新的技术方 案、最新的语法成果以及最具想象力的文件说明方式。他们希望项目能够持续前进并全程为其护航,不过他们同时亦有着雄心与壮志帮助其超越极限并尝试新鲜手 段。为什么不呢?这才带劲!这些冒险主义者们通常会利用自己闻所未闻的代码库,例如mustardandcheese或者protactinum,外加各 类技术名词。当然,一旦出了问题或者是发现代码库不够成熟,那么我们该让谁来负责?没错,说的就是你们,冒险主义者们!

另一方面,拘泥传统者们则希望坚持使用久经考验且备受信赖的固有技术。这并不是说拘泥传统者一定沉闷无趣,他们只是更乐于利用自己已经掌握的知识获得可预测的结果。他们希望确保一切正常运转,同时使用他们过去一年或者过去数年中已经涉及过的技术方案。

要在二者之间取得平衡,同样难度颇高。最重要的问题在于,我们能够拿出多少时间用于解决由新型库/工具/代码所带来的潜在问题。冒险主义者们通常会 把新鲜技术的引入形容为“双赢”作法。不过拘泥传统者往往对此抱有审慎的态度。总结来讲:大家是否有时间学习这些新型技术?团队中的其他成员是否认同这种 冒险?由此带来的收益是否确实高于相关学习曲线?冒险主义者们希望使用没人用过的钼钢合金刀片,而拘泥传统者则坚持使用传统材料制成的老牌刀具。

总结陈词

这篇文章的主旨当然不是要挑起群众内部矛盾,或者是把技术从业者硬性分类,显然也不是要告诉大家该如何看待上述各种性格的贡献者。我们只是想探讨代 码编写环境下各位工作成员的常见心态类型。其实这种状况在非代码编写环境下也很常见。各位不妨将上述分类看作一种工具,并利用它通过特定贡献者提供的注释 与代码来判断他们属于哪种性格类别。

当然,我们不可能永远只具备其中的某一项特质。其中总是会有一定程度的交集,而这交集往往取决于他们当前正在从事的项目、手头的可支配时间、以及对 技术的理解水平的变化。就个人而言,我认为自己是个相当极端的泛用型/完美主义者,并在冒险与传统方面采取中立态度。了解这些特质能够帮助大家了解别人如 何看待我们的代码与注释,同意利用这些素材判断其他人的取向。

在开源世界当中,这些特质往往表现得更加夸张。当人们把自己的时间与精力投入到开源项目当中,每个人都在真心付出并希望自己的声音能够得到尊重。所 以,在下一次编写评论或者注释时,请尝试从这些性格特征出发理解为什么现有成果会表现出这种状态。立足于完美主义角度者打倒概念论者毫无意见,提出各类冒 险型建议也会让传统型贡献者无所适从——总而言之,在不同观点间寻求平衡点才是明智之举。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-12-27 17:34:40

你属于开源性格测试六大分类中的哪一类呢的相关文章

婚恋交友网站eHarmony通过性格测试来进行婚恋匹配

[编者按]作为美国最大的婚恋交友网站之一的eHarmony通过性格测试来进行婚恋匹配,所有加入eHarmony的用户,必须首先回答由心理学家精心设计的数百个问题,eHarmony借此了解用户个性的数十个维度,并基于此给用户介绍合适的交往对象.随着OpenStack.Hadoop.Spark.Docker等技术的发展,公司CTO Thod Nguyen表示他们正在积极拥抱这些技术. 以下为译文: 这计划开始于2013年,预计在2015年底结束,Nguyen在最近的一次采访中告诉我.eHarmony

2014非常好用的开源Android测试工具

当前有很大的趋势是转向移动应用平台,Android 是最广泛使用的移动操作系统,2014 年大约占 80% 以上的市场.在开发 Android 应用的时候要进行测试,现在市场上有大量的测试工具. 本文主要是展示一系列的开源 Android 测试工具.每个工具都会有相应的简短介绍,还有一些相关的资源.Android 测试工具列表是按照字母来排序的,最后还会介绍几个不是特别活跃的 Android 测试相关的开源项目. 本文提到的开源 Android 软件测试工具包括:Android Test Kit

垂直化开发模式在支付宝无线测试平台建设中的实践

摘要:支付宝无线统一测试平台承载着整个支付宝无线应用研发的质量控制体系,提供字节码测试.monkey测试.遍历测试.UI自动化测试.适配测试.设备管理.真机访问.性能监测.安全扫描等. 一.引言 无线应用的浪潮已经掀起,无线测试质量保障体系的建立步伐步步紧逼,在这样的背景下,支付宝无线统一测试平台应运而生,结合支付宝无线应用的特性,定制开发一套统一无线测试平台迫在眉睫,本平台主要涵盖monkey测试.遍历测试.UI自动化测试.适配测试.设备管理.真机访问.性能监测.安全扫描等,研发团队采取垂直化

junit 如何测试一个方法中的每行代码是否都被执行过?

问题描述 junit 如何测试一个方法中的每行代码是否都被执行过? 如题 测试一个方法中的每行代码是否都被执行过?是否有多余的代码? 解决方案 要知道一个代码块里面的代码是否被执行过,其实可以在该代码块最后加个输出语句即可,如果输出语句有执行,那么 前面的代码必然有执行. 但执行效果不一定是你的预期效果罢了(因为代码不一定是符合你的设计需求的) 解决方案二: 是否有多余的代码? 这个应该有代码校验工具. 解决方案三: 你这说的是白盒测试中的覆盖率测试,如果代码中有分支语句,需要编写多个测试用例才

开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)

       关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图.这里是最近学习CoffeeScript的练习版.      CoffeeScript是一门简洁的,构架于JavaScript之上的预处理器语言,可以静态编译成JavaScript,语法主要受ruby和python影响,目前已经为众多rails和node项目采用.CoffeeScript不是JavaScript的超集,也不是

技术-文本分类中怎样实现文件夹中文件的分词问题

问题描述 文本分类中怎样实现文件夹中文件的分词问题 您好.我最近在做文本分类的有关内容,但是遇到了一些问题.我想向您请教一个技术问题.怎样将文件夹中的文件循环分词,还是只能一个一个分词呢?谢谢! 解决方案 你说的循环分词是什么意思啊?如果是想实现对文件夹下所有文本进行分词,可以写个for循环,每个打开一篇文本然后对该文本进行分词.你只要将对应文件夹下面的文件名保存下来就可以实现了.如果用python就用os.listdir()实现.

tf*idf 用于文本分类中的特征提取

tf*idf tf*idf,term frequency * inverse document frequency,词频 *逆向文档频率. 1.思想 TF-IDF是一种统计方法,用于评估某个词语在文档集合中的重要程度. 如果某个词语term在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为这个词语具有很好的文档分类能力. 2.公式 tfij=termi在docj中的出现频次docj中的总词数,表示词语i在文档j中的频率. idfi=lg(文档总数包含词语i的文档数),含有词语i的文档

《移动App测试的22条军规》——第23章,第15节测试微信App中集成和调用第三方App

23.15 测试微信App中集成和调用第三方App微信App中集成了不少第三方的App和服务,例如"钱包"页面的各项功能(如图23.37所示). 微信App中还有不少集成得比较深入的第三方App和服务. (1)在聊天界面中,用户可以分享地理位置信息.这个功能就集成了腾讯地图的相关功能(如图23.38所示). (2)微信App的分享照片功能不仅集成了Android操作系统图库的相关功能,还集成了相机的功能(如图23.39所示). 微信App的分享照片功能集成了Android操作系统图库和

2014 非常好用的开源 Android 测试工具

当前有很大的趋势是转向移动应用平台,Android 是最广泛使用的移动操作系统,2014 年大约占 80% 以上的市场.在开发 Android 应用的时候要进行测试,现在市场上有大量的测试工具. 本文主要是展示一系列的开源 Android 测试工具.每个工具都会有相应的简短介绍,还有一些相关的资源.Android 测试工具列表是按照字母来排序的,最后还会介绍几个不是特别活跃的 Android 测试相关的开源项目. 本文提到的开源 Android 软件测试工具包括:Android Test Kit