曾经在产品上建议某些功能(尤其是开源)的危险是,您会得到“为什么不这样做?”的答复。

这是有效的,您可以自己进行更改,这很酷。但实际上我们知道,随着程序员倾听用户的声音,即使这些用户是其他程序员,产品也确实会不断进步。而且,进行这些更改的有效方法可以包括已经在项目中从事该想法并实施该想法的人。

有一些通用术语用来指代软件开发问题。例如Bikeshedding。是否有一个常用术语基本上可以回答:“是的,我知道我可以改变世界上的几乎任何东西,甚至是封闭源代码。我都可以被录用,然后去编写该代码。但是在这种情况下,我只是在做实际上可能对已经非常适合轻松进行更改的另一个编码器有用的观察,或者只是在一般性地讨论可能性。”

[ps (几天后)-我应该指出,“提交补丁”通常会用幽默的语气来表达,我正在寻求适当的机智回应。]

评论

我希望我可以不止一次投票! (这是来自向几个不同项目提交补丁并被接受的人。您描述的态度简直令人讨厌!)

我想:“我看起来像什么,一只失业的代码猴子?我有命!”不是可以接受的反驳;-)

根据我的经验,“提交补丁”答案通常是在开发人员已经解释了为什么添加该功能不可行之后给出的。

@Steven,取决于您只是想侮辱他人,还是实际让他们做您需要的事情。我认为,如果您要使用后者,那不是最佳策略。

@orokusaki:或D)他们认为该功能的价值不如他们可能要使用的其他功能,并且资源有限。

#1 楼

这很困难:由于用户不直接或间接购买产品,因此她无法要求实现功能。这并不是说您是订购产品的利益相关者或直接客户,甚至不是商业产品的最终用户。

这就是说,“提交补丁”不是有效的答案。 。这不是礼貌。不对即使是开源产品。 “提交补丁”是以下内容的缩写:


“我们不在乎您是否喜欢我们的产品。如果需要,可以对其进行修改,但不要打扰我们满足您的客户要求。“


提交补丁程序怎么样?

好吧,这并不容易。为此:


您必须了解开源项目中使用的语言。
您必须能够从版本控件中加载源代码,以便能够能够对其进行修改。
您必须安装所有构建依赖项的所有正确版本(包括运行时库和构建工具)。
您必须能够编译此源代码,这不是很明显在某些情况下。尤其是,当一个大型项目需要花费几个小时来编译并显示482个错误和成千上万的警告时,您可能会很勇敢地寻找这些错误的来源。
您应该非常了解该项目的完成方式,使用的编码风格是什么(如果有的话),如何运行单元测试等。如果项目没有像样的文档(对于开放源代码项目通常如此),这可能真的很难。
您必须使自己适应该项目以及积极参与该项目的开发人员的习惯。例如,如果您每天使用.NET Framework 4,但是该项目使用.NET Framework 2.0,则不能使用LINQ,代码契约或该框架最新版本的其他成千上万的新功能。
必须接受您的补丁程序(除非您仅自己进行更改,而无意与社区共享)。

如果您打算积极参与该项目,那么您可以做所有这些事情并为之投入时间。另一方面,如果只剩下一个烦人的小错误或一个简单的功能,花费数天,数周或数月的时间来研究该项目,那么几分钟之内完成工作本身就是不合理的,除非您喜欢它。

那么是否存在对“它是开源的,提交补丁程序”的规范反驳?我不这么认为。您要么向那个人解释她不礼貌,要么就停止跟她说话。

评论


这听起来像是由没有维护开源项目经验的人编写的。

– Rein Henrichs
11年4月16日在0:08

@Rein:维护一个开源项目与维护任何其他项目没有什么不同。您有客户。如果您忽略这些客户,他们将停止向您提供宝贵的反馈,他们将前往其他地方寻求解决方案。也许对开源人员来说很好,但是我肯定想知道我是否将完全负责对某个开源软件进行错误修复,因为那会让我三思而后行。

–罗伯特·哈维(Robert Harvey)
2011年4月16日,0:27



@Rein:到目前为止,我已经听到你说过两次,我们不知道我们在说什么。也许您可以启发我们,是吗?

–罗伯特·哈维(Robert Harvey)
2011年4月16日在1:47

@Rein Henrichs:您的前两个评论是“自欺欺人”的攻击。如果两者之间存在差异,请说出它们是什么,而不是说其他​​人什么都不知道。

–安德鲁·格林(Andrew Grimm)
2011年4月16日在7:14

我怀疑这样做的目的是“维护开放源代码项目与维护任何其他项目在听取客户反馈和保持客户信誉方面没有什么不同”。如果是这样,我完全愿意放弃它,但是作为一个已经维护了几个FOSS项目,从几个贡献者到数百个贡献者的人,我发现原始的笼统声明“不正确”。

– Rein Henrichs
2011年4月16日在7:40



#2 楼

规范的反驳是提交补丁。

评论


或者说,更好的是,“我六个月前就已经做了。你们什么时候才能开始审查和提交它?”

–鲍勃·墨菲(Bob Murphy)
2011年4月17日15:09

我通常不喜欢简短的答案,但这确实是唯一可以确保最终得到您想要的结果的方式。他们明确指出了实现目标的最佳方法。为什么还要用任何较小的解决方案呢?

–user8
2011-4-18在8:08



-1开源混蛋答案。没用。 (对不起。)没有规范的“撤退”。最佳响应(假设OP不能仅提交补丁,在这种情况下,我认为这是一个合理的假设)是(1)“我没有能力或资源来生成补丁[并且可能包括链接至此非常问题]“,(2)视而不见,在当前状态下使用工具,或(3)寻找更好的工具。

– JohnL4
2011-6-10 13:39

它不一定必须是一个补丁。提供详细和完善的反馈也很有价值。这一切都是在说,如果您没有任何回报,不要指望我花时间来满足您的特定需求。

–伊文·普莱斯
2012年12月14日的1:48

#3 楼

当开发人员认为他们不会在任何合理的时间范围内做某事时,这是标准的答案,但是它被反复提起。

反复提起它是最不公平的,但是最近提到的人并不知道,只是立即得到“我们正在为此修补程序”。在这种情况下,维护人员已经厌倦了讨论,但用户认为这是一个新主题。无论如何,最有可能的是,如果您立即获得“获取补丁”,则不应该亲自处理它,而可能想要阅读存档和错误跟踪器以获取有关该问题的更多详细信息。

自己反复提出请求,“取补丁”可能是比较礼貌的方式,而不是一些不太礼貌的选择...

然后当然会有一些粗鲁的维护者会说“打补丁”,对任何人都没有任何解释,但是我要说的只是少数。

如果您曾经与很多用户一起维护过一个开源项目,您就会知道请求数量是维护人员无法达到的100倍,其中许多请求对于请求者很重要,但将非常困难,或者会破坏许多其他用户,或者存在一些其他缺陷,这些缺陷只有在全球范围内才能理解项目和代码库。有时甚至只是判断性呼吁,而且要花很多时间来反复争论每个人。

大多数非开源公司根本不会给您访问开发人员的机会,而您只会得到客户支持的沉默对待或有礼貌但虚假的故事。因此,在开放源代码中,至少您可以有一些选择(请人付费编写功能等),尽管开发人员可能很粗鲁,但至少他们给出了直接的答案。我宁愿“不”,也不是通常的“它在我们的路线图上……[2年后]……它仍然在我们的路线图上”,我从许多供应商那里得到的东西……

所以我不认为有任何反驳。也许开源维护者真的很忙,也许是个混蛋,但无论哪种方式,他们都可能工作艰巨,进入“谁有生死话”的辩论并没有任何进展。您可以做的最好的事情就是以某种方式做出贡献,并努力做到富有建设性。

也许这不是代码,但是可能可以进行很多分析和记录用户场景。当我维护GNOME窗口管理器时,很多时候人们去考虑所有用户的全局分析问题,并真正写下问题的优缺点以及从全局的角度来看应该发生什么,这对人们很有帮助。 />
(相反,通常的做法是开始大肆宣传,好像他们是唯一重要的用户一样,没有权衡取舍。尽管这很棒,而且是一个数据点,但我常常保持礼貌甚至最终解决他们的问题...燃烧不会使任何事情更快地发生,只会使情绪混乱,并浪费每个人的时间。

评论


@Aaronaught我到过数百个开源项目,还没有注意到DIY作为默认响应。这是对某些要求的回应。

–浩劫P
2011-4-17的3:29

我要说的是,我想很多时候,维护人员在说“获取补丁”之前至少对主题(或人)有些厌烦,这是有原因的,值得一试。得到了答复。亲爱的,这是我的经验。如果这里的问题是关于没有理由对主题或人员感到厌倦的情况,那么可以肯定的是,“获取补丁”对于维护者来说并不是一件好事。人们会犯错误。我仍然说,我怀疑反驳(或像这样的元讨论)会有所帮助,但有时建设性地参与。

–浩劫P
2011年4月17日在17:06

另外,虽然可以或多或少地礼貌地表述,但如果维护人员的心中有积压的工作,他们可能会有1件事情可以解决,因为他们每100件事情需要打补丁,因为他们想要特征;然后还有另一类更改,即使其他人做了工作,他们也会拒绝。因此,必须有某种沟通的方式“我会做出改变,但没有计划自己做。”这里的某些人似乎认为“当然,马上来”是唯一可以接受的答案。但是“对此打补丁”是一个真实的类别。

–浩劫P
2011年4月17日在17:11

@Aaronaught听起来确实不错。我认为“我们为此打个补丁”通常不会冒犯或粗鲁,但程序员通常并不是情感上最敏感的类型,他们可能会急于通过电子邮件发送邮件,并且语气不能很好地通过文本传递,所以很容易碰到。

–浩劫P
2011年4月18日在14:14

实际上,“我们将为此打补丁”在两个细微但重要的方面有所不同:(1)它不会直接将责任置于用户身上,(2)承认尽管没有被认真考虑,但请求已被认真考虑已实施。尽管最终结果基本上是相同的,但这是一个更为人道的答案。 (不过,显式地添加隐含的内容并没有什么害处……但是我们现在没有足够的资源来完成该隐含操作。)

– Aaronaught
2011年4月18日在14:47

#4 楼

收到此回复的原因不是维护者是混蛋,而是您没有充分说服他们他们为您的功能工作的价值主张。

最好的回应是开始有关您的功能对整个社区的价值的对话,以查看您是否可以说服他们改变主意。也许他们是对的,他们比您更了解自己的社区需求-但是,也许再也没有。

如果该功能仅对您有价值,而对您却毫无价值在社区中,我发现金钱是一种很好的动力,而抱怨他们的态度却并非如此。

评论


当然,也许他们是混蛋。仅此响应不是一个非常准确的指标,因为当问询者是混蛋时,非混蛋也会使用它。

– Rein Henrichs
11年4月16日在0:10

我还想补充一点,在没有钱的情况下,您通常可以以实物形式进行一些工作:帮助分类繁忙的问题队列,在IRC频道中闲逛并提供支持,测试补丁或编写文档。开源项目的资源有限,需要充分利用它们。如果功能对足够多的人来说很重要,或者对足够干/有用的人来说很重要,那么添加功能是可行的。如果您的案子不是前者,则为后者。

– HedgeMage
2011年4月16日在2:38

老实说,说服开发人员的最佳方法是向他展示他的用户群中有多少人想要该功能。具有投票功能,论坛主题等的Bugtracker对此非常有用,并且在许多开源项目中使用。

– ProdigySim
2011年4月16日在6:10

同样,当人们得到RTFM或DAFS作为答案,或SE上为-1时,这是因为发问者没有充分说服回答者他们为他们回答问题的价值主张。我敢肯定,你们中的许多人都可以与这种感觉有关。

– Rein Henrichs
2011-4-16在6:52



@Walter Yep,这就是为什么我建议说服人们“您的功能对于整个社区的价值”。

– Rein Henrichs
11年4月16日在17:39

#5 楼


对“它是开源的,提交补丁”的典型反驳是什么?


没有合理的反驳可能会有所不同。试图说服志愿者去做一些他们无意做的事情会浪费您的时间,甚至更糟。

您可以选择的方法是:


做出回应所建议的;即实施该功能并将其作为补丁提交。这就是所谓的“回馈”。
找到愿意为您实现真钱的功能的人。可能是项目本身(例如,作为赞助的回报),与该项目相关的人员,或者是一些随机的“出租编码员”。
找到替代产品。


如果您在提出“有帮助的”建议时收到了此回复,请考虑如果您穿着他的鞋子,您可能会如何回答。例如,如果您认为该建议不值得/考虑周全/可理解/等,但又没有时间或耐心进行旷日持久的辩论,您将如何回应?


我参与了一个长期运行的开源OS项目,最烦人的事情之一是坐在“花生画廊”中的人们,并向您提供了一些“做得更好”的建议。 ”,即:


是不完整,难以理解或彻头彻尾的荒谬,
是未成功的想法,客观上成功的机会很少,
需要付出大量的努力才能实施和/或
与项目的既定目标背道而驰。

通常最好的应对方法是有针对性地挑战该人以参与项目……并希望他们接受提示...“关闭或关闭”。不幸的是,最烦人的人甚至没有暗示。

当然,对这类人的另一种反应是根本不作出反应,或者完全不理them他们。

评论


“如果您认为该建议不值得/考虑周全/易于理解等,您将如何回应”-正是其他专业人员的回应。 “您能解释一下/给出您想要的例子吗?”或“您能给我一些为什么您认为需要此功能的背景吗?”或“如果我们改为做其他事情,那对您有用吗?”还是“感谢您的建议,我们将在以后的版本中考虑它”。这是基本的人际交往能力,而不是火箭科学。

– Aaronaught
11年4月16日在17:23

@Aaronaught-对不起,但您不明白。典型的开放源代码开发人员没有时间进行礼貌的讨论,但是最终的讨论毫无意义,旨在抚慰其“客户”的自我。即假装关心,当一个半聪明的人知道这全是门面时。坦率地说,我发现这种自以为是的礼貌使人光顾……而且攻势比直言不讳地告诉他们他们没有机会实施XYZ。

– Stephen C
2011-4-17的3:32



@kurige-实际上,如果有问题的人DID提交了补丁,那么他们一定会被考虑。问题在于所讨论的人是“全口无言”的。即不愿付出任何努力。

– Stephen C
2011-04-17 15:11



因为典型的开源开发人员已经有工作了,所以他们做开源开发很有趣。做别人想要你做的就是工作。做您想做的事很有趣。

– ProdigySim
2011年4月17日的17:00

@Aaronaught:是否有必要恭敬地对待许多抽搐的人?在提供公共服务的情况下,会有一些人提出不合理的要求,常常是侮辱性的。与不礼貌的傻瓜打交道可能是一个真正的痛苦。尊重他们的要求会使很多人退出F / OS业务,这对每个人都是损失。

– David Thornley
2011年4月18日在16:23

#6 楼

如果您和有问题的程序员是平等的,并且对于代码库和语言以及与您所指出的与此特定内容相关的所有其他事情了解得差不多,那么响应将是合理的。

您不等于(或者您可能会做到),所以我建议适当的反驳是:

“没有办法可以像您一样快速和出色地做到这一点可以,这就是为什么我要您首先帮我的原因。拜托!“

我相信说“哦,是的,这件事我花了一个时间长了,而且真的很擅长,它是如此简单,以至于任何人都可以从街上走出来,尽我所能做好工作。”

评论


只是那根本不是他们在说什么。他们说:“您想要的东西不是社区想要的东西,因此我们对开发它没有真正的兴趣。如果您想使用它,我们可能会接受补丁。”隐含的意思是“如果社区确实愿意,我们也可能会改变主意。”请记住,“我希望您帮助我”与开源项目的基本本质背道而驰,在开源项目中(要发挥我的《星际迷航》书呆子的全部力量),很多人的利益总是胜过少数人的利益。

– Rein Henrichs
11年4月16日在17:43

好吧,除非从历史上讲,除非那几个人有很多钱。

– Rein Henrichs
11年4月16日在17:45

@Rein,不,他们在说的是他们不想这样做。所有这些“社区想要的”只是一个稻草人。整个问题是,来自社区的一个正在请求它。

–user1249
2011年4月16日在18:22

“如果您事先不知道修补程序(如果有的话),则建议为您的产品考虑编写修补程序,这是极不礼貌的。”同意就像我说的,这就是为什么我不使用此响应的原因。我可以同情它。 “如果您真诚地表示“提交补丁”是为了使人们闭嘴而不是委派工作,那么您同意这是社区成员而不是开发商的要求。”抱歉,我不太确定您在说什么。

– Rein Henrichs
2011年4月16日在18:53

@Thorbjørn啊,是的。好吧,事实上,我所熟悉的开源维护者肯定不会这样。实际上,我们正竭尽所能提供开发人员指南和文档,以帮助人们学习该项目以及为该项目做出贡献的约定,这恰恰是因为我们意识到技能差距。例如,rubini.us / doc / en / contributing

– Rein Henrichs
11年4月16日在18:55



#7 楼

规范的反驳是分叉项目。

评论


或提交补丁

–卡米尔·索特(Kamil Szot)
2011年4月16日在10:46

分叉会为您带来什么好处?

–user1249
11年4月16日在10:55

@Thorbjorn:每个人都可以一次又一次地使用一把好叉子。即使是可惜的叉子。

–user18014
2011年4月17日在7:56

#8 楼

“提交补丁”的规范答案是:


“我没有技能,经验
或所需的时间,所以您可以
告诉我
啤酒箱要运到哪里给我做的人”


#9 楼

提交全面的测试用例。

评论


我喜欢这个,但是这样做通常比提交补丁本身要花更长的时间!这里的常数是熟悉代码库的时间,很可能是创建测试或直接编写补丁的最大部分!

– Newtopian
2011-4-18的3:03

我喜欢这个错误的答案。即使您对框架的了解不足以提交修复程序,它也为这样做的人节省了大量时间。除了模糊不清且无法复制的“错误”(可能只是一个配置错误的系统)之外,没有什么比让我解决问题更容易了。没有什么可以比简单的测试用例更快地解决问题了,因此我可以快速尝试不同的修复程序。

–BobMcGee
16 Mar 8 '16 at 14:02

#10 楼

“如果您这样做,我将包括在内”比“否”要好得多。

如果您由于某种原因而无法完成工作,请私下向项目维护者解释这种情况。 。

如果您不愿意以某种方式为您想要使用的开源项目做出贡献,那么您应该寻求商业支持或其他商业产品。

评论


因此,只有那些直接贡献者才有权投诉错误或缺少功能?我想很好,但这也意味着贡献者和用户都无权抱怨缺乏采用。

– Aaronaught
11年4月16日在17:33

@Aaronaught不,他们有权投诉,但是开发人员可以在一个项目上投资的无偿时间是有限制的,用户必须意识到这一点。在我自己的工作中,对于具有糟糕工作/社区价值主张的功能,我保留“我欢迎补丁/拉取请求”。或者,在用户坚持要立即获得该功能并且不尊重他人时间或其他项目承诺的情况下。

–BobMcGee
16 Mar 8 '16 at 14:06

#11 楼

“感谢您的回应。”

原因:


在零价格下,需求(对功能的请求)超过了供应(可用编码器实现上述功能)。
免费提供的免费食物缺乏IMHO等级。
这是FOSS的全部重点:人们自带蔬菜和肉类以补充石汤营养。如果我什么都做不了,那我应该很感谢我能吃得饱,而不要抱怨自己的饮食没有改善。


#12 楼

你不用说什么开发人员已做出响应的事实足以表明他们已经知道问题的存在,并且至少在某些情况下会对用户造成痛苦。

最后,您所说的没有如果他们不想的话,将说服开发人员为您工作。

#13 楼

一个好的开源项目将具有一个错误/功能请求系统,用户可以在其中提交错误/功能,其他人可以对其进行投票,以便维护人员可以确定对整个社区重要的内容。但是,使功能就位的最快方法是为其提交补丁。时间段...没有办法解决。

#14 楼

我个人希望得到“这是一个已知问题,但不幸的是,这不是一个很快就能解决的问题。开发人员正在研究其他问题。目前没有ETA。”

“提交补丁”响应非常粗鲁,因为它假定了很多情况:


该程序的所有用户都是程序员或所有错误报告者是程序员。
所有程序员都知道程序所使用的语言。
所有程序员都知道任何程序可能遇到的各种问题。
所有程序员都可以自由工作开源项目。

即使我们假设“提交补丁”响应的制作者都知道以上所有内容,这简直只是使该声明听起来像“我的X个小时所花的价值超过数量级”您会花费更多的时间来加快速度并解决问题”。

通常,当我问到我遇到的问题或提交问题时,得到开发人员的粗鲁答复时,错误,我停止使用该程序。例如,我不再使用uTorrent(不是开源的,但重点仍然是),因为我在其“支持”论坛上得到的答复是如此粗鲁。我提交了我在Bug报告论坛中遇到的问题。该线程立即被链接到另一个线程的链接锁定,该链接与某个线程中的相似但不同的问题有关(当然也被锁定了)。同时,我在一般讨论论坛上打开了一个线程,询问是否有人找到解决该问题的方法。在保存该线程并返回来查看我的第一个线程已花费的时间时,我的General线程已被锁定,并且我的论坛帐户因破坏性行为而被禁止。我卸载了uTorrent,此后再也没有回来。

评论


您是说“我宁愿得到”而不是“我宁愿不得到”吗?

–安德鲁·格林(Andrew Grimm)
2011年4月16日在7:09

特别感谢您的第一段。如此令人惊奇的职业礼貌基本形式对这么多人来说是陌生的。无论您是否获得付款,适当的响应都是确认问题并说明其状态(即使状态为“延期”)。

– Aaronaught
2011年4月16日17:28



#15 楼

仅仅回答“提交补丁”是IMO的粗鲁做法,但是...如果您将开源软件用于任何严重的事情,则必须准备好在必要时加以照顾。

以下内容基于Jeremias Maerki(Apache FOP的名声)的帖子:


如果某些内容对您不起作用,则您有几种选择:


这是开源的:您可以自己进行修复。
如果无法自己进行修复,则可以等到有人有空闲时间并认为实施起来很有趣。
如果这样做不可行碰巧,您可以找到或雇用某人为您做这件事。



我认为这是“提交补丁”答案的非常有效的完整版本。 >

#16 楼

每次看到此消息后,我都会立即开始寻找替代产品。对我来说,这是一个危险的信号,表明维护人员要么不在乎他们的用户(如果您的项目在任何地方都被使用,那就不好了),要么对项目失去兴趣。这两种方法通常都意味着该项目很快就会死掉,或者由于开发人员拒绝推进该项目而陷入停滞状态。

(请注意,我并不是说您看到的第一个错误报告您运行这种响应。您必须查看总体趋势。如果大多数错误报告都以这种响应结尾,那么请遵循此建议。如果仅是少数几个,则最有可能是不适合的功能请求a项目目标或非常特定于用途的项目)

正如@MainMa所说,开始为全新项目做出贡献非常困难。大多数开发人员不了解这一点,因为他们已经在该项目上工作了数月/数年,这对他们来说很有意义。有时这可能是一个诚实的错误。

#17 楼

我偶尔开玩笑说,免费软件可以像啤酒一样免费,可以像言论一样免费,也可以像得到您所支付的费用一样免费。

我开玩笑地说(我在一家使用很多OSS),但我认为这是个事实-如果您想要商业级别的支持,那么您需要使用具有适当支持协议的商业软件,或者找到一个可以提供该级别支持的开源软件解决方案(通常通过有报酬提供它的人,但有可能是通过您的组织雇用或分配开发资源来工作的。)

“提交补丁”确实令人发指,但它突显了有关OSS的某些内容,也许应该提醒一下OSS在每种情况下都不适合每个人,至少在没有确保您有一个可靠的支持框架(内部,付费或通过社区)的情况下如此。

我们经常想到的是在啤酒中免费但在语音中免费的软件(即非开放式免费软件)。也许在这种情况下,我们应该像语音软件一样免费地考虑软件,而啤酒则不然。

#18 楼

切换到维护良好的替代方案。

从我对维护良好的开源项目的经验来看,如果您创建定义良好的错误报告或功能请求,那么实现它的可能性就很高。

评论


错误报告和功能请求通常没有很好地定义。我的经验是能力和尊重很好。此外,充其量也应该考虑定义明确的功能请求。它可能被认为是低优先级,或者它可能是项目组明确不想做的事情(PuTTY FAQ中有很好的例子,还有按类别分组的功能请求列表)。

– David Thornley
2011年4月18日在16:06

#19 楼

“我一次只能处理一件事情,但是我可以一次抱怨很多事情。我认为这两个功能都很有用。” -ycombinator上的akka​​rtik。

#20 楼

我认为,当一个人在从事一个项目,提供发布和支持时,开发人员和用户之间就形成了一种默契的,默示的支持合同。开发人员承担了为用户支持代码库的隐含责任,包括根据要求添加功能。

我认为,“提交补丁”基本上是在向用户提供帮助。这是上下文相关的-有时实施起来会花费太多的精力,有时会破坏现有项目或导致费用过高的肌炎,或许多其他原因。但是,最终,它说的是“拧紧您,不要这样做”。在我看来,从某种程度上讲,这是对那份潜规则的违反。

评论


除非双方都得到一些东西,否则这不是合同。项目通常需要的是做得好的错误报告和经常做的很好的功能请求,而不是隐式合同的最后部分。

– David Thornley
11年4月18日在16:09

@Aaronaught:只有提交了足够详细的错误报告,他们才能提供免费测试。我已经看到了很多错误报告。他们可能会或可能不会提供良好的广告。大多数使用F / OSS的人不给任何有用的东西,这很好,但是肯定不是合同的一方。

– David Thornley
2011年4月18日在18:04

@David:您能停止尝试仅将对话限制在最困难/非生产性用户上吗?如果要泛化,那么泛化必须针对整个用户和贡献者群体。向公众发布可以使所有这些人受益。作为回报,您从许多人那里得到好处,但您从许多其他人那里得到了一些问题。那就是生活。

– Aaronaught
2011年4月18日在18:36

@Aaronaught:如果要泛化,我们需要确保适当地泛化。我并不是在试图限制最差的用户,只是指出他们在那里。大部分对话似乎都假设所有用户都是某种程度上的贡献者,而事实并非如此。如果我们只谈论对项目有用的用户,那么只谈论通常礼貌的项目团队成员似乎是公平的。

– David Thornley
2011年4月18日在20:20

@David:显然有一些用户和外部贡献者在提供帮助,也有一些引起问题的。显然,有些开发人员在常识和良好的时间管理技能所允许的范围内是礼貌和专业的,还有一些开发人员出于习惯不礼貌和不专业。这是关于如何与后一组开发人员打交道的问题。 “问题用户”的存在并没有争议,但它是一条红鲱鱼,除了通过制造对抗性局势使讨论脱轨之外,别无他用-因此,让我们不要理会它。

– Aaronaught
2011年4月18日在20:31

#21 楼

有几种方法可以完成。


功能提案和投票。但这需要时间。
被需要补丁的公司雇用。显然,这是最好的解决方案,但准备与要升级开源软件的人合作。
找出为什么不首先实现此功能也很重要。通常,该功能不属于软件项目的范围:团队不希望使用此功能,觉得自己没有必要,或者他们只是认为这不是做某事的好方法。在这种情况下,您应该只创建项目并自己创建。
请使用能够满足您需要的专有软件。
请记住,OOP软件通常可以简化集成功能的过程。
irc或论坛上的邮件列表只会激怒程序员,并给OSS支持者带来弹药。


#22 楼

您无话可说会让他做到这一点。毕竟,他为什么要这么做?因为一个用户的愿望?不够充分的原因。
但是,如果您可以收集合理数量的用户并给出合理的原因(“我想要它”不是合理的原因。)为什么该功能可能有用,一般而言,对于您和其他一些人,他可能会改变主意。

尽管如此,还必须考虑一种特殊情况。一个开发者。厌倦了开发应用程序,慢慢地希望放弃它(还有其他事情要做),因此他正在缓慢地放弃功能请求。除了frm试图说服他发布代码外,在这种情况下,即使对于上述情况,您实际上也无能为力。

评论


另外,开发人员有足够的功能要求,以使他在本世纪余下的时间中忙于工作,想包括您的开发人员,但并不希望很快得到解决。

– David Thornley
2011年4月19日在17:14

@David Thornley-也是。

–浏览
2011年4月19日在18:34

#23 楼

尤其是开源项目,即使新功能并未出现在正式版本中,也很容易获得奖金或为特定功能的开发提供资金。

是的,其中之一公开开源背后的想法是任何人和每个人都有权利和责任做出自己的贡献。

封闭源代码,您最好的资源是从用户群中收集具有统计意义的重要群体,需要像您想要的解决方案。

评论


是的,有贡献的权利,但是上次我阅读GPL时,并没有提及最终用户做出自己的贡献的责任。那有点牵强,你不觉得吗?

– Aaronaught
11年4月16日在17:25

#24 楼

根据我的经验,如果用户请求不符合项目目标,通常会给出此响应。当人们认为您将实现他们向您提出的所有建议,甚至更多的东西时,就会发生这种情况-免费,开源和美好而美好的未来。

“提交补丁”是相对粗鲁的响应(当然应该避免。特别是在这种简洁明了的形式中。有很多方式可以表达大致相同的消息-例如“邀请”用户提供帮助,因为您没有时间自行实施)。但实际上,这是一个明显的“不要浪费我的时间”的指标。因此,您对此无能为力,也没有“规范”的响应。

我能想到的最好的响应是实际呈现一个补丁。假设您的补丁程序有效,您至少已经证明了这个想法并非完全不切实际。通常,这意味着项目负责人将重新考虑该提案。

评论


对于认为不符合项目目标的请求,我不认为任何开发人员都应该回答“提交补丁”。这比粗鲁更不诚实。要么软件变得肿,开发人员讨厌您,要么他不接受补丁并有效地浪费了您的时间。后者更有可能。开发人员确实应该诚实地说“我们不想因为____而改变它”并完成它。

–宫阪丽
11年4月16日在8:35



@Rei Miyasaka:就我个人而言,如果我收到“提交补丁”,做了一个高质量补丁的工作,然后被告知他们无论如何都不想使用该功能,我会很生气。

– David Thornley
2011年4月18日在16:00

@David是啊?我要扔一两个椅子。

–宫阪丽
2011年4月19日,0:57

#25 楼

对于不符合项目目标的想法,“提交补丁”是合法的。从长远来看,最好只是告诉您想法很糟糕,或者您试图将项目用于超出预期范围的事情,但是“嘿,如果您认为您的要求如此琐碎,为什么不这样做?” “您尝试将其适合我们现有的代码库”有时是适当的。

如果它很小,并且确实对项目的预期用户有用,那么只需提交错误报告,清楚地​​描述问题,给出重现步骤,表明您使用的是当前的每晚版本,然后将其保留。

看起来像是一个微小的简单更改,可以帮助大量的用户,实际上可能是一个巨大的变化痛苦的屁股,没有人会用你。这是“提交补丁”的最佳案例。

您还可能遇到了一个臭名昭著的glibc维护者之类的案例,他似乎一心一意地认为自己的系统就是宇宙,他对规格的解释是上帝的话,而这就是全部,而不论有多少人愿意这样做。

评论


我认为没有人会选择问这个问题,如果他们知道更改只会给一个人使用的屁股带来巨大的痛苦。因此,为什么不“提交补丁”,而不是礼貌地简要解释为什么这么大的事情并且不能立即完成。

– Shickadance先生
2011年4月18日在12:15

“提交补丁”确实让人感到糟糕,因为有人可能会提交补丁。它应该保留给低优先级的有品味的人。

– David Thornley
2011年4月18日在16:13

#26 楼

我建议创建一个用于在RentACoder / ELance / etc等网站上实现该功能的项目,并将其发布在原始开源项目的论坛上。现在,开放源代码项目中的任何程序员(包括作者)都有经济动机考虑您的请求。

#27 楼

我实际上只是注册来回答这个问题。
是否需要反驳?
当开发人员知道该问题但认为它不那么重要时,通常会使用此响应。 >我将给您一个生动的例子。 ubuntu放弃了对系统托盘的支持(但可以通过白色列出一个应用程序来解决),并添加了新的应用程序指示器。诸如jupiter之类的某些应用程序依靠系统托盘支持,因此开发人员向工作人员介绍了workaournd而不是添加应用程序指示器支持,因此我要求开发人员添加应用程序指示器支持,回复为“向我们发送补丁”。在询问他们选择不执行这个原因时。就是这样

我没有兴趣花费我的时间建立对我永远不会使用的库的支持,仅仅因为有很多钱的人通过将我的应用程序功能列入他的Linux才能将其列入黑名单分发仅仅是因为他可以。
如果这是一个真正的技术问题,我可能会采取行动,但这纯粹是政治手段,所以不,我不这么认为。
不,我只是将其列入白名单

足够公平。开发人员有理由不实施功能,但愿意接受补丁。
底线:规范的反驳是提交补丁,但如果您不能反驳的话,

#28 楼

开始悬赏您想要的功能。

或者出去购买声称能完全满足您要求的产品,并在发现营销与您的期望不符时滥用他们的支持人员。

#29 楼

我能想到的最好的是“你很烂”。

对不起,这显然不是很有帮助,但是我认为这只是用户完全被搞砸的不幸情况之一。对开发人员的良心残酷诚实的呼吁是最后的努力。

您可以尝试提供(咳嗽)“捐款”以解决您的问题,但我担心,如果这样的做法普遍存在,将会导致严重损害了行业的完整性,因为无论是“免费”还是商业软件,错误修复都决不能赚钱。