如何让队友知道我对一个对象做了什么更改?[关闭]


9

假设我有一个PHP对象,比如说:companyObj。

class companyObj
{
  private company_name;
  private company_address;

  public function print_contact()
  {
    //logic
  }
}

这是我写的对象,并与队友共享。现在,我想使其更强大,如下所示:

class companyObj
{
  private company_name;
  private company_address;
  private company_contact_person;

  public function print_contact()
  {
    //logic updated
  }
}

现在,如何通知队友我的对象具有可以设置的更多属性?

当我不希望我的队友浪费时间去查看源代码级别的更改时,我不向开发团队中的每个人发送电子邮件,而是如何使团队知道发生了什么?


7
svn可能会有所帮助,因为他们会知道代码中的某些内容已发生更改。.以便他们可以直接更新您的更改(您的情况下可能是特定的文件)。无需知道更改了什么(可选地,如果他们不想至)
PresleyDias'2

1
这是您编写的类,不是对象:)对象在运行时存在,未在编译时出现
Rune FS 2012年

Answers:


10

这在很大程度上取决于具体情况。假设您添加的新属性是强制性的,即必须始终对其进行设置。然后,您必须自己搜索代码,并在companyObj创建a的任何地方进行更新,以确保其构造正确(包括设置新属性)。我假设PHP具有构造函数,在这种情况下,您只需要添加一个新的构造函数参数,编译器就会自动将每个构造函数调用标记为无额外参数,这是编译错误。这也将确保队友在使用新属性后立即了解新属性companyObj

但是,如果new属性是可选的,则情况不太清楚。您可能有或没有合适的默认值。在后一种情况下,我仍然建议您更新所有实例创建以在适当的时候设置新属性。这是为了确保代码始终保持一致状态

与团队成员交流变更是这里的又一个遥远的步骤。敏捷的团队更喜欢面对面的交流,恕我直言,这是有充分理由的。依赖文档是在团队中传播信息的非常缓慢且无效的方法。Wiki更好一些,但是记录每个类的属性仍然是恕我直言。这只会给团队带来沉重负担,并且很快就会变得不可靠和毫无用处,因为我们是人类,因此我们有时会忘记更新,而且我敢打赌,没有多少团队成员会定期查看文档(采用任何形式),以了解最新的代码更改。

后者也适用于通过Javadoc或Doxygen自动生成的文档。尽管可以将它们配置为自动构建,以始终保持生成的文档为最新,但是我从未见过有开发团队成员定期浏览文档以获取有关最新代码更改的信息。而且,如果您使用的是任何源代码控制系统,那么首先要注意到更改的地方是无论如何都更新代码的本地副本 -然后您可以检查熟悉的类中的更改,并准确查看更改的内容和更改的方式(以及如果您的团队习惯于添加有意义的签入注释(自动生成的文档会丢失),则简要说明和/或参考任务ID 。

沟通是至尊编程团队进行配对编程的主要原因之一。如果您与队友一起进行更改,那么马上就有两个人知道每个更改,并且下次每个人都将与其他人配对时,有用的信息会迅速传播。但是由于种种原因,它并不总是适用。除此以外,您可以在适当的时候(例如午餐时,如果您碰巧一起吃午餐),与邻居谈论变化,或者如果变化更大,更重要或更复杂,则向周围的人发送邮件。

在后一种情况下,可能有充分的理由对其进行正确记录。IMHO设计文档最适合提供粗粒度的系统高级概述,而实现细节在代码中(遵循DRY原理)。


2
+1我认为需要教育团队中的每个人,不要盲目地更新代码的最新版本,而要简短地检查已完成的操作以及在执行此操作之前的位置。正如您所说,简短而准确的评论很棒。
Jalayn'2

10

您是否考虑过与他们交谈?安排一个简短的会议:“嘿,我对对象X进行了一些更改,我想向您展示更改的内容和原因”。或者,如果会议看起来过于正式或具有破坏​​性,请与每个人单独交谈。


+1,最明显的答案首先就没有想到!
NoChance 2012年

2

如果您有团队,则可能还会有设计文件。如果不。开始吧。并使用一些UML工具来映射您的设计。


7
但是,从原则上讲,这听起来不错:1.包含每个类属性的设计文档将很难维护和保持与代码的同步。2.从代码反向工程化的UML图注定很快就会在任何不平凡的项目中变得几乎无用,这又是由于其中的大量细节。
彼得Török

如果您有太多的课程,则不需要记录每个课程。只是构成公共接口的那些。同意对于一个大型项目而言,这将变得很麻烦,但总比没有任何文件指定应用程序的各个部分之间如何相互通信要好。
DPD 2012年

1
我同意高层体系结构/设计文档的重要性(如我的回答中所述)。但是,这恰恰是很高的水平,因此不需要通过微小的更改就可以不断对其进行更新。
彼得Török

1

您可以在代码中使用像doxygen这样的工具。现在创建脚本,该脚本将生成doxygen文档并定期运行它,这可能是您夜间构建的一部分(您进行夜间构建,对吗?)。

我认为您可以在doxygen中为自定义属性分配自定义属性,以突出显示它是新属性。

如果您的队友有什么好处,他们将阅读新文档。


也许我从来没有与队友好工作,因为我从来没有见过在实践中:-(这项工作
彼得Török

@PéterTörök我必须承认,他们之间的距离很远,包括我在内。
tehnyit

0

现在,如何通知队友我的对象具有可以设置的更多属性?

好吧,您不应该将所做的每件事都告诉队友。否则,您将不得不发送大量电子邮件。如果这是一件大事,那么您可以举行一次小型会议,并让他们知道您做了什么(如果您做事混乱,则无需召开单独的会议)。

如果您使用支持自动完成的IDE,那么您的队友应注意您的更改。我只是希望您能注释您的代码。

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.