小雄Ya_社区达人页

个人头像照片
小雄Ya
记录知识积累过程
暂无精选文章
暂无更多信息

2023年02月

  • 02.22 00:05:03
    发表了文章 2023-02-22 00:05:03

    架构整洁之道-08 设计原则-依赖倒置原则DIP

    依赖倒置原则的定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
  • 02.22 00:04:34
    发表了文章 2023-02-22 00:04:34

    架构整洁之道-07 设计原则-接口隔离原则SIP

    接口隔离原则 Interface Segregation Principle,ISP - 客户端不应该依赖它不需要的接口 - 类间的依赖关系应该建立在最小的接口上
  • 02.22 00:03:39
    发表了文章 2023-02-22 00:03:39

    架构整洁之道-06 设计原则-里氏代换LSP

    里氏替换原则 Liskov Substitution Principle,LSP Inheritance should ensure that any property proved about supertype objects also holds for subtype objects 继承必须确保超类所拥有的性质在子类中仍然成立。
  • 02.22 00:02:59
    发表了文章 2023-02-22 00:02:59

    架构整洁之道-05 设计原则-开闭原则OCP

    开闭原则 Open Closed Principie ,OCP 软件实体的行为应当不是修改实体,而是对实体进行扩展。
  • 02.22 00:01:43
    发表了文章 2023-02-22 00:01:43

    架构整洁之道-04 设计原则-单一职责SRP

    架构设计原则主要作用是让我们明确如何在类中安排我们的程序和数据结构,以及这些类之间的关系应该如何建立。SOLID原则的目标是创建中层软件架构,满足:容忍改变、易于理解、基础组件可以用在多个软件系统中。
  • 02.22 00:01:09
    发表了文章 2023-02-22 00:01:09

    架构整洁之道-03 编程范式-函数式编程

    架构设计另一个编程范式—函数式编程,其主要关心数据到数据之间的映射关系,即将计算过程抽象描述成一种表达式求值。先看下以下实现数组转换成数组对象的函数代码:
  • 02.22 00:00:41
    发表了文章 2023-02-22 00:00:41

    架构整洁之道-02 编程范式-面向对象编程

    编程范式:范式是编程的方式,和语言无关。主要有三种方式:结构化编程、面向对象编程、函数式编程。
  • 02.22 00:00:09
    发表了文章 2023-02-22 00:00:09

    架构整洁之道-01 设计与架构

    设计:实现业务时的详细的设计,比如模块的依赖设计,业务逻辑设计,前端页面的设计。更偏向于细节内容的设计 - 架构:类似搭建房子一样,先有房子的形状、布局等,一个项目的架构那就是各个模块依赖关系,或者说结构。未来设计方向的一个框架。
  • 02.21 23:58:36
    发表了文章 2023-02-21 23:58:36

    TypeScript | 设计模式09 - 装饰者模式

    装饰模式又称为包装模式,对象被包装后,还可以继续包装添加新的功能,从而扩展对象的功能,通过装饰模式可以使系统更具有弹性,且其遵循了面向对象原则:对外开放,对修改关闭。
  • 02.21 23:57:50
    发表了文章 2023-02-21 23:57:50

    TypeScript | 设计模式06 - 适配器模式

    适配器模式 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
  • 02.21 23:57:18
    发表了文章 2023-02-21 23:57:18

    TypeScript | 设计模式05 - 代理模式

    为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。 比如,某对象需访问目标对象,但由于某种情况,不适合或不能直接访问目标对象,通过一个中介进行访问,这个中介就是代理对象。
  • 02.21 23:55:33
    发表了文章 2023-02-21 23:55:33

    TypeScript | 设计模式04 - 建造者模式

    建造者模式 也叫做 生成器模式
  • 02.21 23:54:57
    发表了文章 2023-02-21 23:54:57

    TypeScript | 设计模式03 - 工厂模式

    工厂,是创建产品的地方。在软件设计中的工厂模式,就是封装和管理对象的创建。工厂模式,具体划分的话,有简单工厂模式和工厂方法模式,根据抽象程度划分,有工厂方法模式和抽象工厂模式
  • 02.21 23:54:04
    发表了文章 2023-02-21 23:54:04

    TypeScript | 设计模式02 - 原型模式

    原型模式 用一个已经创建的实例为原型,通过复制该原型实例来创建一个和原型相同或类似的新对象。简单说,通过克隆对象来实现一个新的对象。
  • 02.21 23:53:27
    发表了文章 2023-02-21 23:53:27

    Koa2 接收post时,body值undefined

    本来想通过koa快速搭建一个简单的服务时并测试文件上传的过程,然后使用postman请求时,获取上传的form-data中文件的水,ctx.request.body却一直是undefined?
  • 02.21 23:52:21
    发表了文章 2023-02-21 23:52:21

    从上传图片的过程认识Stream 和Buffer

    遇到这样的业务场景:一张图片,传递给第三方(第三方以接口形式接收),且图片是二进制数据,是binary类型。 在我的初印象中,对于图片的操作都会转化成 stream或者base64,如果传递二进制数据是不是应该传递的是一些二进制字符串?还是buffer类型?还是Stream?
  • 02.21 23:51:53
    发表了文章 2023-02-21 23:51:53

    Docker 部署Node服务

    以前部署项目时候总会遇到本地环境和线上环境不一致产生排查困难的问题。在使用window系统的电脑开发学习时,但想要学习linux系统的一些操作或者项目的部署时,还需要一台服务器或者一个虚拟机,而Docker不仅部署方便而且更安全,Docker容器是个比较轻量的,占用资源少,成本低等等众多优势。所以,Docker 势必是程序员必会的一个工具之一。
  • 02.21 23:51:10
    发表了文章 2023-02-21 23:51:10

    TypeScript|设计模式01-单例模式

    本文首先谈到单例模式,顾名思义,就是在整个系统中只有一个对象,且该对象应当是全局性的。在架构设计的过程,可以想想哪些内容是需要考虑一个全局唯一的,像系统的回收站,只能打开一个;再比如,日志应用,是都可以考虑使用单例模式?
  • 02.21 23:50:36
    发表了文章 2023-02-21 23:50:36

    TypeScript|设计模式00

    设计模式是软件开发过程中总会涉及到一部分知识,是程序员必备的知识点。准备使用Type Script边巩固typescript边学习设计模式。
  • 02.21 23:49:57
    发表了文章 2023-02-21 23:49:57

    面试常考的问题:如何保证消息不丢失

    使用MQ的目的:对系统进行解耦,流量控制(高可用和高性能问题)
  • 02.21 23:49:22
    发表了文章 2023-02-21 23:49:22

    消息队列使用场景

    说到消息中间件,我使用比较多的就是RabbitMQ。在分布式系统中,不同模块之间的通信,除了可以使用 RPC方式进行调用外,MQ也是另外一种方式,也是进程之间进行通信的一种方法。 消息队列:传递消息的队列。参与传递消息的双方称为生产者、消费者。生产者和消费者可以只有一个实例,也可以集群部署。
  • 02.21 23:48:45
    发表了文章 2023-02-21 23:48:45

    SQL语句命中索引,但还是执行很慢

    MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值(默认值10s)的SQL,则会被记录到慢查询日志中。
  • 02.21 23:47:49
    发表了文章 2023-02-21 23:47:49

    从Promise结构到Promise实现

    nodejs面试时,会常常被问到promise的相关实现和原理,甚至还有现场写个Promise的实现。所以首先对Promise要有一定的了解。
  • 02.21 23:47:09
    发表了文章 2023-02-21 23:47:09

    HTTP协议的三次握手四次挥手

    TCP 提供连接(Connection),让双方的传输更加稳定、安全。TCP 是一个面向连接的协议(Connection -oriented Protocol),说的就是 TCP 协议参与的双方(Host)在收发数据之前会先建立连接。
  • 02.21 00:40:08
    发表了文章 2023-02-21 00:40:08

    Nodejs 必知的「事件循环」

    JavaScript引擎本身不实现事件循环机制。浏览器中的事件循环由浏览器实现的,NodeJS中事件循环主要是由底层Libuv库实现的。 Libuv库是事件驱动的,其封装和统一了不同平台的API实现。NodeJS的跨平台和事件循环机制都是通过Libuv库实现的。
  • 02.21 00:39:06
    发表了文章 2023-02-21 00:39:06

    架构的相关概念

    同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事)
  • 02.21 00:38:19
    发表了文章 2023-02-21 00:38:19

    MySQL篇|02一条SQL执行的历程

    当打开某一个数据库客户端,连接数据库,输入一条SQL语句,点击执行后输出其结果。执行的过程中,发生了什么?
  • 02.21 00:37:46
    发表了文章 2023-02-21 00:37:46

    MySQL篇|01MySQL体系结构

    mysql是目前各大公司通用的数据库。无论在工作时还是在面试,都会接触到MySQL涉及到的相关问题。 优势: - 免费 - 体积小,速度快 - 简单易用,维护成本低 - 兼容性好,支持多种操作系统 - 支持多种开发语言 - 易扩展、集群、高可用 - 支持事务、MVCC、4种隔离级别等
  • 02.21 00:37:13
    发表了文章 2023-02-21 00:37:13

    缓存—Redis穿透、并发、雪崩

    系统收到用户频繁查询请求时,先从缓存中查找数据,如果缓存中有数据,直接从缓存中读取数据,返回给请求方;如果缓存中没有数据,则从数据库中读取数据,然后再更新到缓存中,这样下次再次获取时从缓存中获取。
  • 02.21 00:36:24
    发表了文章 2023-02-21 00:36:24

    缓存—Redis持久化RDB

    RDB快照,将某一时刻的内存数据生成快照(二进制的形式)写入磁盘。 AOF是记录操作,RDB是某一时刻的数据快照。所以,在数据恢复时,只需直接把RDB文件读入内存,完成快速恢复
  • 02.21 00:35:44
    发表了文章 2023-02-21 00:35:44

    缓存—Redis持久化AOF方式

    - AOF日志:记录所有的操作命令,并以文本的形式追加到文件中 - RDB快照 :将某一时刻的内存数据,以二进制方式写入磁盘 - 混合持久化:Redis4.0版本后新增混合持久化方式,集成RDB和AOF的优点
  • 02.21 00:34:54
    发表了文章 2023-02-21 00:34:54

    缓存—Redis

    谈及缓存,在软件开发时经常用到缓存是Redis,算是使用最广法的缓存中间件。 当然,在面试的过程中,Redis也是经常被询问的题目
  • 02.21 00:34:17
    发表了文章 2023-02-21 00:34:17

    缓存的认识

    缓存是架构设计中一个重要的手段。缓存的主要特点是技术比较简单,同时对性能提升的效果又很显著,所以缓存在很多业务场景中被使用到。
  • 02.21 00:33:29
    发表了文章 2023-02-21 00:33:29

    PM2 工具的认识与使用

    PM2是node进程管理工具。简化node应用管理的繁琐任务,如性能监控,自动重启,负载均衡
  • 02.21 00:32:40
    发表了文章 2023-02-21 00:32:40

    为什么使用RPC

    Remote Process Call 远程过程调用。 你对rpc的理解是什么?客户端调用服务端时,就像调用本地函数一样,直接使用并得到结果。
  • 02.21 00:31:52
    发表了文章 2023-02-21 00:31:52

    Etcd 实现分布式锁的分析

    锁,主要是用来解决并发情况时对共享资源的使用时互斥控制。
  • 02.21 00:30:57
    发表了文章 2023-02-21 00:30:57

    Etcd 认识第二篇

    etcd的整体架构 - 客户端层 - Clientv3/etcdctl客户端。用户通过命令行或者客户端调用api方式调用使用 - 客户端层提供负载均衡和节点间故障转移等特性
  • 02.21 00:30:09
    发表了文章 2023-02-21 00:30:09

    系统的三高指标

    前面我们将功能性的需求几乎都已经都陈列出来,这些几乎是从外部因素考虑的。但对于运行系统的环境,以及系统的并发能力也是我们需要考虑的,这部分可称为非功能需求。 非功能性需求包括:可用性、并发能力、性能、安全防护能力、水平扩容缩容能力、运维/运营成本等
  • 02.21 00:28:56
    发表了文章 2023-02-21 00:28:56

    Etcd 初步认识

    近期在接触的新项目中在使用Etcd,但是在使用的过程中公司对其的使用仅使用服务注册的功能,并未将其发挥真正的用处。学习一波,将来可以在项目中使用进行改进。
  • 02.21 00:28:17
    发表了文章 2023-02-21 00:28:17

    Golang 反射

    Go语言是静态编译类语言,定义变量时就已经知道其是什么类型,但是我们在使用过程中有时候会遇到参数时interface{}类型的参数。那么,调用时就可以传递任何类型的参数,那么在函数内部想要知道传递的是什么类型的参数就需要使用反射。
  • 02.21 00:27:39
    发表了文章 2023-02-21 00:27:39

    Golang 同步原语:sync 包

    资源竞争:多个goroutine同时竞争同一块内存时,就无法知晓谁先访问,结果也无法预料。 所以,我们需要确保共享内存资源,只有一个协程执行能够操作。
  • 02.21 00:26:48
    发表了文章 2023-02-21 00:26:48

    Golang 高效并发模式

    前几篇对并发编程基础元素goroutine、channel、sync包有所了解,接下来可利用这部分内容组成可使用的并发模式。
  • 02.21 00:26:08
    发表了文章 2023-02-21 00:26:08

    Golang 协程

    Go语言中,没有线程概念,只有协程goroutine。 go语言的并发是由go自己决定,对于开发者是透明的,仅需编码时告知启动几个goroutine即可,其余均不关心 和线程相比: - 协程更轻量,一个程序可以启动成千上万个goroutine - 协程是被go runtime 调度执行,线程,由操作系统调度执行。
  • 02.21 00:25:16
    发表了文章 2023-02-21 00:25:16

    Golang 不可缺少的指针

    指针,变量在内存中的存储位置,即内存地址 程序运行时数据会存储在内存中,每个存储数据的内存都会抽象为一系列具有连续编号的存储空间,这个编号就是内存地址。
  • 02.21 00:23:58
    发表了文章 2023-02-21 00:23:58

    Go调用C/C++的小demo

    go 调用 c/c++ 函数的实现方式有: - 直接嵌套在go文件中使用,最简单直观的 - 直接引用 c/c++ 文件的形式,层次分明,容易随时修改看结果的 - 导入动态库 .so 或 dll 的形式,最安全但是相对会比较慢的
  • 02.21 00:23:12
    发表了文章 2023-02-21 00:23:12

    JS 中 this 关键字

    关键字this是什么? **用来表示一个上下文对象,用于“传递” 一个对象的引用。** 观察以下例子,可以发现 add函数需要传递对象当作参数,而addNo函数仅需绑定对象,然后通过使用this就可以访问到对象内的属性。add函数这种显示传递上下文对象在复杂的模式中,也会导致混乱,反而使用this则不会这样。
  • 02.21 00:22:28
    发表了文章 2023-02-21 00:22:28

    Node 进程

    在操作系统中,对进程的解释:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。 - 是应用程序的一次运行过程(动态概念) - 是系统分配和调度资源的基本单位(进程是一般由程序、数据集合和进程控制块三部分组成) - 每个进程有自己独立的空间地址,数据栈(各进程间数据不共享,可通过其他方式进行通信)进程一般有初始态,执行态,等待状态,就绪状态,终止状态五种状态
  • 02.21 00:21:06
    发表了文章 2023-02-21 00:21:06

    Node 中 Buffer的理解

    Buffer对象,是Node的核心模块,在面试中也是会频繁被问到一个考题,如果没有对其深入探究,可能就跟我一样只会用,一旦面试官扩展问些问题可能就不会了。反正,当时我也只能回答说:目前涉及到的业务对Buffer模块用的比较少,但是Buffer对象可以对于一些字符串传输无法满足业务功能和性能上得到有效的优化。
  • 02.21 00:20:19
    发表了文章 2023-02-21 00:20:19

    Node 与 Go 的认识

    因工作需求原因导致我的技术栈一直都在变化,从大学到现在,语言从Java 到 C# 到 Node,再到现在的Go。朋友都会虚假客套你一句赞叹:很厉害,会的语言很多。其实,只有我知道,我属于会而不精系列。所以我这种P民,我还是觉得我应该专注做一件事,深入研究,做好,做到极致。但唯一庆幸的是我一直都在做后端开发。“语言只是工具”。是的,但我还是觉得应该专精一种,再扩展其他旁系。 废话不闲聊,今日话题主要是想聊下我对Node 和Go的一些认识和理解。
  • 02.21 00:19:39
    发表了文章 2023-02-21 00:19:39

    Golang 中 Context 的理解

    我以前对Context的理解,就是从字面上理解:上下文,一个请求链路中一直存在的某信息。打个比方,Client请求A-Service到B-Service,B-Service再到C-Service,在这个请求链路中,上游就会将内容传递给下游,A-->B,B--->C是保持一个请求过程的。Context是程序单元的一个运行状态、现场、快照。结合这句话,我对Context的理解是Context用于保证一个Request在同一个生命周期内。 在Go语言中,程序单元指的就是Goroutine。 所以,一个Request,可能会在多个goroutine中去处理,多个goroutine可能共享Reque
  • 发表了文章 2023-02-22

    架构整洁之道-08 设计原则-依赖倒置原则DIP

  • 发表了文章 2023-02-22

    架构整洁之道-07 设计原则-接口隔离原则SIP

  • 发表了文章 2023-02-22

    架构整洁之道-06 设计原则-里氏代换LSP

  • 发表了文章 2023-02-22

    架构整洁之道-05 设计原则-开闭原则OCP

  • 发表了文章 2023-02-22

    架构整洁之道-04 设计原则-单一职责SRP

  • 发表了文章 2023-02-22

    架构整洁之道-03 编程范式-函数式编程

  • 发表了文章 2023-02-22

    架构整洁之道-02 编程范式-面向对象编程

  • 发表了文章 2023-02-22

    架构整洁之道-01 设计与架构

  • 发表了文章 2023-02-21

    TypeScript | 设计模式09 - 装饰者模式

  • 发表了文章 2023-02-21

    TypeScript | 设计模式06 - 适配器模式

  • 发表了文章 2023-02-21

    TypeScript | 设计模式05 - 代理模式

  • 发表了文章 2023-02-21

    TypeScript | 设计模式04 - 建造者模式

  • 发表了文章 2023-02-21

    TypeScript | 设计模式03 - 工厂模式

  • 发表了文章 2023-02-21

    TypeScript | 设计模式02 - 原型模式

  • 发表了文章 2023-02-21

    Koa2 接收post时,body值undefined

  • 发表了文章 2023-02-21

    从上传图片的过程认识Stream 和Buffer

  • 发表了文章 2023-02-21

    Docker 部署Node服务

  • 发表了文章 2023-02-21

    TypeScript|设计模式01-单例模式

  • 发表了文章 2023-02-21

    TypeScript|设计模式00

  • 发表了文章 2023-02-21

    面试常考的问题:如何保证消息不丢失

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息