8.1k7 分钟

# 一、前言 在 Nest.js 中,有一个非常非常鲜明的特点,就是几乎全方面的采用了 装饰器 (Decorator) 作为接口的封装,以实现 AOP 面向切面编程的编程范式。再结合其用依赖注入的形式实现了控制反转,使得整个框架和 SpringBoot 在形式上越来越接近。 那么,既然提到了装饰器,就不得不先聊一聊 AOP 面向切面编程究竟是什么,再来探讨一下 Decorator 具体是怎么实现的 AOP。 # 二、AOP 面向切面编程 AOP(Aspect-Oriented Programming,面向切面编程) 是一种编程范式,旨在将 横切关注点(cross-cutting conce
4.3k4 分钟

# 一、前言 在对 Nest.js 的介绍中提到了其以控制反转(IOC)和依赖注入(DI)为其设计理念的核心思想,因此我们有必要好好讨论一下 IOC 和 DI 到底是什么东西,尤其是 它们在 TypeScript 当中到底是怎么体现的? # 二、控制反转(IOC) 控制反转(IoC, Inversion of Control)是一种设计原则,在软件工程中用于减少代码之间的耦合度。这个原则的核心在于将传统程序中的流程控制权从程序本身转移给被调用的框架或库。 # IoC 的核心概念 传统的控制流:在传统的程序设计中,程序中的每一部分负责控制自己的行为。比如,一个主函数可能会依次调用不同的模块来执
4.1k4 分钟

# 一、Nest.js 简介 Nest.js 是一个用于构建高效、可靠和可扩展的服务器端应用程序的框架。它 完全使用 TypeScript 编写 ,但同时也 兼容纯 JavaScript 。Nest.js 结合了 OOP(面向对象编程) 、 FP(函数式编程) 和 FRP(函数响应式编程) 的特点。 其完全支持 TypeScript,并且结合了 面向切面(AOP) 的编程方式。 Nest.js 具有 Spring MVC 的风格,其中有 依赖注入 、 控制反转 等;而这些都是 借鉴了 Angualr 的成果。 先来看看在 Angular 当中,依赖注入(DI)和控制反转(IoC)是怎么体现的:
4.1k4 分钟

# 一、前言 有一说一,这可以说是我近期最糟糕的面试体验。我本来就没什么经验,紧张的要死,面对面试官强迫着自己不要紧张堆出来笑脸,可我对面的我感觉不是个人坐在那里,就是一个无情的问题提出机。他问我一个问题,我叽里呱啦讲了半天,中途我不对的地方没有帮我指出,甚至一声不吭,对我的发言完全没有任何的反应,马上又给了我下一个问题,让我感觉他是不是赶着下班?是不是不太想面我? 总而言之,这次面试到后面连我自己都不耐烦起来了,对这样的一个面试官我的发挥自然也不能算好。 讲一下题吧,总共才 40min 左右,问了一堆: # 二、题目列表 自我介绍 你平常是怎么学习前端的? 说了平常用 GitHub
13k12 分钟

# 一、前言 上个星期心血来潮,暑假带领一个小团队参加了字节跳动第六届前端青训营的进阶班并且在最后的大项目决赛当中取得了优秀奖,让我的信心有着前所未有的提升 —— 因此趁着刚开学无事,自己向身边的前辈请教了简历的编写和排版之后也准备了一份看得过去的但是仍有很多漏洞的前端开发简历,希望能够找一下实习丰富自己的实际工作与项目经历。 上个星期准备完了之后,直接在 Boss 和字节的内推投了几份简历。字节的内推投的是: 广告前端(全栈)开发实习生 - Ads Infra 岗位,因为我认为我有着一定的 Node.js 实际开发经历。我以为至少一周多之后才会给我答复吧?我趁着等待的时间先好好准备一下面试
14k13 分钟

# 一、前言 公司目前由我负责的主要有两个网页项目: 一个官网首页,纯做数据展示的; 一个官网课程资源页,用户能够点击进入课程页面,并能够阅读课程的 md 文档教程。 这两个项目都是非常单纯的通过 npm init vite@latest 创建的 Vue3+TS 项目,并且其中也都引入了目前非常流行的 ElementPlus 作为组件库。 目前多了一个新的需求:要交给我进行 SEO ,也就是 搜索引擎优化 。在这边先暂且列一些给 Vue+Vite 项目做 SEO 的一些常见方式吧: 服务器端渲染 (SSR): 由于 Vue 是一个客户端渲染的 JavaScript 框架,搜索引擎在抓
6.2k6 分钟

# 一、前言 最近刚刚实习,接到了个简单又不简单的需求:前端实现内嵌微信二维码扫码登录,而公司的技术栈用的是 Vue3+Pinia+TypeScript 。而我之前也仅仅只接触过微信小程序的微信授权登录,这种第三方 web 应用的微信授权登录还是头一次遇到。上网查了好多资料 + 问了 GPT 好久,最后整理了一下流程和大致的实现,希望对大家有所帮助~! # 二、流程梳理 # 官方流程概述 设置回调 URL:在微信开放平台注册应用时,需要指定一个回调 URL,微信会在用户授权后使用这个 URL。 用户授权:用户扫描二维码并在微信中同意授权。 微信重定向:微信将用户重定向到设置的回调 URL,同
12k11 分钟

# 前言 最近在系统性的学习 Nest.js,并且也写了点实际的东西出来。 那么为什么要特地写个文章来讲这个呢?因为在 Nest.js 当中是有自带了 RxJS 这个第三方库的,而且其中的很多 API 也是基于这个库做了很多集成,包括拦截器、异常过滤器、管道、微服务、控制器、服务等。 拦截器(Interceptors): Nest.js 的拦截器可以返回 Observable。拦截器用于在函数执行之前和之后添加额外的逻辑,它们非常适合用于日志记录、异常处理、响应转换等。 例如,你可以创建一个拦截器来转换响应数据格式或者实现缓存逻辑。 异常过滤器(Exception Filters)
18k17 分钟

# 一、前言 其实本来很早就开始打算为我的个人项目稍微的引个流了,不过由于之前一直在进行功能更新以及 bug 修复的工作,所以一直打算等把整个项目开发的能够使用了之后再写个文稍微介绍一下。就在前几天把文章资源的上传全部转移至腾讯云 COS 了之后,我才打算动笔写一写这段经历,并给出 github 仓库地址以及访问的网址,希望可以给想要学习前后端的大家一点参考。 这个项目本来是打算当成我的个人博客来用的,不过转念一想似乎这个项目其实已经完全可以算成一个个人实现的作品了,集成的功能之后也会随着更新逐渐增多,因此美其名曰 “知识分享小站” 。 项目地址:https://lit
5.5k5 分钟

由于之前的误操作,将原本的 github 图床全部删除了,因此在此处借用一下我在掘金发的图片~ # 前言 随着前端技术的发展,目前的项目部署服务已经几乎脱离了实际的服务器。市面上的各大平台都推出了他们自己的前端部署 Paas 服务,比较知名的有 Vercel、Neltify、Github Pages、Cloudflare Pages 等等。 不过受一些相关的政策或者其他因素影响,一些服务实际上是不对国内提供的,比如 Vercel 实际上在去年开始起就开始针对大陆 ip 进行了封锁。目前仍能够在国内比较顺畅的进行访问的有 Neltify、Github Pages 等。 这篇文章主要是为了解决