【问题标题】:What are the qualities you want in a design architecture such that it is easy to implement by a team of coders?您希望在设计架构中具有哪些品质,以便由一组编码人员轻松实现?
【发布时间】:2010-11-03 03:21:20
【问题描述】:

我目前收到了一些关于一个小游戏的文档(类图、一些协作图和序列图),作为手头的任务,如果不把这个编码工作交给一个程序员,而是交给一个程序员,这有多容易他们的一个团队。

我应该关注哪些基本点?这是我的想法:

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

  • 其中没有任何类型的包图,因此在不同的团队中如何分解该系统可能并不那么明显。如果我有办法查看不同模块在包/命名空间系统中的打包方式,我可以更轻松地了解更高级别的依赖关系,并更轻松地将我的团队成员划分为不同的任务。

    李>

我在团队中工作的经验为零,所以我基本上只是在盲目猜测。我还应该寻找哪些其他因素?

谢谢

【问题讨论】:

    标签: c# java oop


    【解决方案1】:

    为了分配工作,您必须能够以某种方式分割代码库。根据团队的不同,有些团队可能更喜欢在水平切片(DB 开发、服务器开发、UI 开发)中工作,而其他团队更喜欢垂直切片(功能 1、功能 2)。

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

    制作要求/功能列表。考虑到手头的架构,功能 1 和功能 2 是否可以由不同的开发人员/对同时处理?

    【讨论】:

      【解决方案2】:

      如果您从未在团队中工作过,我建议您阅读Scrum and XP from Trenches。它很容易阅读并且很有意义。很高兴事先知道会出现什么问题。这就是我推荐这个的原因。

      此外,还有许多其他问题,

      • 您的团队的知识和经验
      • 以一种所有人都可以同时工作的方式分解任务
      • Continuous integration
      • 通讯;尽早并经常沟通,以避免任何误解/假设
      • 预先提供完整的 UML 图并不重要。它应该是精益和敏捷的

      这些是我可以从脑海中建议的几件事。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-17
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多