我的文件夹结构如下:
>
我的UI的项目
一个为应用程序核心的项目,它包含应用程序服务、域服务和域模型。
基础结构的项目,我有一个持久化html" target="_blank">文件夹在那里。
传递机制可以切换(从控制台应用程序到web应用程序...)而核心也会照样工作。
同样的基础结构,我可以使用实体框架一次,然后切换到dapper,而不会导致核心的改变。
到目前为止还不错,还是我错过了一些东西,还是我错过了对架构的最基本的理解?
如果我有一个控制台应用程序,我必须键入一个命令,它创建一个客户。
在核心项目中找到的应用程序服务中的类。它使用依赖注入来访问iPersistence的实现。
public class AddNewCustomer
{
private readonly IPersistence _persistence;
public AddNewCustomer(IPersistence persistence)
{
_persistence = persistence;
}
public bool addToDb(customer customer)
{
return _persistence.add(customer);
}
}
端口项目中的接口。
public interface IPersistence
{
bool add(Customer customer);
}
public class Persistence: IPersistence
{
public bool add(customer customer)
{
//inserts into DB
}
}
端口项目应该严格地与接口有关吗?如何构造端口和适配器项目的结构(文件夹结构)?
到目前为止还不错,还是我错过了一些东西,还是我错过了对架构的最基本的理解?
我会努力正确表达自己。希望能有所帮助。
端口和适配器体系结构旨在构建html" target="_blank">解耦代码。
传递机制可以切换(从控制台应用程序到web应用程序...)而核心也会照样工作。
没关系。控制台和web应用程序是驱动应用程序的适配器。它们使用驱动端口(为外部参与者提供应用程序功能的端口)。
我可以使用实体框架一次,然后切换到dapper,而不会导致核心的改变。
六边形:
[app-name].hexagon.internal=应用程序的内部
[app-name].hexagon.driver.[driver-port-name]=一个或每个驱动程序端口(应用程序的API)
我写了一篇关于六边形体系结构的文章,在这里我解释了这个模式,我即将发布一个实现示例。如果你想读它,这里有链接:
我阅读了Alistair关于六边形模式的文章,并浏览了与此相关的其他资源(Alistair的视频,端口和适配器的简短描述)。 我了解六边形架构的总体思路,以及它给现代应用程序开发带来的优势是什么。但是,我仍然对端口和适配器的实际实现有一些困惑。 问题1: 从阿利斯泰尔的文章中, 在一个实现中,端口和适配器以两种方式出现,我将其称为主要和次要,原因显而易见。它们也可以称为驱动适配器和驱动适配器。 有
null 但有件事我在纠结...应用层如何实现到域层的接口?这难道不需要应用程序层知道域层的相互工作吗?这从一开始就完全破坏了使用接口的意义。如果域层提供了一个接口,而该接口的适配器是由使用该接口的层实现的,这将意味着该接口的用户也在实现该接口本身。就像外层在告诉内层如何工作...这违背了去耦合的本质,甚至违背了一般的接口。 对我来说,这似乎很糟糕,因为现在您已经迫使框架层进行验证,这应该是域逻辑
不过,当我发现有必要的时候,我开始稍微尝试应用概念。我发现仍然有许多我不能甚至不考虑应用到我的应用程序中,其中一些是:适配器、命令(CQR?)、事件… 除此之外,我还有点纠结于与六角形建筑有关的东西。我试图应用外部行为应该依赖于内部的定义,所以基础结构层->应用程序层->领域层 在本例中,我将应用程序层中的服务定义为以下LoginService示例:
问题内容: 我一直对会话在内部的工作方式感兴趣,但是我对C的知识很少(并且不确定在PHP源代码中的位置)。 这是我目前对会话的了解: 当您启动会话时,将为用户分配一个会话ID,该ID存储在cookie中。 会话数据保存(通过)后,将与相关的会话ID和到期时间一起存储在文件系统中。 它是否正确?另外,创建会话ID的方法是什么?我认为这是基于时间的,但是如果两个用户同时发送请求该怎么办?内部采用什么方
求后端前辈帮忙看一下我绘制的时序图中,我对数据库锁的理解是否正确??? 今天看见一篇讲解 “先删除缓存还是先更新数据库” 的文章看不懂, 我主要是没搞懂“数据库的‘锁’机制”在“并发删除缓存+更新数据库”这个问题中,究竟是怎么运作的?? 因为我在学习mysql时,了解到进行更新操作时,会加上互斥锁,所以理论上更新和查询操作必定是串行的,但按照这篇文章的描述,似乎出现了“数据库更新操作”与“数据库查
我很难解析JSON的某些内部部分(使用Moshi),这些内部部分可能变化很大,并且高度非结构化。总体看来是: 和数据类结构如下所示: “DataItem”的模式变化很大。看起来Moshi codegen支持适配器,可能允许手动解析这些内部数据类,但我没有找到正确的教程或示例。理想情况下,我希望解析整个响应,就像解析一个定义良好的JSON一样。 以下是我如何使用改装/摩什 我如何实现这一点?任何示例