我挣扎的一件事是在编写任何代码之前规划应用程序的架构.
我并不是说收集需求来缩小应用程序需要做什么,而是有效地思考一个好的方法来布置整体类,数据和流程结构,并迭代这些想法,以便我有一个可靠的计划甚至在打开IDE之前的行动.目前,只需打开IDE即可轻松创建一个空白项目,开始编写位和bob,让设计从那里"长出来".
我收集UML是一种方法来做到这一点,但我没有经验,所以它似乎有点模糊.
在编写任何代码之前,您如何规划应用程序的体系结构?如果UML是可行的方法,您能否为小型应用程序的开发人员推荐简明实用的介绍?
我很感激你的意见.
问候,我一直在想一个新项目的想法,并想知道是否有人知道像Kayak.com这样的服务如何能够如此快速和准确地汇总来自这么多来源的数据.更具体地说,您认为Kayak.com是否正在与API进行交互,还是在抓取/抓取航空公司和酒店网站以满足用户请求?我知道这种事情没有一个正确的答案,但我很想知道其他人认为这是一个很好的方法.如果有帮助,假装你明天要创建kayak.com ......你的数据来自哪里?
我使用.Net开发了多年的企业应用程序我的应用程序通常有一个包含映射到SQL DB表的实体的域模型.我使用Repository模式,依赖注入和服务层.
最近我们开始研究MVC 3项目,我们讨论了在哪里放置哪些逻辑.我来自瘦控制器/ FAT模型架构,并想知道服务层如何适应
控制器很薄,调用模型上的方法.模型"知道"如何从数据库加载自己并与存储库或服务进行通信.例如,customerModel有一个Load(id)方法,并加载客户和一些子对象,如GetContracts().
Controller要求服务检索模型对象.加载/存储等逻辑在服务层中.该模型是仅具有数据的纯实体模型.
为什么选项1会成为更好的选择,特别是当我们谈论企业应用时,我的经验告诉我要分离问题,让模型和控制器尽可能地薄,并且有专门的服务来做业务逻辑(imcl.数据库交互)
感谢所有建议和对优质资源的参考.
architecture model-view-controller asp.net-mvc service-layer asp.net-mvc-3
我正在考虑购买Martin Fowler的"企业应用程序架构模式".
从我所看到的,它看起来像一本好书,一本偏向于企业Java的架构书 - 正是我所需要的.
然而,在计算机时代,它已经很老了.2003年是很久以前的事情,从那时起事情已经发生了很大变化.
所以我想知道是否有人能告诉我:这本书是否仍然相关,值得一读?
我有一个关于WPF MVVM的问题,这让我感到沮丧.
为什么这样做:?
MainWindow.xaml:
<Window x:Class="MVVMProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ContentControl Content="{Binding}"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
将您的ExampleView.xaml设置为:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vms="clr-namespace:MVVMProject.ViewModels">
<DataTemplate DataType="{x:Type vms:ExampleVM}" >
<Grid>
<ActualContent/>
</Grid>
</DataTemplate>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
并创建如下窗口:
public partial class App : Application {
protected override void OnStartup(StartupEventArgs e) {
base.OnStartup(e);
MainWindow app = new MainWindow();
ExampleVM context = new ExampleVM();
app.DataContext = context;
app.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
什么时候可以这样做:?
App.xaml :(设置启动窗口/视图)
<Application x:Class="MVVMProject.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="ExampleView.xaml">
</Application>
Run Code Online (Sandbox Code Playgroud)
ExampleView.xaml :(窗口不是ResourceDictionary)
<Window x:Class="MVVMProject.ExampleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vms="clr-namespace:MVVMProject.ViewModels">
>
<Window.DataContext>
<vms:ExampleVM />
</Window.DataContext>
<Grid> …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以简洁地比较/对比前端,后端和中间件("中端"?)之间的差异.
是否存在重叠的情况?是否有必须重叠的情况,前端/后端不能分开?在瓶颈方面,哪一方面与哪种类型的瓶颈有关?
我觉得他们基本上都是一样的.模型对象也一样吗?
现在,在我的架构中,我有:
class Person
{
public string PersonId;
public string Name;
public string Email;
public static bool IsValidName() { /* logic here */ }
public static bool IsValidEmail() { /* logic here */ }
}
class PersonService
{
private PersonRepository pRepository;
PersonService()
{
pRepository = new PersonRepository();
}
public bool IsExistingEmail(string email)
{
//calls repo method to see if email is in db
}
public Person GetPerson(email)
{
return pRepository.Get(email);
}
public void SavePerson(Person p)
{
if (Person.IsValidEmail(p.Email) && !IsExistingEmail(p.Email) …Run Code Online (Sandbox Code Playgroud) 我不时看到的一个术语是"Cyclomatic Complexity".在这里,我看到了一些关于"如何计算语言X的CC"或"如何使用最小CC量来做Y"的问题,但我不确定我是否真的理解它是什么.
在NDepend网站上,我看到了一个解释基本上是"方法中的决策数量.每个if,for,&&等等都给CC增加+1"得分.)真的是吗?如果是,为什么是这很糟糕?我可以看到,人们可能希望保持if语句的数量相当低,以保持代码易于理解,但这真的是它的一切吗?
还是有一些更深层的概念呢?
为动态逻辑数据库模式提供存储的推荐架构是什么?
澄清一下:如果系统需要为模型提供存储,模型的架构可能会在生产中被用户扩展或更改,那么有哪些优秀的技术,数据库模型或存储引擎可以实现这一点?
一些可能的说明:
任何基于现实世界经验的答案都将不胜感激
architecture ×10
c# ×2
oop ×2
aggregate ×1
api ×1
asp.net ×1
asp.net-mvc ×1
dynamic-data ×1
java ×1
java-ee ×1
mvvm ×1
ooad ×1
poeaa ×1
sql ×1
theory ×1
web-services ×1
wpf ×1
xaml ×1