你属于哪种开源性格?

目前还没有此类读者。
left and right brain

Opensource.com

团队合作自然会产生不同的意见——这是一件好事。不同的意见有助于确保讨论所有的想法,识别问题区域,并将手头任务的重点放在正确的位置。

然而,在开源世界中,情况略有不同。开源贡献者充满激情——他们经常全力以赴,因此他们的个性通常融入到他们所做的事情中。这种情况在外部世界也会发生,但贡献者往往对他们在来之不易的空闲时间所做的事情更加热情。

为一家开源公司工作会增加其自身的复杂性:试图平衡完成管理层要求的动力与项目的发展方向。这可能是一个具有挑战性的环境,尤其是当公司作为项目的贡献者而不是所有者时。

在本文中,我将探讨贡献者的不同特征、他们的目标,以及在阅读您完美无瑕的拉取请求上的所有评论时如何平衡它们。人们可能具有这些特征的组合,但它们通常以其中一个为中心。诀窍是找出该人的目标,并查看是否与项目的目标一致。

通才/专家

此特征与项目在任何给定情况下的可用性有关。

通才确保项目在每种情况下都可用。这通常伴随着非常广泛的范围。对代码的任何更改通常都会用变量替换字符串,添加抽象层,或将事物变成插件——所有这些都是为了使项目更具可定制性和通用性。虽然这种方法没有错(相信我,我是一个通才),但它通常会导致更复杂的代码,需要更长的时间来编写并且更难做到正确。

另一方面,专家完全专注于特定用例。他们经常声明代码不需要处理这些用例,并且经常硬编码变量并将事物附加到现有代码,而不使其在其他情况下可用。专家将专注于做好特定的任务,并且这样做通常会导致更优化的解决方案。

在考虑评论和拉取请求时,平衡此特征并不容易。我的经验表明,人们通常会写得更具体,评论得更通用。人们很少评论说“这段代码太通用了”,但他们可能会说它太具体了。底线:考虑项目的未来。通才希望该工具成为一把瑞士军刀。专家希望它成为一把手术刀。

完美主义者/概念主义者

此特征与项目遵守标准和实践的方式有关。选择任何任务并将其交给一组人,您会得到一些人将其做到完美的标准,另一些人将其做得中规中矩,还有另一组人以您从未想象过的方式完成它。

完美主义者会对语法吹毛求疵。他们会告诉你这是完成某事的唯一方法。他们会告诉你,如果你想正确地做事,那么你就会按照他们的方式去做。说实话,他们通常是对的。他们也将是那些会查看您的代码并发现性能问题的人。即使你只循环三次(天哪),他们仍然会对如何加快六个周期进行评论。完美主义者希望你的代码成为一件美丽的东西。他们喜欢优雅、高度优化、符合标准的代码。

另一方面,概念主义者更热衷于将一些可以工作的东西放入代码库中。在“让它工作,让它更好,让它更快”的生命周期中,他们完全处于“让它工作”的阶段,并且对使其符合完美主义者的内置 linter 提供的每一项投诉不感兴趣。当然,专注于让某些东西工作而不是让某些东西美观简洁,通常会导致概念主义者抢在完美主义者之前。

平衡此特征也可能很棘手——这取决于概念主义者提出的内容。有时时间可能是一个重要因素,并且允许不符合完美主义者标准的代码不一定是件坏事。有时需要快速修复。有时概念验证代码也是必须的,并且没有时间和资源使解决方案完美。完美主义者也会让概念主义者感到疯狂,因为他们对完美编码指南的坚持似乎只是碍事。但是,就可读性而言,99 次中有 100 次,完美主义者的代码将更容易阅读和维护。底线:考虑时间限制以及您是否有资源稍后使其更好。完美主义者想要尽可能锋利、笔直的刀刃。概念主义者并不害怕使用看起来像刀的东西来完成工作。

冒险家/保守主义者

在解决问题时,有些人喜欢将其作为尝试新事物的机会。冒险家就是那个人。无所畏惧、具有未来思维、激情高涨的冒险家总是希望使用最新的技术、最新的语法以及您见过的最奇特的文档策略。他们希望项目向前发展并“与时俱进”,但他们也有一种内在的愿望,希望超越界限并尝试新事物。为什么不呢?这很时髦!这些冒险家经常会建议使用您从未听说过的库,例如 mustardandcheese 或 protactinum,所有这些都是为了科学。当然,当一切出错并且图书馆不成熟时,手指指向哪里?没错。我看着你呢,冒险家。

另一方面,保守主义者希望坚持经过尝试和信任的强大技术。并不是说他们很无聊,他们只是喜欢使用他们所知道的东西的可预测性。他们想确保它能够工作,并且通过使用他们去年(或前年)使用的相同技术,他们可以保证这一点。

平衡此特征,是的,你猜对了:很棘手。这一切都取决于您可以花费多少时间让某些东西工作,并可能在发现新库/工具/代码库出现新问题时清理问题。冒险家经常会告诉你这是一个双赢的局面,没有任何事情会出错。那时保守主义者会开始害怕地发抖。底线:您是否有时间学习新技术?团队中的其他人呢?它带来的好处是否超过了最初的学习曲线?冒险家希望使用一种从未有人使用过的钼钢合金来制作刀刃。保守主义者将坚持使用他们多年来一直在使用的相同材料。

将它们放在一起

本文不是关于将人们归类。这不是关于确保人们被分类在他们的小盒子中并且永远不会离开它们。当然也不是关于如何对待别人。所呈现的是代码环境中人们常见的思维模式。嘿,即使在非代码环境中也很常见。它被呈现为一种工具,以便您希望可以看到争论的另一面,并了解一个人在编写评论和代码时来自哪里。

一个人永远不会只是这些特征中的一个。他们总是会有一个混合体。这种混合也会根据他们正在从事的项目、他们拥有的时间和他们的理解水平而变化。就我个人而言,我称自己为一个非常严重的通才/完美主义者,具有中等的冒险/保守态度。了解您自己的特征可以帮助您了解其他人如何对您的代码和评论做出反应,以及识别他人的这些特征。

在开源世界中,这些特征通常会更加夸张。当人们将自己的时间和精力投入到项目中时,他们会感到投入并真正想发出自己的声音。因此,下次您在审查或撰写评论时,请尝试站在每种性格类型的角度思考,以了解为什么事情会以他们所写的方式编写。用完美主义者的观点击倒概念主义者,或者总是提出冒险的方式来使保守主义者发疯,这太容易了。保持敏感并平衡所有观点。

User profile image.
Peter 是一位充满激情的开源爱好者,在过去的 10 年里一直在推广和使用开源产品。他曾在许多不同的领域担任志愿者,从 Ubuntu 社区开始,然后转向音频制作领域,后来转向写作。

5 条评论

不确定我是否适合任何一个类别,但阅读了这些描述后,我绝对是一个冒险家(这让周围的一些保守主义者感到沮丧:-))

关于每个类别的人之间的互动以及基于项目的转变的精彩观点。有时需要一个可靠的保守主义者的审查才能引入冒险家的一些超空间概念。

(是的,我承认我经历过几次被打回现实的经历,对此我心存感激,因为项目的修改和调整最终带来了更好的结果!)

我很高兴你找到了一个能引起你共鸣的特质!是的,有时候和另一端的人意见完全相反可能会非常令人沮丧。最终,了解如何处理评论通常来自于能够理解对方的视角。谢谢你的评论;)

回复 ,作者:Sandra McCann

我选择了完美主义者,然后我读了描述。是的,那就是我...糟糕的语法比代码中的错误更糟糕,因为它可能导致错误!:-D 你还可以补充一点,我们喜欢自动化构建和自动化测试,它可以捕获每一个在现实生活中永远不会出现的愚蠢错误 :-D

你是直接选了就投票了吗!?呵呵,那真是大胆的举动。太棒了!要防范每一种可能性。或许泛型主义者和完美主义者在这方面很合得来?

回复 ,作者:Przemo (未验证)

是的,先选再投票。然后我读了文章 :-) 只要他们写的代码干净并且通过验证和测试,我对任何其他开源个性都可以接受 ;-)

回复 ,作者:psav

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.