![]() |
1
10
我只是实话实说。你不一定要指出每一个错误的细节,但值得举几个例子来说明你将要提出的一般观点。你可能想记下其他例子, 不要 在第一个简短的反馈中大声喊出来,以防他们质疑你的推理。 尽量确保反馈完全是关于 代码 而不是那个人。例如:
好:参数验证
不好:你的论点验证到处都是。你扔
即使有了“求求你”,第二个表格也在说 开发商 而不是代码。 当然,在许多情况下,你不必担心如此小心,但如果你认为他们会对此非常敏感,那就值得你付出努力。(仔细阅读你所写的,如果是书面反馈:我不小心在第一个版本中包含了“你”)。 我发现大多数开发人员(不管是否是超级明星)接受“不,我没有实现这个功能,因为它有问题X。”这可能是我的幸运。 |
![]() |
2
6
从另一个角度来看,我鼓励你在他们的鞋子里思考这个问题。我将描述一个“假设”的经验。 要记住的一些事情:
记住这一点,和他们谈谈。教他们。不需要在比赛中大喊大叫或撒尿。记住他们不是故意让你的生活变得困难。 |
![]() |
3
3
我看到你问了很多关于如何处理某些类型的开发人员的问题。这对你来说似乎是一条普通的线。你一直在问如何改变身边的人。如果这对你来说是一个持续的问题,那么也许你就是问题所在。 现在我知道你在问问题来学习如何与你觉得困难的人打交道,这很好,但是,你一直在问(并得到答案)如何改变人们。 在我看来你需要改变。与这些人一起将代码更改为您想要的代码。和他们在一起。不要试图让他们这么做。就这么做,告诉他们你做了什么,为什么,并提出进一步改进的建议,互相学习。发挥彼此的经验和优势。只有我的2美分。 |
![]() |
4
1
如果您已经为项目明确定义了编码标准,请指出需要更改代码以满足这些标准。你所得到的列表似乎是相当合理的反馈(尽管3有很多争议;我只想把真正令人困惑的部分记录下来,因为修复其他三点,希望能减少代码的混乱)。 |
![]() |
5
1
如果这个开发人员在您的存储库中还有其他几个月前的示例,请向他展示一个并询问它在做什么。(几个月后给他看这个)。当他不得不到处寻找变量中的实际内容时,解构每一行代码来找出它在做什么。在那里进行代码审查/配对编程会话。一起重构和重命名,这样他就有希望自己知道为什么这些事情是重要的。 |
![]() |
6
1
坦率地说,我认为这是一个政治问题,而不是编码问题。明确地。。。
那么你就进入了政治的其他影响…
你提出的问题不能单独回答。如果代码是垃圾代码,那么扔掉它并自己正确地执行它。如果有的话 原因 如果你不能做到这一点,那么你需要问问自己,这个地方的好处是否大于负面影响。 干杯, -R |
![]() |
7
1
创建一个程序,然后将其发布给其他开发人员是很困难的。你把你的代码扔给了其他人的开发风格、编码约定等的摆布。 告诉那些开发人员,他们在代码输入后编码做得很差,这是最难做到的事情之一。最好在开始使用代码之前解决您的问题。这可以通过两种方式来实现:维护一个详细的编码标准,要求提交的代码遵守这一标准,维护一个开发路线图,不仅要概述新特性将在何时出现,还要创建依赖项以避免此类事故。 更重要的是,不要批评,否则会引起敌意和更糟糕的代码。也许您可以与开发人员一起创建标准文档。你将能够表达你对标准应该是什么的想法,你将得到他们的意见,而不会引起任何不愉快的感觉。 一定要指出他们代码中的好东西,并且在讨论你给他们安排的弱点时一定要指出它对每个人(包括开发人员)都有好处的原因,不要批评。 祝你好运。 |
![]() |
8
1
我将执行以下操作:
希望这个练习能帮助他更好地融入到文化项目中。 |
![]() |
9
1
我们试图主动解决这些潜在的“问题”:
有了这些正式的“领导”(以及角色的变化),我认为人们对他们所贡献的部分的(建设性的)批评没有那么多问题。 |
![]() |
10
1
是的,尽可能保持反馈的欣赏性、专业性和技术性,用可能的“最坏情况”场景备份您的顾虑,以便这些特性和/或这个特定实现的缺点变得明显。 此外,如果这是关于非常具体的特性/代码,并且对大多数用户没有任何用处,那么就表达您对代码/使用率的关注——表示对增加的代码基复杂性等的关注。 理想情况下,以开放式问题的形式提出您的担忧,即:“尽管如此,我想知道这种方式是否会长期有效,因为……”。这样你就可以鼓励参与者之间进行积极的对话。 邀请您的同事和用户就这些问题发表意见,事实上,询问其他人/贡献者他们对这一添加的看法(从优点和缺点、要求、代码质量方面),如果其他贡献者/用户可以提供更正,请务必声明您愿意重新考虑您当前的职位。敏锐的洞察力。 你基本上是鼓励以这种方式进行非正式的审查,要求你的社区也调查提议的附加内容,以便讨论其优缺点。 所以,无论决定是什么,它都是社区支持的,而不仅仅是你自己做的。 作为原始设计的架构师,您也处于一个很好的位置,可以提供一些架构上的原因,为什么有些东西(还)不适合包含/部署。 如果稳定性、复杂性或代码质量是一个真正的问题,请说明其他贡献如何也必须经过特定的审查过程才能被接受。 您还可以提到特定的代码与当前设计的实际不一致,或者它与当前设计的未来扩展之间的伸缩性可能不太好,同样,您可以强调为什么某些东西被显式遗漏。 如果你真的喜欢这些特性或核心思想,一定要突出这些特性所能带来的出色的附加效果。 如果实施和整合得当 但也要强调,由于许多原因,现有的实现并不真正合适。 如果可以的话,一定要提出具体的改进建议,举例说明如何做得更好,以及应该避免什么,并表达你的希望,这可以在你的项目社区的帮助下重新编写。 理想情况下,提出您实际接受这一贡献的需求,并提及您的需求的背景,实际上您可能会说您自己讨厌其中的一些需求。 最好是,展示和讨论您自己贡献了类似代码(甚至更糟的代码)并且由于您自己的代码而最终面临巨大问题的实例,以便这些策略现在能够防止此类问题的发生。实际上,通过谈论你自己的坏代码,你可以非常主观。 强调您通常很欣赏这种努力本身,并且您愿意提供必要的帮助和指针,以使所讨论的代码具有更好的形状和形式。此外,鼓励今后在社区内适当协调类似的贡献,以避免类似的问题。 总是从特性和功能方面考虑(并提醒贡献者这样做),而不是从代码方面考虑——把它想象成一个彻底的代码审查过程,最终被提交/接受的代码可能与最初的实现几乎没有任何共同之处。 这也是一个很好的可能性,可以给出一些例子,在这些例子中,您自己开发的代码最终大部分都被改写了,因此现在大部分代码都被更好的实现所取代。 类似地,代码总是存在没有活动维护者的问题,因此您可以很容易地建议您对可能最终导致未维护的代码感到担忧,甚至可以询问相应的开发人员是否愿意帮助维护该代码,可能是在单独的分支中。 在同样的意义上,总是要求新代码附带适当的注释、文档和其他更新。换言之,添加新功能或更改现有功能的代码应始终伴随所有相关文档的更新。 最后,如果您马上知道在不久的将来您不能也不会接受任何代码,那么您至少可以邀请开发人员分支或甚至分叉您的项目,可能是在您的存储库中,在您的帮助和指导下,这样您仍然会对使用您的项目表示感谢。 |
![]() |
Big_Chair · 在输入类型有限的编辑文本上向用户提供反馈 7 年前 |