你是哪种开源性格类型?

还没有读者喜欢这个。
left and right brain

Opensource.com

团队合作自然会促进意见分歧——这是一件好事。 多元化的意见有助于确保所有想法都得到讨论,问题领域得到识别,并且手头任务的重点放在正确的位置。

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

为开源公司工作为这种组合增添了独特的色彩:试图平衡完成管理层要求的驱动力与项目的发展方向。 这可能是一个具有挑战性的环境,特别是当公司作为项目的贡献者而不是所有者时。

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

通才 / 专才

这种特质是关于项目在任何给定情况下的可用性。

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

另一方面,专才一切都与特定的用例有关。 他们经常会说代码不需要处理这些用例,并且经常会在变量中硬编码并将内容添加到现有代码中,而不会使其在其他情况下可用。 专才将专注于做好特定的任务,这样做通常会导致更优化的解决方案。

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

完美主义者 / 概念主义者

这种特质是关于项目如何遵守标准和实践。 承担任何任务并将其交给一群人,您会得到一些人以完美的标准完成任务,另一些人做得一般,还有另一些人以您从未想象过的方式完成任务。

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

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

平衡这种特质也很棘手——这取决于概念主义者提出的建议。 有时时间可能是一个重要因素,并且允许不符合完美主义者标准的代码不一定是坏事。 有时需要快速修复。 有时概念验证代码也是必须的,没有时间和资源使解决方案完美。 完美主义者也会让概念主义者发疯,因为他们坚持完美的编码准则似乎只是碍事。 然而,当涉及到可读性时,99% 的情况下,完美主义者的代码会更容易阅读和维护。 底线:考虑时间限制以及您是否有资源在以后使其变得更好。 完美主义者想要尽可能锋利、笔直的刀刃。 概念主义者并不害怕使用看起来像刀子的东西来完成工作。

冒险主义者 / 传统主义者

当涉及到解决问题时,有些人喜欢将其视为尝试新事物的机会。 冒险主义者就是这样的人。 无所畏惧、具有前瞻性、敢于冒险的冒险主义者始终着眼于使用最新的技术、最新的语法以及您见过的最精美的文档策略。 他们希望项目向前发展并“与时俱进”,但他们也有一种与生俱来的渴望,想要超越界限并尝试新事物。 为什么不呢? 这很时髦! 这些冒险家通常会建议使用您从未听说过的库,例如 mustardandcheese 或 protactinum,所有这些都是以科学的名义。 当然,当一切都出错并且库不成熟时,手指会指向哪里? 没错。 我看着你呢,冒险家。

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

平衡这种特质是,是的,你猜对了:棘手。 这完全取决于您可以花费多少时间让某些东西工作,以及在新的库/工具/代码库中发现新问题时可能清理问题。 冒险主义者通常会告诉你这是一个双赢的局面,不会出错。 那时传统主义者会开始害怕得发抖。 底线:您是否有时间学习新技术? 团队的其他成员呢? 它带来的好处是否超过了最初的学习曲线? 冒险主义者会想要使用以前从未有人用于刀刃的钼钢合金。 传统主义者将坚持使用他们多年来一直在使用的相同材料。

整合在一起

本文不是关于给人们贴标签。 这不是为了确保人们被归类到他们的小框框中并且永远不会从中走出来。 这当然不是关于如何对待人。 这里介绍的是在基于代码的环境中工作的人们的一些常见思维方式。 甚至在非基于代码的环境中也很常见。 它被呈现为一个工具,以便您有望看到争论的另一面,并了解一个人在编写评论和代码时来自哪里。

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

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

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

5 条评论

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

关于每个类别的人们之间的互动以及基于项目的转变的精彩观点。 有时需要扎实的传统主义者审查才能将冒险主义者的一些不切实际的观念拉回来。

(是的,我承认有一些人让我回到现实,为此我感谢项目变更和调整,这些变更和调整带来了更好的最终结果!)

我很高兴你找到了一个你可以认同的特质! 是的,有时与另一端的人成为完全相反的性格可能会非常令人沮丧。 最后,知道如何处理评论通常来自于能够看到对方的观点。 感谢您的评论 ;)

回复 ,作者:Sandra McCann

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

你是直接选择并投票的吗!? 呵呵,那真是个大胆的举动。 好样的! 防范一切意外。 或许通才和完美主义者在这方面很合拍?

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

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

回复 ,作者:psav

Creative Commons License本作品已根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.