ApiTemplate后端项目开发模板,发布也有一段时间了。为了补充应用场景,以及详细说明本人总结的一些开发经验,现已常见的《用户/登录权限验证》功能模块来进行详细的讲解。我会以为开发此模拟的实现路径为主线进行说明,希望能帮助到某些开发朋友。

一、模块分解

模块分析是按照《C4-架构图》理念做的,主要分为

1. 系统上下文:显示当前构建的系统与现有系统的依赖关系,从宏观视角看

2. 容器:将当前构建的系统放大,显示出系统的 应用程序、数据存储、微服务等信息

3. 组件:放大单个《容器》后,显示其容器内部的组件列表、及关系。

4. 代码:放大单个《组件》后,显示其实现细节

注意:

1. 更正说明:上图中的《容器》应该改为《组件》,根据《C4-架构图》的定义,使用《组件》更贴切,因为想表达的是《登录/权限》模拟的子组件列表

2. 登录验证/在线用户管理:此两个组件为业务核心组件,设计与实现时要重点考虑

3. 获取用户/获取资源/角色:此两个组件主要从第三方系统获取数据,要考虑使用工厂模式进行策略切换。

二、核心代码

1. 上图表示IOnlineUserMgr接口的实现类应有的依赖,IOnlineUserMgr规范《在线用户管理》,包含添加在线用户、自动移除超时过期的用户等。

2. IReadAuthRepository/IRoleAndResDepend:规范对用户、资源、角色的依赖。对应《获取用户》、《获取资源/角色》组件

3. ITokenRepository:登录用户持久化,相当于用户登录记录

4. IUserEntity:用户实例规范,对应《登录验证》,提供资源、权限验证等相关接口

5. IUserEntiy和IOnlineUserMgr的接口实现在领域实现层(BAccurate.Implement项目)中,这样便从结构上对 业务领域组件 和 其他依赖组件进行了解耦。

6. 具体的代码实现可以移步至github地址,代码太多不方便博客文章展示

三、视频分享

B站视频介绍:https://www.bilibili.com/video/BV1Rz4y1Q7XY/,有兴趣小伙伴可以观看哟

四、经验总结

1. 通过《C4-架构图》对系统从宏观->微观的逐步细化

2. 业务领域组件应该要高内聚

3. 对依赖组件要低耦合

4. 不急着进行数据库设计,先梳理好业务领域组件之间关系,以及核心业务实现。

5. 数据库存储实体与领域实体强分隔,这样更能做好业务变更与升级。

ApiTemplate:.net后端项目模板完善与总结的更多相关文章

  1. 后端开发实践——Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  2. 后端开发实践:Spring Boot项目模板

    在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为"第0个迭代"要做的事情.但是,当项目运行了一段时间之后再来反 ...

  3. Vue基础项目模板

    https://github.com/wanglong/vue-element-admin.git 优化 Vue CLI 3 构建的前端项目模板(1)- 基础项目模板介绍 一站式开源运维平台,分享给大 ...

  4. 奉上简单的.Net后端开发模板

    假定一个场景,开始做开发的你,领导走到你的面前说道:"小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你",当时你内心读白: ...

  5. 分享我的CleanArchitecture for Razor Page项目模板

    这个项目是参考和整合了jasontaylordev/CleanArchitecture 和 blazorhero/CleanArchitecture 代码基础上,重构出来的新的项目,这两个项目都是非常 ...

  6. Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总

    原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...

  7. Win10系列:JavaScript 项目模板和项模板

    使用Visual Studio 开发Windows应用商店应用时,通过其提供的模板可以帮助我们快速地创建一个应用.其中,在新建一个Windows应用商店应用程序项目时可以在项目模板中选择所需要的模板类 ...

  8. 担心后端代码泄露?用delphi做后端,模板扣出来,随时可以变化。

    担心后端代码泄露?用delphi做后端,模板扣出来,随时可以变化. 本项目不是intraweb, unigui等类似的拖拉项目,只是一个简单 的模板引擎,理论上可以结合任何后端. 要就下载源码,作者保 ...

  9. Spring Boot 整合JDBC 实现后端项目开发

    一.前言 二.新建Spring Boot 项目 三.Spring Boot 整合JDBC 与MySQL 交互 3.1 新建数据表skr_user 3.2 Jdbcproject 项目结构如下 3.3 ...

  10. Node JS后端项目开发与生产环境总结

    原文地址:Node JS后端项目开发与生产环境总结 Node JS常用后端框架有express.koa.sails.国产框架有个egg js,已经在cnode投入生产了,还有个think js,类似t ...

随机推荐

  1. 后端xss漏洞处理

    关于什么是xss漏洞 参考:https://blog.csdn.net/cpongo11/article/details/103312716 对页面传入的参数值进行过滤,过滤方法如下 public s ...

  2. MongoDB入门实战教程(9)

    前面我们学习了如何套用常见的设计模式打造合适的模型设计,本篇我们来看看在MongoDB中如何使用索引来提高查询效率. 1 MongoDB也有索引? 在使用传统关系型数据库如MSSQL.MySQL等的时 ...

  3. inno setup 6 打包C# winform 程序安装包

    注: checkablealone "选中"意思unchecked "非选中"意思 图标选择:IconFilename: "{app}\Images\ ...

  4. leetcode 1541

    简介 简单来说就是栈的使用. 思路: 当发现一个左括号的时候压入栈中, 遇到右括号的时候 检查下一个字符是否依旧是左括号, 如果不是则新增一次操作. 判断栈中是否有元素如果有元素那么弹出 如果没有元素 ...

  5. audio 定制化

    简介 RT 参考连接 https://www.cnblogs.com/lalalagq/p/9961959.html

  6. Node.js躬行记(30)——SkyWalking使用和排查分析

    公司使用了阿里云的服务,其中可以在项目中使用全链路监测,最近要排查慢响应,所以就在 Node 项目中接了一下 SkyWalking. 本文还会记录在使用时遇到的问题,以及解决思路. 一.初始化 1)参 ...

  7. WSL初探

    1 简介 WSL( Windows Subsystem for Linux )是微软开发的兼容层,允许在 Windows 10 及更高版本上运行原生Linux二进制文件(如 Ubuntu . Debi ...

  8. SciTech-AV-Audio-DAP(Digital Audio Processing)-Loudness Normalization(响度规范化): Perceived Loudness + RMS (Root Mean Square)

    EBU: European Broadcasting Union Loudness Normalization Use the Loudness Normalization to change the ...

  9. SciTech-BigDataAIML-Machine Learning Tutorials

    Machine Learning Tutorials Machine Learning Tutorials This page lists all of the machine learning tu ...

  10. windows WSL2避坑指南

    对于不想安装windows/linux双系统的朋友来说,WSL2是不错的选择,但在使用过程中可能会遇到一些问题,以下是本人踩过的坑,记录于此: 一.安装前提 1.1 检测windows版本 windo ...