写点什么

直面挑战,如何应对开源社区中的恶意行为

  • 2023-05-30
    北京
  • 本文字数:1523 字

    阅读完需:约 5 分钟

直面挑战,如何应对开源社区中的恶意行为

开源维护者经常遇到的三种恶意行为分别为得寸进尺、人们随意发泄的挫败感和直接的攻击。面对这种行为,厚颜以对和熟视无睹都会导致愤怒和伤感情绪的负面循环。相反,我们应该指出这种行为,并提醒人们,开源意味着协作和配合。


Gina Häußge 在OOP 2023 Digital上谈到了作为开源维护者如何处理发起恶意行为的人。


Gina Häußge 提到,维护者经常会面临三种恶意行为。最常见的一种就是得寸进尺。有不少用户认为,由于你已经给了他们一些东西,所以你亏欠他们得更多,当你没有满足他们的要求时,他们就会变得极具攻击性。


Gina Häußge 说,还有一些人因为某些事情没有按照他们期望的方式进行而发泄挫败感,在这个过程中会变得非常粗暴。


第三种恶意行为是直接进行攻击,主要来自那些觉得自己的权利没有得到满足的人,或者无法处理其挫败感的人,有时候会非常恶毒,Gina Häußge 解释到:


这已经从辱骂升级到了建议直接结束我的生命。


Häußge 提到,面对这些恶意行为,她曾经尝试厚颜以对和熟视无睹。她认为,对这些行为大动干戈是她自己的问题。事实证明,她试图忽视人性和压力反应周期,Häußge 这样解释到:


试图无视这些事情只会让它们在我的脑海里无休无止的盘旋,经常持续好几天,甚至几周的时间,这使得我变得越来越愤怒,或越来越伤感。而这反过来又影响了我的沟通方式,往往只会使事情进一步升级,或造成其他方面的问题。


Häußge 提到,当面对得寸进尺或发泄行为时,她经常提醒人们注意工作中的实际情况。她说,“开源意味着协作和配合,而不是要求”。如果人们希望看到某些东西变成现实,那么就应该帮助完成它,通过代码,或者像文档和缺陷分析这样的东西:


任何不需要我自己做的事情都意味着我会有更多的时间用于编码工作,以解决其他人的问题。


Häußge 说,这不应该只落在维护者身上。我们都可以在看到恶意行为时将其识别出来,并公之于众。她说,我们不应该让维护者不断捍卫自己的底线,或默默忍受虐待。


Häußge 提到,我们也要经常照照镜子,反思自己,确保不要成为攻击者:


在任何时候,都要记住站在别人的角度思考一下。


InfoQ 就针对开源维护者的恶意行为采访了Gina Häußge


InfoQ:据你观察,恶意行为对维护者和 OSS 社区有什么影响?


Gina Häußge:多年来,我和很多 OSS 的维护者都有过交流,大家的普遍共识也反映了我自己的经历:这些经历会毁掉你一整天,毁掉你整整一周,有时会让你怀疑自己为何要继续维护这样一个项目。这肯定会导致维护者的倦怠,从而给整个项目带来风险。这是一种极其痛苦的体验。如果不加以制止,它们会危害整个社区。


InfoQ:你是如何学会应对这种恶意行为的?


Gina Häußge:解决压力反应循环的方法是体育运动。我的办公室里有一个沙袋,即便只运动 30 秒钟,也能让我重新活过来!这向我的大脑发出信号,表明我已经认识到了威胁,并且正在做一些事情来对付它,从而完成压力反应循环。一旦做到这一点,我就再次掌控了局面,可以采取下一步措施了。

如果遇到粗鲁的攻击,我就会明确表示,他们刚刚表现出来的行为是无法容忍的。多年来,这让我得到了很多的道歉,但有时也会导致事态进一步升级。在这种情况下,我会请他们离开,如果迫不得已,我会封掉他们。


InfoQ:在开源项目中,我们可以采取何种措施来应对恶意行为?


Gina Häußge:在开源项目中,有一个普遍的说法,作为维护者,你要脸皮够厚,无视那些讨厌的人。如果你做不到这一点,就根本无法胜任这项工作。


我不同意这种观点。这种恶意行为的不断冲击要么让你崩溃,要么让你变成一个更糟糕的人,而这两者都不应该是维护 OSS 所必须要承受的。请坚守你的底线和项目的行为准则(CoC,code of conduct),并要求得到人道的待遇。


原文链接:

How Open-Source Maintainers Can Deal with Toxic Behavior

2023-05-30 10:542545

评论

发布
暂无评论
发现更多内容

开始思考吧

吴京

学习 思考 思想

为什么需要微服务

穿过生命散发芬芳

微服务 9月月更

【JavaWeb】Filter系列——过滤器有什么用,如何编写?Filter过滤器的设计模式

胖虎不秃头

java; 过滤器 9月月更

阻碍【程序员职业发展】的 5 个“绊脚石”

掘金安东尼

程序员 前端 9月月更

树莓派部署Elasticsearch6集群

程序员欣宸

elasticsearch 9月月更

【C语言】字符函数&字符串函数&内存函数(下)[进阶篇_复习专用]

Dream-Y.ocean

c c++ 9月月更

TCP/IP参考模型

StackOverflow

编程 计算机网络 9月月更

【iOS逆向】某不知名App越狱检测

小陈

iOS逆向

VUE v-for 数据引用

HoneyMoose

【C语言深度剖析】深入理解字符数组和字符串数组

Albert Edison

C语言 9月月更 strlen 字符数组 字符串数组

B-Tree索引

急需上岸的小谢

9月月更

2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”, 并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组分成

福大大架构师每日一题

算法 rust 福大大

Maven——自动化构建工具

胖虎不秃头

Web java; 9月月更

太赞了,使用应用魔方 AppCube,我没有写一行代码就开发出了一款投票微信小程序

wljslmz

微信小程序 低代码开发 AppCube 9月月更

分布式锁有哪些实现方案各自有什么优缺点?

想要飞的猪

分布式锁 redis分布式锁 zookeeper分布式锁

库调多了,都忘了最基础的概念-《单例模式VS状态码》

知识浅谈

volatile 单例模式 9月月更

架构师的十八般武艺:架构边界

agnostic

架构边界

AQS 条件队列机制源码分享

new life

AQS

Spring @PostMapping 能在 URL 中带有参数吗

HoneyMoose

数据治理(十四):Ranger同步Linux用户

Lansonli

数据治理 数据安全 9月月更

如何刻意练习-中秋读书随笔

刘旭东

刻意练习

ATDD的小妙用

Bruce Talk

敏捷开发 随笔 Agile

Lombok、JUnit——开发工具插件

胖虎不秃头

maven java; 9月月更

【Nacos云原生】阅读源码第一步,本地启动Nacos

石臻臻的杂货铺

云原生 nacos 9月月更

AQS 阻塞队列机制源码分享

new life

AQS

Moment.js 如何对时间进行比较获得不同的天数

HoneyMoose

HTTPS TLS 1.2

懒时小窝

https HTTP

在线编码、格式转换

人生如梦

React 在线格式化 在线编码 转码工具

VUE v-for 循环的 2 个使用

HoneyMoose

DevOps实践中的“道法术器”

阿泽🧸

DevOps 9月月更

redis 作为缓存时存在的问题

想要飞的猪

redis 淘汰策略 redis缓存过期

直面挑战,如何应对开源社区中的恶意行为_文化 & 方法_Ben Linders_InfoQ精选文章