同事重命名了我所有的查询[关闭]


63

我不知道我是否应该很生气或什么。我单手为大型数据库构建了300多个查询,并制定了命名约定,以便以后找到它们。我办公室里没有其他人甚至不知道如何建立查询,但是昨天我来找他们都被重命名了。我现在很难找到事情,并且试图弄清楚该怎么做。

我和负责人交谈,她只是轻描淡写了整个事情。她说她重命名了它们,以便可以更轻松地找到它们。不幸的是,我是唯一一个知道如何构建,编辑和维护它们的人,而她找到它们的唯一原因就是测试查询。新的命名约定根本没有意义,我觉得我们在开发过程中倒退了一步。

我想找出的是:

1)我反应过度了吗?

2)处理此问题的最佳方法是什么?我不愿意向老板提起这件事,但是在昨天与同事交谈之后,我已经可以告诉她感觉自己做错了什么。


29
即使我们在团队中工作,也存在一个概念,即谁拥有什么,在更改其他人编写的代码之前,应先征得其许可。一旦我做到了(我很say愧地说),我就受到了谴责。当发生在我身上时,我已将其改回,并要求他们不要这样做。
Mike Dunlavey

30
决斗在黎明!...

46
您有备份/ SVN吗?恢复到即将发生变化之前,然后放松。
JYelton 2011年

11
如果有人重命名了我的代码,我将像尚宗一样夺走他们的生命!
Glenn Ferrie

24
如果她有任何孩子,请重命名他们。
马特

Answers:


81
  1. 并非如此-这是一件令人难以置信的事。

  2. 您已经与她交谈过,但我们没有,但似乎您有权利从备份中还原以前的命名约定,或者如果它们在源代码管理中,则将它们还原。如果这样做,请通知您的老板和同事,并提供您的理由(您无法维持自己的工作)。

您想要做的最后一件事是在此问题上来回走动,尽管如此,因为情况似乎很艰难,但要处理它,但至少应记录在案,以防它成为不尊重行为的一部分。


81
顺便说一句,如果她在项目中的角色实际上是“测试员”,那么她绝对无权更改源代码。期。但是,我想补充一点,为防止这种情况,您应该编写一个小文件(项目符号!),阐明命名约定,因为将来您的公司可能会雇用某人与您合作,甚至进行协调您,如果没有正式的约定,则有权更改命名。
布鲁诺·布兰特

1
我同意这个答案。如果您什么都不做,那么您将开创一个可能加剧未来分歧的先例。
JYelton 2011年

2
向她解释您的命名约定的工作原理
GerManson 2011年

13
确保您在访问数据库时不带她编辑数据库的权限...
Ant

1
@Ant:如果OP的例子是完整的故事,我认为这可能有点苛刻。如果还有更多内容(或者他们永远不应该拥有编辑权限),那么您可能是对的。
BCS

117

您为什么不像成年人那样简单地处理它:毫无争议地坐下来,并提出一个命名方案的利弊清单,就其中一项达成共识,并通过撰写简短的描述文件使其正式化。对她的输入引起真正的兴趣,使她感到(并且被)参与。

如果这主要是一个品味问题,并且如果她是绝对必须按照自己的方式做事的那种人,那么只需庆幸您是个大个子,就放手吧。生活太短了,无法举行命名方案的小便大赛。

问题是命名方案还是您觉得自己没有得到尊重?如果是这样,也许您可​​以继续工作。如果您觉得这不值得,那您为什么还要关心她的想法呢?:)另一个选择可能是她真的觉得这没什么大不了的,如果您很好地解释自己在找东西方面遇到麻烦,也许您可​​以改回来。


2
我要说改回来,问她不要这样做,但你的回答更好。
Mike Dunlavey

这是一个不错的地方。
韦恩·莫利纳

20
然后将其更改为新的约定:)

7
@konrad,您忽略了一个关键问题-首先,测试人员既无权也不从事任何形式的编辑工作。@anon是负责编程的程序员,命名约定是他或她正确制定的​​决定,它们不值得委员会投票,更不用说以后不必再调试代码的人的单方面更改了。
Shadur 2011年

36
  1. 数据库设计包括权限(GRANT和REVOKE)。
  2. 测试包括测试权限。
  3. 相对而言,很少有人应该有权重命名数据库对象。
  4. 您的同事不是少数几个。

这是非常好的一点。我想知道为什么测试人员最初甚至可以使用它。
贾斯汀·欧姆斯

因为它是Access。Access中没有GRANT和REVOKE。根本没有任何权限。
Kibbee

7
实际上,Access中有权限,但是我还没有遇到一个了解应该如何使用它们的人(更不用说实现它们了)
Mchl 2011年

1
毫无疑问,这家公司可能甚至没有源代码控制系统,更不用说锁定Access的合格DBA了。顺便说一句,您应该查找它并不是很难。
匿名类型

21

“新的命名约定根本没有任何意义”听起来像是以下情况之一:

  1. 她对他们应用了一些公司准则。这些通常用于确保代码至少一致,并且在最佳情况下可以帮助外围事物(例如小型自定义脚本)轻松找到代码。在这种情况下,您需要了解该规范以及为什么在您的情况下该规范“没有意义”。如果您仍然认为让所有开发人员保持原样是更好做法,请向他们解释为什么您的方法确切地是优越的,并询问您是否可以更改规范(如果他们同意是更好的,也许可以)或在您的情况下放弃它(从长远来看不太可能且凌乱)。
  2. 她当场发明了自己的标准并将其应用。如果她是新手,这更有可能,她应该解释自己的理由。您可能会学到一些东西,并且/或者如果您随后解释自己的理由,她可能会学到一些东西。

重要的一点是,它不是您的(单个)代码,如果它属于整个组并且将被整个组修改的话。对代码的任何批评都不应以编写代码的人为中心。


2
+1好点。其他所有回答的人都假定提问者具有有效的命名方案。如果他/她确实是公司的“信息ho积者”,该怎么办?也许是测试人员实际上正在使公司中的其他所有人(和任何新人)都更容易找到查询。
匿名类型

好点。如果命名方案是好的,那么无论谁提出了它,双方都将能够使用它(一旦他们习惯了)。
BCS

2
@bcs即使在这种情况下,执行此操作的正确方法是先通知程序员,并要求他/她自己更改命名约定,而不是潜入它并等待第二天上班并发现他/她的整个结构受到伤害。
Shadur 2011年

16

我和负责人交谈,她只是轻描淡写了整个事情。


然后,我毫不掩饰地告诉您:

回滚更改。

发动这场战争。您的经理应支持您并巩固您的权威。


同意 首先与她核实,没有充分的理由说明新名称会更好。如果不是,那就把它改回来。
理查德

11
什么时候是“发动这场战争”的好建议?
Sverre Rabbelier 2011年

3
@Sverre Rabbelier:...当n00b尝试安装次优的软件实践时。OP试图与她推理。现在是时候解决问题了。用n00b辩论广告中的恶心是一件毫无用处和浪费的运动。
Jim G.

4
@Jim也许OP是新手?
乔·菲利普斯

3
如果她不是你的老板,那就变回去,不要回头。我并不是说发动工资战,但一定不要让别人像他们拥有这个地方那样行事。项目经理是应该执行编码标准的人。它与授权,经验和秩序以及生产性工作环境无关。
乔纳森·亨森

10

1)不,您没有反应过度。当您问他们为什么时,有人不告诉您就更改了您的工作,并且将其清除了。那是极度不尊重和粗鲁的恕我直言。

2)您是官方DBA,还是至少是该DB的管理员?如果是这样,请改回名称,并写出有关操作方式的约定文档。另外,编写一个“用户指南”样式的文档,这样,如果有人必须进入数据库并找到可以找到的东西。

我会把这个发送给小组,不要用任何手指指着,并提供有益的提示,您很乐意坐下并带领人们逐步了解该结构的某些细微差别。

如果不是,则以团队为单位提出约定,并以团队为单位遵循约定。

附带一提,对于必须测试某些东西才能更改300多个查询名称的人来说,这似乎是幼稚的。她浪费了多少时间来做这些事情,只是为了找到东西?她不仅去寻求别人帮助,还浪费了时间,您的时间以及公司的时间。更不用说代码在她这样做时可能坏了,因此也浪费了另一个团队成员的时间。

如果我是你,我会等到你冷静下来再尝试与她交谈。如果那行不通,那就去找老板。这种牛仔般的心态最终将使整个团队陷入困境。


8

在数据库中随机重命名很容易导致生产环境崩溃。如果这些过程在代码中的某处被引用,则可能会导致严重的后果。您可以回滚,但是如果这样的测试人员真的不知道她在做什么,那么看到该测试人员对生产进行一些更改就没有那么远了。那可能意味着失去业务,这就是为什么您应该尝试为开发人员和测试人员实施单独的用户角色。我们与测试人员一起做,效果很好。测试人员通常会喜欢它,因为他们不必担心会破坏实时数据。


5

它似乎没有在其他地方涉及到,但是放在公共场所的任何源(例如查询)都应该在版本控制系统下。

然后,如果同事更改了您的命名方案,则可以轻松地恢复到您的工作方案(并查看他们的更改;如果有必要,还可以恢复到原来的状态)。您还可以将更改绑定到特定用户,这样您就可以看到谁弄乱了事情。


2

不要在嘴里看着礼物马。

首先,集体代码所有权-他们不应该是“您的”。

其次,如果他们已重命名,请询问有关新命名方案的理由。他们要么在使用查询-在这种情况下就是他们的要求;或者这是他们开始为您提供一些维护方面的帮助的第一步。

如果每个人都认为他们是“您的”,那么您将永远不会摆脱他们,而继续追求新事物。


2

我不知道是否有人问过,但是正式版本是哪个命名约定?如果您的版本是官方的,那么我会从角度说明这个问题。因此,与其说“ Person X回滚了我的所有更改”,不如说“ Person X进行了与官方命名约定相反的更改”。如果没有正式的约定,那么我建议让她知道您不欣赏未经您事先咨询而做出的更改。

无论哪种情况,我都认为发动“战争”不是答案。即使您赢了,您也输了。


这是唯一正确的答案。如果有命名标准,则名称应符合该标准,任何希望它们使用其他名称的人都是错误的。如果没有命名标准,则应该有一个命名标准-团队,技术负责人或任何人-应该编写一个。这样的编码约定很枯燥,但是它们是允许团队进行操作的社交结构的重要组成部分。
汤姆·安德森

1

这是令人震惊的行为。听起来她不后悔,因此请带走给您的老板,并提出理由撤销她的访问权限,直到可以说服她不要胡闹。

如果老板不懂技术,请用他们能理解的术语来解释。想象一下在邮局开始工作,在邮局将邮递整理到鸽子洞中,准备送达。您可以单方面决定先对鸽子孔进行分类,然后再按姓氏进行排序,而不是按当前部门分类,再对地板进行分类。短期来看,这可能会使您的生活更轻松,但您将被其他邮局工作人员谋杀。

这是不礼貌的。我会很生气。


1

除了设置权限以阻止随机人对其进行更改之外,您还应该解释一下,因为测试功能是她的工作,如果随机人对代码进行更改,则不能保证可靠性。


1

就像每个人都说的那样,即使只是出于对您的尊重,她也不应该这样做,因为您是这些查询的创建者维护者。

话虽如此,我没有看到任何人提到这样一个事实,即如果她确实重命名了您的查询,那是因为她无法理解您的命名约定。
因此,通过记录您的命名约定并确保同事可以访问文档并找到他们需要的内容,可以轻松解决此问题。

您还必须谨慎并考虑其他人如何查找和使用您的查询:如果您的命名约定不允许他们有效地完成工作,那么您可能需要维护更详尽的查询列表,标签和商定的关键字,以便其他人可以找到他们想要的东西。

我认为这里的关键是,没有人可以孤立地工作,而避免彼此脚趾踩踏的最佳方法是就共同的基本规则进行沟通和达成共识。


0

我会以同样的方式回应-轻描淡写了您决定将所有内容还原的决定。只需还原她的更改,并向您的同事写一封非常简短的电子邮件即可:

“暂时恢复了更改rXXXX,因为不了解它的命名约定。不过感谢您尝试。:)”


0

是的,你反应过度。

有一种叫做版本控制的东西,除其他外,当他们弄乱您的东西时,它通常不必击败$#!7。只需回滚到以前的版本并锁定文件,即可让她处理愤怒。这将为您提供一个机会,您可以解释说,对具有其他人的依赖项的代码进行充分的更改而没有充分的理由并且无需先提出要求,这不仅是错误的,极其不切实际的,而且实际上是一种罪过。

当然,这假定您的命名约定比她的命名约定好,并且您实际上可以使用可靠的客观参数来备份此决定,如果不是这种情况,最明智的做法就是尽快处理更改并开始更改代码,下次尝试提出更好的命名约定。

不要把它带给老板,成熟的解决方法是直接与您的同事一起,之后您必须与她一起工作,以免它愚蠢地破坏了关系,从而容易解决争吵。

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.