Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在一个设计架构中,你想要什么样的品质,使得它很容易被一个编码团队实现?_C#_Java_Oop - Fatal编程技术网

C# 在一个设计架构中,你想要什么样的品质,使得它很容易被一个编码团队实现?

C# 在一个设计架构中,你想要什么样的品质,使得它很容易被一个编码团队实现?,c#,java,oop,C#,Java,Oop,目前,我收到了一个小游戏的两个文档(类图、一些协作图和序列图),手头的任务告诉我,将这个编码工作交给一个程序员,而不是一个程序员团队,有多容易 我应该关注的基本点是什么?以下是我的想法: 只要看看类图,我就可以看出其中有一个大问题。95%的类依赖于具体的类,因此您必须基本上首先为整个系统创建存根类,甚至在将任何逻辑放入其中之前 其中没有任何类型的包图,因此在不同的团队中如何分解这个系统可能不是很明显。如果我有办法了解不同模块在包/名称空间系统中的打包方式,我就可以更容易地了解更高级别的依赖关系

目前,我收到了一个小游戏的两个文档(类图、一些协作图和序列图),手头的任务告诉我,将这个编码工作交给一个程序员,而不是一个程序员团队,有多容易

我应该关注的基本点是什么?以下是我的想法:

  • 只要看看类图,我就可以看出其中有一个大问题。95%的类依赖于具体的类,因此您必须基本上首先为整个系统创建存根类,甚至在将任何逻辑放入其中之前

  • 其中没有任何类型的包图,因此在不同的团队中如何分解这个系统可能不是很明显。如果我有办法了解不同模块在包/名称空间系统中的打包方式,我就可以更容易地了解更高级别的依赖关系,并更容易地将团队成员划分为不同的任务

我没有团队工作经验,所以我基本上只是瞎猜。我还应该寻找哪些其他因素


谢谢

如果您从未在团队中工作过,我建议您阅读。这本书很容易阅读,也很有意义。很高兴能提前知道会有什么问题。这就是我推荐这个的原因

此外,还有许多其他问题

  • 团队的知识和经验
  • 任务以一种所有人都能同时工作的方式分解
  • 沟通;尽早和频繁沟通,避免任何错误沟通/假设
  • 提前给出完整的UML图并不重要。它应该是精益和敏捷的

这些是我能从头脑中提出的几点建议。

为了分配工作,你必须能够以某种方式分割代码库。根据团队的不同,一些团队可能会在水平切片(DB-dev、server-dev、UI-dev)中工作,而其他团队在垂直切片(功能1、功能2)中工作更为舒适

如果您对代码库进行评级,那么您将寻找模块化、内聚性和关注点分离。那么对于一个游戏来说,有物理模块吗?它有定义良好的接口吗?封装好了吗?它可以用于多种类型的东西(角色、盒子、球、炸弹等)

制作需求/功能列表。考虑到当前的体系结构,不同的开发人员/开发人员可以同时处理功能1和功能2吗