• ascodersdt-fe/weekly· 6 时前

    本周精读的文章是 Dan 的 writing-resilient-components。又是一篇长文,但 it's worth of it.

  • 上次介绍了权限系统的设计后,这次我们来说说如何实现系统的实现。

    复习一遍上次提到的内容,我们知道:

    权限就是规定谁可以对什么资源进行什么样的操作。

    那么,权限引擎就是根据这个原则来进行设计,于是,就引出了我们今天想介绍的工具:casbin。

    不过,今天想换种方式,如果我们自己要做个权限引擎,改如何实现呢?

    假如我们自己实现

    我们的需求

    1. 与具体业务场景无关,即所有的角色、资源以及操作都是抽象的;
    2. 适应任何权限模型,如 ACL,RBAC、ABAC;
    3. 管理相关的存储;

    功能

    我们理想中的情况就是:可以在中间件中,统一对用户进行鉴权,如果没有权限,中止继续访问,返回 HTTP status

  • https://draveness.me/golang-channel

    Go 语言中的管道 Channel 是一个非常有趣的数据结构,作为语言中一种核心的数据类型,多个 Goroutine 在进行通信时就会使用 Channel 作为中间的通信方式,我们在一节中要介绍的就是 Golang 中 Channel 的实现原理。这一节中的内容总共包含四个部分,我们会先介绍 Channel 的设计原理以及它在 Go 语言中的数据结构,接下来我们会分析常见的 Channel 操作,例如创建、发送、接受和关闭的实现原理,由于在 Range 和 Select 两节中我们会提到 Channel 在不同的控制结构中

  • 前言

    本文核心分为两部分,第一部分讲述普通浏览器中能干的事情,第二部分则讲述在自建容器的背景下更能干的事情。

    文章内容会比较粗略,如果你对具体实现感兴趣,欢迎留言。

    一、止步于浏览器

    1.1 DNS Prefetch

    通常情况下,一个 html bundle 里面一般会有 script 等标签去加载其他的资源。浏览器在加载完 html 之后,就会去加载 script 等标签里面的内容,大多情况下,这种标签里 uri 的 host 和当前页面的往往是不相同的,那就会涉及到 DNS 解析的问题,会有一定程度的损耗。

    在 HTML 里面加入 DNS Prefetch 则会让浏览器提前进行 DNS

  • zhiqiang21zhiqiang21/blog· 2 天前

    Linux文件权限管理

    如果平时主要在Mac 和 Linux 环境下工作,对于文件和目录权限应该不陌,看下面这张我电脑上的截图:

    当我们看到上面这张图的时候能不能很快的理解每一列的意思,如果你能够很快读懂那么下面的文章可以节省时间不看了,如果不是很清楚可以再详细的学习下每一列代表的意义。

    1、Linux的用户和权限系统

    Linux的权限分为3中:

    1. 文件所有者(属主)(u)
    2. 文件属组用户(g)
    3. 其他人(除了前面2个和root用户之外的所有人)(o)

    文件所有者通常是文件的创建者(root用户可以修改文件的所属)。

    文件的创建者自动成为文件所有者(属主),文件的所有权可以转让,转让“手续”必