|
|
1
7
|
|
|
2
3
不要在一个大型的“全有或全无”会议上继续讨论这个问题,在这个会议上,您试图设计系统的所有类。 从1到2个功能开始。不要开单一的大型会议,而要开快速的小型会议来评估这些功能。您将能够将学到的经验教训应用到下一个课程中。如果需要,它还可以让你深入了解细节。 如果这将与现有代码集成,请询问相应的开发人员它是如何影响它的。 如果我们讨论的是不同的子系统,请将集成点保持在最小值,并使它们保持简单。有时,您不能/不应该将许多其他团队的首选项放入其中,而是让其他团队执行一个简单的类,以最方便他们的代码的方式公开您的api。你不想让事情变得复杂,保持简单通常是最好的方法。 还要注意,通过这些设计会议定义集成点的所有投资主要是在我们讨论子系统集成时。与不同部门的it团队一起工作。您不想进入他们各自开发的部分的任何内部(除非您讨论的是架构问题……但您应该在这些团队中有人能够处理这些问题……),相反,您希望关注如何集成。
另外,我已经与分布式团队广泛合作了4年,现在我已经在上面提到的两个案例中(大型项目子系统上的不同团队,特定子系统上的相同团队),其中2年是与全球分布式团队合作的。 |
|
|
3
1
从这一点出发,使用任何建模/文本编辑器作为支持:绘画、文字、WinDesign、ObjectEngining等。这是沟通的最佳方式。 PS:我同意pen&纸是最好的,但当它是为你,而不是为外国开发人员。所以,忘记扫描和电子邮件吧^^ |
|
|
4
1
首先,我开始阅读需求和文档,试图得到一个大致的草图。这主要是在我的头脑中完成的,部分是在纸上完成的。(我有很好的记忆力。)设计的第一阶段通常是在远离我的电脑的情况下完成的!当我在车里的时候,我的脑海里可能会闪现出一些想法。有时,我甚至会在一个锁着的小房间里,把一些有臭味的东西倒进一个大瓷罐里,产生新的想法。总的来说,设计理念往往在安静的时候突然出现,而我有机会让自己的思想四处游荡。 大约两年前,我确实有一个需要设计的大项目。另一个开发人员已经在做这件事了,但是他对这件事感到非常失望,仅仅因为几个星期后他还没有找到一个好的解决方案就离开了公司。所以,然后轮到我了。。。 我有一个优势,我可以在家工作,所以我做到了。我花了第一天的时间在卧室里设计,在床上拿着笔、纸和文件。我有我以前同事的笔记,可以看出他把事情弄得太复杂了,所以我开始把问题分成更小的步骤。我继续浪费纸张做笔记,在头脑中做计算,并将我的笔记和文档和其他笔记进行比较。第一天,我从未用过我的电脑。 第二天,我开始输入一个技术设计,并编写一些代码来测试一些原则。尽管如此,我还是花了很多时间远离电脑,在这段时间里我会小睡一会儿,从沉重的思绪中解脱出来。花了整整一天的时间,但最后,我把整个概念都写在纸上了。 第三天,我打印了我的概念,并与队友分享。当我继续为代码设置基本需求时,他们可以开始评判我的设计并指出缺陷。那天,他们没有找到任何东西,尽管我在里面留下了一些。 第二天,我和一位队友开始实施概念验证代码,这是让所有功能正常运行所必需的。再过两周,整个测试版就完成了,只需要一些调整。当我去度假时,这是团队其他成员会做的事情。
所以,所需材料:小房间、笔、纸、床、大量咖啡、食物和放松。远离电脑,懒惰一点。(我所说的懒惰是指:避免立即编写代码。想想看,这会让人们觉得你什么都没做……) 当为他人设计要实现的东西时,您需要自己完成设计的第一部分,尽可能完整。只需坚持做大事,让团队为小事增加空间。最重要的是:依靠你的团队在某个时刻接管你的工作,并准备好一旦他们开始行动就后退! |
|
|
5
0
我对这种缺乏合用地的情况没有经验,但我同意这样一种观点,即纸笔方式是开始讨论设计的最佳方式。Scott Ambler谈论POWs(普通的旧白板)的使用。。。这是同样的想法。第一种建模方法可以用数码相机拍摄一张照片,在模型变得更加坚实之前,不要浪费时间使用工具进行复杂的UML布局。在白板上拍照可以节省很多时间。
|
|
|
6
0
使用UML、CRC卡以及其他编写视频通话的方法。还有这样的服务,比如 digitalsamba |
|
|
7
0
第一件事是写出将使用接口的代码。您希望该代码如何工作和外观。然后开始为该接口编写代码。 让界面帮助你,而不是让你与界面抗争。 |
|
|
8
0
http://mind42.com/ 例如,它并不完全用于建模类或活动图,但在交流想法至关重要时,它可能有助于协作。 此外,您还可以使用源代码控制系统,在这里您不仅可以存储源代码原型和框架,还可以存储模型文件(例如,来自RationalRose或您最喜欢的建模工具)。
|
|
|
9
0
|
|
|
10
0
SVN或CVS是一个 因此,您应该始终能够访问您的同事部件,并可以查看现有接口 和 描述。此外,团队中的所有人都应该在自动文档系统(如Doxygen)的原型中使用文档标记。因此,为所有其他开发人员动态生成文档非常容易。 该文档应该在存储库中可用(大部分在“doc”文件夹中),这样您就可以每天使用工作副本进行更新,并获得更新的文档。
快速原型是游戏中的另一件事。问题在于这些类是用于GUI还是仅用于程序逻辑。对于GUI,有许多框架工具可用于生成类,因此您只需要实现内部逻辑(事件处理)和与同事类的接口。 对于其他部分,我建议使用UML工具(大多数情况下,您只需要类图)。还有一些免费的工具,比如ArgoUML,也可以在Linux上运行。这些工具可以为不同的语言(C++、Java)生成很大一部分类设计 |
|
|
11
0
通过博客保持简单。
|
|
|
12
0
你可以做得比开发一个共享词汇表更糟糕,不仅是为了讨论问题领域,而且是解决方案领域。在解决方案领域,不要谈论特定的类,而是从以下方面描述您的潜在解决方案: design patterns 我相信您已经熟悉了它们,但如果它们不熟悉,模式允许您根据它将使用的可重用设计来描述解决方案的整个子部分。 |
|
|
simply lemon · python上链表的添加方法 2 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 2 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 2 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 2 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 2 年前 |