PHP,DDD,CQRS,Event Sourcing,Kubernetes,Docker,Golang

0%

最近在研究和开发统一用户身份认证的系统,与此同时也了解到市场上有着如IAM、IDaaS这样的公有云产品,可以将应用快速接入实现统一用户身份认证、权限管理、SSO单点登录等功能。

我主要了解的是阿里云的IDaaS产品,一直认为阿里云产品文档是一个非常好的学习途径,在了解该类产品和功能过程中,阿里云在文档中除了说明产品的使用,更是加入了一些概念的讲解、知识的讲解。这里倒是要摘一些重要的概念。

阅读全文 »

关于IDaaS就不多说了,主要是理解一下IDaaS中,如何与应用系统进行帐户关系上的处理。目前了解有三种,但主要还是关注帐户映射(Account Mapping)和帐户关联Account Linking)两种做法,还有一种好像是基于角色的帐户。

阅读全文 »

PHP日志不仅仅记录错误,你也可以使用日志来追踪API或函数调用的性能,或统计你应用程序中重要事件的发生次数(例如登录、注册、下载等)。无论你是微服务还是单体架构,对PHP应用程序日志的全面记录将会让你能够追踪应用中关键点,并优化其性能。

PHP和开源的日志库让你可以选择在哪里发送日志和存储日志。如你在这篇文章中看到,将PHP日志存储在一个中央仓库是最简单的,并且为以后处理和分析日志提供了很大的便捷。当你使用专用的工具对日志文件进行tail并转发到中央仓库时,你的应用程序代码不需要承担缓冲日志和处理网络错误的代价。

在这篇文章,你将学习到:

  • 配置PHP System logger来实现自动记录错误日志
  • 使用PHP原生方法来记录自定义错误
  • 使用Monolog日志库来扩展你的日志收集能力
  • 捕获PHP异常和任意的事件
阅读全文 »

本篇博文由本博客(http://www.veitor.net)经原文翻译,转载请注明出处。

应用层是将领域模型与查询或修改其状态的客户端分离的地方。Application Service是这一层的构建块。正如Vaughn Vernon所说:“Application Service是领域模型的直接客户端”。你可以将Application Service看作为外部世界(HTML表单、API客户端、命令行、框架、UI等)与领域模型之间的联系点。思考一下你系统中向人们展示的最上层的use cases,这会对你有所帮助,例如:“以游客身份进行注册”、“以登陆者的身份购买产品”等等。

阅读全文 »

本篇博文由本博客(http://www.veitor.net)经原文翻译,转载请注明出处。

为了与领域对象进行交互,你需要持有该对象的引用。实现这样的一种方式是通过创建对象来实现。或者,你可以贯穿关联,在面向对象编程中,对象持有与其他对象的引用,这使它们贯穿,从而有助于我们的模型的展现。但是,你需要有一种机制来获取第一个对象:聚合根。

阅读全文 »

本篇博文由本博客(http://www.veitor.net)经原文翻译,转载请注明出处。

工厂是一个强有力的抽象。它们帮助客户端从如何与领域交互的细节中解耦出来。客户端不需要知道如何去构建一个复杂的对象和聚合,所以你可以使用工厂来创建整个聚合,从而让其具有不变性。

阅读全文 »