开源性格测试的六大类别,你属于哪一类?不同的意见有助于确保讨论每个成员的想法,同时找出问题的根源并聚焦手头任务的核心矛盾。 然而,这一切在开源世界并不是那么简单。开源贡献者往往充满热情——他们愿意为项目倾其所有,自然而然地,其中会涉及相当多的个性化。虽然这种情况在其他领域也有发生,但开源贡献者显然更热衷于利用工作之余的宝贵时间去做自己真正想做的事情。 为一家开源企业工作会带来更加扭曲的心态:从业者需要在工作管理要求和项目前进方向之间找到平衡点。这可能会创造一个非常具有挑战性的环境,尤其是考虑到在贡献项目时,企业本身往往不一定负责所有事情。 在今天的文章中,我们将共同了解贡献者的不同性格类型,他们的目标,以及在pullrequests中如何在追求简单和追求完美之间做出选择。虽然许多朋友可能会发现自己具有不止一种人格类型的特征,但这些特征往往围绕着一个核心群体。管理好它的诀窍是弄清楚贡献者真正想要什么,以及它是否与项目的方向一致。 1。General-purpose/special-purpose 此功能着重于项目在各种状态下如何正常工作。 通用人要保证项目在所有状态下都能正常工作。这通常需要贡献者采取非常广泛的视角。对代码的任何更改通常涉及字符串更改和变量替换、添加抽象层或以插件的形式体现某些功能——所有这些都会使项目更具定制性和通用性。虽然这种做法没有任何问题(事实上,我是典型的通用型人格),但这意味着代码的复杂度会显着增加——这可能会导致编写时间变长,难以满足既定要求。 另一方面,专门用于特定用例。这些贡献者通常乐于强调现有的代码工作不需要处理其他一些用例,并且倾向于硬编码变量并利用现有代码来实现他们的目标,同时简单地忽略它们在其他状态下的可用性。专业人士特别适合特定任务,因为他们通常会带来更优化的解决方案。 基于这两条思路,权衡评论和pullrequests并不容易。我的个人经验是人们倾向于编写专门的代码但提供通用的注释。与其说是评论中的“现有代码过于通用”,不如说是过于专业化。总结一下:具体的定位取决于项目的发展预期。具有通用个性的贡献者希望创造一种感觉像瑞士军刀的工具,而具有特定个性的贡献者希望它成为一把手术刀。2.完美主义者/概念主义者 这种以功能为中心的项目符合标准和实践。面对任何任务,在与相关工作团队讨论时,对最终效果的判断是不同的:有人想确保完美符合现有标准,有人认为中等水平就够了,还有人认为part很高兴以我们以前从未听说过的方式实现它。 其中,完美主义者会挑剔语法。他们会强调,只有按部就班、严格遵守规则,才能把事情做好。他们会指出,如果项目要成功,就必须按照他们既定的思路进行。说实话,他们通常是对的。他们还深入研究我们的代码并发现性能问题。即使对于只需要运行三次的循环,他们也会提出建议以确保它们运行得更快。这些完美主义者希望将代码的结果变成一件艺术品。他们喜欢优雅、高度优化、符合标准的代码。 另一方面,概念主义者更关心让部分代码库工作。在“确保有效、改进、提高速度”的循环中,他们停留在“确保有效”阶段,对完美主义者对当前技术水平的抱怨充耳不闻。当然,这种坚持以有效为终极标准的思维,也引起了始终坚持代码艺术的概念主义者和完美主义者之间的激烈冲突。 平衡两者本身就很棘手——取决于概念主义者的建议。有时,时间段可能是一个非常重要的因素,这意味着代码不符合完美主义者提出的标准并不一定是坏事。毕竟有时候快速上线更重要。这意味着概念验证代码是必需的,贡献者没有时间或其他资源来完善它。另外,完美主义者的主张常常让概念主义者头疼,因为前者对完美编码规则的坚持,在后者看来只是一种强迫症。但是,就可读性而言,完美主义者编写的代码在大多数情况下更易于阅读和维护。综上所述,我们需要考虑时间限制和现有资源规模,从而考虑如何更好地解决未来可能出现的问题。完美主义者希望他的刀片尽可能锋利闪亮,而概念主义者则乐于使用任何刀——即使是看起来像刀的东西——来完成工作。 3。Adventurous/Traditionist 当谈到解决问题时,许多人乐于将其视为尝试新事物的好机会。冒险家属于这一类。无所畏惧、着眼于未来的冒险家总是希望使用最新的技术解决方案、最新的语法成果以及最富想象力的方式来说明文档。他们希望项目一直向前,一路护航,但他们也有志向和野心,帮助它突破极限,尝试新的方法。为什么不?这真让人兴奋!这些冒险家通常使用他们从未听说过的代码库,例如mustardandcheese或protactinum,以及各种技术术语。当然,如果出了问题或者发现代码库不成熟,那我们追究谁的责任呢?是的,你们,冒险家! 另一方面,传统主义者希望坚持使用久经考验且值得信赖的成熟技术。这并不是说传统主义者一定很迟钝,他们只是更愿意使用他们已经知道的东西来获得可预测的结果。他们希望确保一切正常,同时使用他们在过去一年或几年中参与的技术解决方案。 要在两者之间取得平衡也是相当困难的。最重要的问题是我们可以投入多少时间来解决由新型库/工具/代码引起的潜在问题。冒险主义者经常将新技术的引入描述为“双赢”的方法。但传统主义者往往对此持谨慎态度。总结一下:人们有时间学习这些新技术吗?团队的其他成员是否接受风险?收益真的高于相关的学习曲线吗?冒险主义者想使用没有人用过的钼钢合金刀片,而传统主义者则坚持使用由传统材料制成的老式刀具。 结束语 这篇文章的主要目的当然不是挑起群众内部矛盾,或者对技术从业者进行硬性分类,显然也不是告诉大家如何对待上述贡献者各种个性。我们只是想探索在编码环境中工作的人们的常见心态类型。其实这种情况在非代码编写环境中也很常见。您可能希望将上述分类视为一种工具,并使用它来通过他们提供的评论和代码来确定特定贡献者属于哪种性格类别。 当然,我们不能总是只有这些品质中的一种。总会有某种程度的交集,而这种交集往往取决于他们目前从事的项目、可支配的时间以及对技术的理解水平。就个人而言,我认为自己是一个非常极端的通才/完美主义者,在冒险和传统方面是中立的。了解这些品质可以帮助我们了解其他人如何看待我们的代码和评论,并同意使用这些材料来判断其他人的取向。 在开源世界中,这些品质往往更加夸张。当人们将时间和精力投入到开源项目中时,每个人都真正在付出,并希望他们的声音得到尊重。因此,下次您撰写评论或笔记时,请尝试使用这些人格特质来理解现有作品为何如此运作。概念主义者可以接受完美主义者的观点,而传统的贡献者可能会对冒险的建议不知所措——总而言之,在不同观点之间取得平衡是明智的。 原标题:你是哪种开源性格类型?,作者:PeteSavage
