如何拆分一个应用程序,使多个开发人员可以一起工作

本文关键字:开发 工作 一起 应用程序 拆分 何拆分 一个 | 更新日期: 2023-09-27 18:26:22

背景

关于如何使用MVVM/MPV来分离层,有很多很好的资源,以便设计者和程序员可以单独工作。这不是一个棱镜的问题,但我也检查了几个棱镜教程(包括微软的Mike Taulty的这个出色的4小时以上系列,还有更多)

这些教程/书籍/视频解释了内部工作原理,例如如何在视图模型之间传递消息,如何模块化应用程序,最佳安全实践等等

然而,没有人谈论如何实际地逻辑划分*应用程序(WPF或ASP.Net MVC),以便多人可以在其上工作。

问题

你通常是如何将责任分配给你的开发团队的?

假设您使用一个高级UML工具,一旦一个高级图准备好了,但还没有编写代码,您如何确保

1-在UI上工作的开发人员将知道并能够访问类库开发人员将编写的类库函数?

2-由两个不同的开发人员为两个不同目的编写的两个库将相互操作?

我希望我在这里没有感到困惑。这个问题只是一些好的经验法则。由于两个人在一个解决方案中处理两个项目(WPF/Silverlight或ASP.Net MVC)将采用两种不同的方式,那么一个人编写的方法/类/函数如何与另一个人结合在一起?

感谢

如何拆分一个应用程序,使多个开发人员可以一起工作

然而,没有人谈论如何实际地"逻辑地划分"一个应用程序(WPF或ASP.NetMVC),以便多人可以在上面工作

您实际上不需要划分一个应用程序,以便多人可以对其进行操作:您还可以使用TeamFoundationServer。还有一个免费版本可供5个或更少用户使用。

教程:VS2010 中的TFS入门

根据我对您的问题的理解,您希望在项目中有一个基础设施,不同技能的人可以单独工作。如果我是对的,"领域驱动设计"将是您可以选择的最好的基础设施。

领域驱动设计(DDD)是一种通过将实现连接到不断发展的模型来开发满足复杂需求的软件的方法。领域驱动设计的前提如下:

  1. 将项目的主要重点放在核心域和域逻辑上。

  2. 基于领域模型的复杂设计。

  3. 发起技术专家和领域专家之间的创造性合作,以迭代地完善解决特定领域问题的概念模型。

这个词是埃里克·埃文斯在他的同名书中创造的。

有一个伟大的项目可以帮助你:Microsoft西班牙-面向域的N层.NET 4.0示例应用程序基于简单易懂的场景,并且有很好的文档记录。

模块化、分层等概念在项目中进行了非常仔细的讨论,我相信这可以满足您的期望。

显然,您需要像TeamFoundationServer这样的源代码管理或其他替代方案,以便在多个开发人员之间控制对源代码的更改。

作为两个人处理两个项目(WPF/Silverlight或ASP.Net MVC)在一个解决方案中会采取两种不同的方式一个编写的方法/类/函数是否适合其他方法/类或函数?

您需要为公共函数维护一些公共库。两位开发人员需要每两到三周进行一次代码审查。这样他们就可以发现自己的不同,并相互学习。