对“开源,提交补丁”的典型反驳是什么?[关闭]


215

在产品(特别是开源产品)上建议某些功能的危险是,您会得到响应,“为什么不这样做?”。

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

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

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


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

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

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

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

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

Answers:


115

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

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

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

提交补丁怎么办?

好吧,这不是那么容易。去做吧:

  • 您必须知道开源项目中使用的语言。

  • 您必须能够从版本控件中加载源代码,才能对其进行修改。

  • 您必须安装所有构建依赖项的所有正确版本(包括运行时库和构建工具)。

  • 您必须能够编译此源代码,在某些情况下,它不是很明显。尤其是,当一个大型项目需要几个小时来编译并显示482个错误和成千上万的警告时,您可能会很勇敢地寻找这些错误的来源。

  • 您应该非常了解项目的完成方式,使用的编码风格(如果有的话),如何运行单元测试等。如果项目没有完善的文档(开放源代码项目通常就是这种情况) ),这可能真的很难。

  • 您必须使自己适应项目以及积极参与该项目的开发人员的习惯。例如,如果您每天使用.NET Framework 4,但项目使用.NET Framework 2.0,则不能使用LINQ,代码契约或该框架最新版本的其他数千个新功能。

  • 必须接受您的补丁程序(除非您仅自己进行更改,而无意与社区共享)。

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

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


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

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

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

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

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

79

规范的反驳是提交补丁。


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

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

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

1
它不一定必须是一个补丁。提供详细和完善的反馈也很有价值。这一切都是在说,如果您无能为力,不要指望我花时间来满足您的特定需求。
伊万·普赖斯

67

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

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

如果您自己反复提出请求,那么“获取补丁”可能是相对礼貌的轻描淡写,而不是一些不太礼貌的选择。

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

如果您曾经维护过一个拥有大量用户的开源项目,那么您就会知道,与维护者相比,请求数量是维护者的100倍以上,其中许多请求对请求者来说很重要,但将非常困难,或会破坏许多其他用户,或者存在一些其他缺陷,这些缺陷只有对项目和代码库有全局了解才能看到。有时甚至只是判断调用,而要花很多时间来反复地争论每个人。

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

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

也许这不是代码,但是可能有很多分析和文档记录您可以做的用户场景。当我维护GNOME窗口管理器时,很多时候对人们来说,考虑所有用户来分析问题,并真正写下问题的优缺点以及从全局的角度来看应该发生什么,对人们很有帮助。

(相反,通常的做法是开始大肆宣扬,好像他们是唯一重要的用户,并且没有权衡取舍。虽然这很好,而且是一个数据点,但我经常设法保持礼貌甚至最终解决他们的问题。燃烧不会使任何事情更快地发生,只会使情绪混乱,并浪费每个人的时间。


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

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

5
此外,虽然可以或多或少措辞礼貌,如果维护者在他们心中工作积压,他们可能有1件事,他们可以得到自己,每100分的东西,他们采取一个补丁,因为他们会想特征; 然后还有另一类变更,即使其他人做了工作,他们也会拒绝。因此,必须有某种交流的方式:“我会做出改变,但没有自己做的计划。” 这里有些人似乎认为“确定,马上来”是唯一可以接受的答案。但是“对此打补丁”是一个真实的类别。
Havoc P

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

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

43

您收到此响应的原因不在于维护者抽搐,那就是你没有充分相信他们的价值主张的他们对工作功能,为你

最好的应对方法是就您的功能对整个社区的价值进行对话,以查看您是否可以说服他们改变主意。也许他们是对的,他们比您更了解自己的社区需求-但是,再一次,也许不是。

如果该功能仅对您有价值,而对社区却几乎没有价值,那么我会发现金钱是一种很好的动力,而抱怨他们的态度却不是。


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

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

2
坦率地说,说服开发人员的最佳方法是向他展示他的用户群中有多少人希望使用该功能。具有投票功能,论坛主题等的Bugtracker对此非常有用,并且在许多开源项目中使用。
ProdigySim 2011年

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

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

31

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

没有合理的曲解可能会有所不同。试图说服志愿者做他们无意做的事情,这是在浪费您的时间,甚至更糟。

您的选择是:

  • 做出回应所建议的;即实现该功能并将其作为补丁提交。这就是所谓的“回馈”。

  • 寻找愿意为您实现真钱的人。可能是项目本身(例如,作为赞助的回报),与项目相关联的人员,或者是一些随机的“聘用编码员”。

  • 寻找替代产品。


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


我参与了一个长期运行的开源OS项目,最令人讨厌的事情之一是坐在“花生画廊”中的人们,并向您推荐了一些有关“更好”的事情的建议:

  • 不完整,无法理解或彻头彻尾的荒谬,
  • 是没有成功机会的客观想法,
  • 实施需要大量的精力,并且/或者
  • 与项目既定目标背道而驰。

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

当然,对这些人的另一个反应是根本不回应,或者完全不理them他们。


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

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

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

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

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

20

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

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

“我不可能尽你所能尽快做到这一点,这就是为什么我首先要求你帮助我的原因。拜托!”

我认为说“哦,是的,这是我花了很长时间并且非常擅长的事情,它是如此简单,以至于任何人都可以从街上走来做得很好,可以。”


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

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

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

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

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


15

提交补丁的标准答案是:

“我没有所需的技能,经验或时间,所以请您告诉我将啤酒盒运送到可以为我做的那家伙那里”


13

提交全面的测试案例


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

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

11

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

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

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


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

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

10

“谢谢您的回应。”

因为:

  • 在零价格下,需求(对功能的请求)超过供应(可用编码器实现所述功能)。
  • 强加于免费提供的任何东西都缺少IMHO类。
  • 这是FOSS的全部要点:人们自带蔬菜和肉类以增加石汤的营养。如果我什么都不能做,那我应该感谢我能吃得饱,而不要抱怨我的饮食没有改善。

9

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

归根结底,如果您不想让开发人员为您工作,那么您所说的话不会说服他们。


9

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


8

就我个人而言,我会回答“这是一个已知问题,但不幸的是,这不是一个很快就能解决的问题。开发人员正在研究其他问题。目前尚无ETA。”

“提交补丁”响应非常不礼貌,因为它假定了许多情况:

  1. 程序的所有用户都是程序员,或者所有的错误报告者都是程序员。
  2. 所有程序员都知道程序所使用的语言。
  3. 所有程序员都知道任何程序可能遇到的每一种问题。
  4. 所有程序员都有空闲时间来从事开源项目。

即使我们假设“提交补丁”的响应者已经知道了以上所有内容,这仅会使语句听起来像“我X个小时的时间比您要起床的时间多几个数量级。加快并解决问题”。

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


您是说“我宁愿得到答复”而不是“我宁愿不答复”吗?
Andrew Grimm

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

8

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

以下内容基于Apache FOP的Jeremias Maerki 的帖子

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

  • 这是开源的:您可以自己修复。
  • 如果您自己无法解决问题,则可以等到有人有空闲时间并认为实施起来很有趣。
  • 如果那没有发生,您可以找到或雇用某人为您做。

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


6

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

(请注意,我并不是说您在运行此类响应时看到的第一个错误报告。您必须查看总体趋势。如果大多数错误报告都以这种响应结尾,请遵循以下建议。只是少数几个,然后这些是最有可能不符合项目目标的功能请求,或者是非常特定于使用的)

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


3

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

虽然我开玩笑地说(我在一家使用大量OSS的公司工作),但我认为那里是一个事实-如果您想要商业级别的支持,那么您需要使用具有适当支持协议的商业软件,或者找到一个开源软件解决方案,可以为您提供这种级别的支持(通常是通过向某人​​付款来提供支持,但有可能通过您的组织使用或分配开发资源来进行支持)。

“提交补丁”真是令人气愤,但它强调了有关OSS的某些内容,也许应该提醒人们,OSS在每种情况下都不适合每个人,至少在没有确保您有一个坚实的支持框架的情况下(在内部,通过社区付费或通过社区付费)。

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


2

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

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


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


1

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

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


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

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

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

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

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

1

有几种方法可以完成。

  • 专题提案和投票。但这需要时间。

  • 被需要修补程序的公司雇用。显然,这是最好的解决方案,但请准备与制作要升级的开源软件的人合作。

  • 找出为什么不首先实现该功能也很重要。通常,该功能不属于软件项目的范围:团队不希望使用此功能,觉得自己没有必要,或者他们只是认为这不是做某事的好方法。在这种情况下,您应该只是分叉项目并自己进行。

  • 使用可满足您需求的专有软件。

  • 请记住,OOP软件通常会简化集成功能的过程。

  • 在邮件列表,irc或论坛上发牢骚只会激怒程序员,并会给OSS支持者带来弹药。


0

您无话可说会让他做到这一点。毕竟,他为什么要这么做?因为一个用户的愿望?原因还不够好。

但是,如果您可以收集合理数量的用户并给出合理的理由(“我想要它”不是合理的理由。)为什么该功能可能有用,通常对于您和其他许多人,他可能会改变主意。

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


另外,开发人员有足够的功能请求,以使他在本世纪余下的时间里都忙于工作,希望包括您的开发人员,但不希望很快有新功能。
David Thornley

@David Thornley-也是。
Rook

0

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

另外,是的,发布开源背后的想法之一是,任何人和所有人都有权利和责任做出自己的贡献。

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


2
是的,有贡献的权利,但是上次阅读GPL时,它没有提及最终用户做出自己的贡献的责任。那有点牵强,你不觉得吗?
亚伦诺特2011年

0

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

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

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


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

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

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

0

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

如果这是次要的并且确实对项目的预期用户有用,则只需提交错误报告,清楚地​​描述问题,给出重现步骤,指示您使用的是当前的每晚版本,然后就此保留。

看起来可能是一个小的简单更改,可以帮助大量的用户,但实际上,这是一个巨大的痛苦,除了您之外,没人会使用。这是“提交补丁”的最佳情况。

也有可能您遇到了一个臭名昭著的glibc维护者这样的案例,他似乎一心一意地认为他的系统是宇宙,他对规范的解释是神的话,而这一切就是它,无论有多少人会选择其他方式。


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

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

0

我建议创建一个用于在RentACoder / ELance / etc等网站上实现该功能的项目,并将其发布在原始开源项目的论坛上。开源项目中的任何程序员,包括作者,现在都可以从财务上考虑到您的请求。


-1

我实际上报名只是为了回答这个问题。

是否需要蒸煮?当开发人员知道该问题但认为不重要时,通常使用此响应。

我会给你一个活生生的例子。ubuntu放弃了对系统托盘的支持(但是可以通过白色列出一个应用程序来解决),并添加了新的应用程序指示器。诸如jupiter之类的某些应用程序依靠系统托盘支持,因此开发人员向工作人员介绍了workaournd而不是添加应用程序指示器支持,因此我要求开发人员添加应用程序指示器支持,回复为“向我们发送补丁”。在询问他们选择不执行这个原因的时候。有这个

我没有兴趣花时间建立对我永远不会使用的库的支持,这仅仅是因为有很多钱的人通过将我的应用程序功能列入他的Linux发行版而将其列入黑名单,只是因为他可以。

如果这是一个真正的技术问题,我可能会采取行动,但这纯粹是政治手段,所以不,我不这么认为。

不,我将其列入白名单

很公平。开发人员有理由不实施功能,但愿意接受补丁。这并不是很粗鲁和冒犯性的,因此不需要反驳。

底线:规范的反驳将是提交补丁,但如果不能,则无需反驳


-1

为您想要的功能启动赏金。

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


-2

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

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

您可以尝试提供(咳嗽)“捐赠”来解决您的问题,但是我担心,这种习惯如果普遍存在,将会导致行业中真正的诚信严重受损,因为错误修复永远都不会使您获利。 “免费”或商业软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.