Skip to content
  • [转载]数据字典的使用与设计

    在平时开发的过程中,特别是在遇到表单时候,我们经常需要为前端提供一些下拉选项的信息,这时候我们需要为前端提供下拉菜单的信息,让前端进行渲染。同时我们在数据库中存储的只可能是对应的编码,例子如下:

    这里我们可以看到在搜索栏中,有一个下拉菜单。如果前端直接将value值写死在前端代码中,那么就破坏了低耦合原则,如果未来清查状态有增加或者管理员想要修改,那

  • NestJS中middleware、interceptor、guards、pipe等的执行顺序?NestJS请求周期?

    玩过Java的同学,肯定知道**AOP(Aspect Oriented Programming)**切面编程的概念,NestJS中也能见到AOP的影子,今天就跟我一起学习下NestJS中的请求周期的概念,如下图:

    在开始之前,我想先说一个猜想,也就是AOP实现的原理,像不像WordPress开发中的Hook机制?或者是React开发中的Hook?就是在特定的代码位置,加载执行用户

  • [ChatGPT]RBAC权限模型介绍

    RBAC合理介绍一

    RBAC(Role-Based Access Control)是一种常用的权限管理模型,它基于角色进行访问控制,将用户的权限分配给角色,然后将角色分配给用户,从而实现对系统资源的保护和控制。在 RBAC 模型中,有以下四个主要的概念:

    1. 用户(User):使用系统的人员。

    2. 角色(Role):代表用户的职责、职位、权限等,一个用户可以拥有多个角色。

    3. 权限(Permission):代表对系统资源的访问控制,可以是访问控制列表(ACL)、角色或其他权限集合。

    4. 资源(Resource):需要受到访问控制

  • [转载]Dockerfile和docker-compose.yml文件的区别?

    Dockerfile 是拿来构建自定义镜像的,并没有直接生成容器。只是可以在运行镜像时运行容器而已。
    做容器编排以部署环境,是使用 docker-compose.yml 文件进行的,里面可能会需要用到 Dockerfile 。

    Dockerfile是用来构建镜像的,若是想使用这个镜像的话还需要使用docker run命令来运行这个镜像,从而生成运行一个容器
    docker-compose.yml是用来编排项目(服务-我)的,里面包含使用各种镜像创建的容器服务,使用的镜像可以是网络上的,也可以是根据使用Dockerfi

  • [转载]Docker是什么?一篇Docker入门的好文章

    容器技术的起源

    假设你们公司正在秘密研发下一个“今日头条”APP,我们姑且称为明日头条,程序员自己从头到尾搭建了一套环境开始写代码,写完代码后程序员要把代码交给测试同学测试,这时测试同学开始从头到尾搭建这套环境,测试过程中出现问题程序员也不用担心,大可以一脸无辜的撒娇,“明明在人家的环境上可以运行的”。

    测试同学测完后终于可以上线了,这时运维同学又要重新从头到尾搭建这套环境,费了九牛二虎之力搭建好环境开始上线,糟糕,上线系统就崩溃了,这时心理素质好的程序员又可以施展演技了,“明明在人家的环境上可以运行的”。

    从整个

  • [ChatGPT]NestJS入门介绍

    NestJS 是基于 Node.js 平台构建的一个开源的 Web 框架。它使用 TypeScript 作为开发语言,并采用了一些现代化的设计思想和技术,例如:面向切面编程(AOP)、依赖注入(DI)、异步编程等。

    NestJS 的设计思想受到了 Angular 和 Spring Framework 的影响,它的主要目的是为了让开发人员能够更快地构建可扩展且高效的 Web 应用程序。下面是 NestJS 的一些核心原理:

    1. 模块化设计:NestJS 将应用程序划分为不同的模块,每个模块都有自己的职责和依赖关系。模块是一种组织代码的方式,它可以包
  • 解决Could not resolve all files for configuration ':app:debugRuntimeClasspath'等问题

    我今天打开以前的一个安卓项目,想做些修改,运行的时候遇到了如下的错误提示:

    Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
    Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

    网上大多数解决方案都是更换Maven库代理,或者更换顺序,其实很有可能你现在的Gradle是处

  • [转载]RBAC权限系统设计

    前言

    权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。
    目前在公司负责权限这块,所以对权限这块的设计比较熟悉,公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心,订单中心,用户中心,仓库系统,小程序,多个APP等十几个系统和终端

    1.权限模型

    迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access Control)

  • JavaScript基础知识:什么是闭包?底层原理分析

    最近我在巩固复习前端知识,看了看对闭包的解释,网上的说法有很多种,这篇文章主要分享自己对闭包的理解,如果有什么说错的地方,欢迎指正留言评论。

    什么是闭包?

    在谷歌和百度搜索了下什么是闭包,你能得到至少3种以上的说法,比如说:

    • 闭包是一个函数,这个函数能访问外部函数的变量
    • 闭包是由函数嵌套而成的作用域链
    • 闭包是指可以访问其所在作用域的函数
    • 闭包是指有权访问另一个函数作用域中的变量的函数
    • 闭包就是能够读取其他函数内部变量的函数
    • ......

    而网上大部分能看到的解释是闭包是一个函数,其实我认为,闭包是一个函数这种说法并

  • JavaScript基础知识:搞定Promise,手写Promise代码实现

    最近我都在巩固复习基础知识,把自己对前端基础知识的理解记录下来,这些都是自己的看法,并不一定对,我只是觉得这样理解对自己来说合情合理,符合逻辑,所以要是觉得我有哪里说错的地方,可以评论留言指出,欢迎批判指正。

    Promise是什么?

    首先学习Promise之前,我们要搞清楚Promise是什么的问题,引用MDN上面的一句话:

    本质上 Promise 是一个函数返回的对象,我们可以在它上面绑定回调函数,这样我们就不需要在一开始把回调函数作为参数传入这个函数了。

    https://developer.mozilla.org/zh-C