超越npm和yarn的包管理工具

theme: smartblue本人已参与「新人创作礼」活动,一起开启掘金创作之路。 pnpm 是什么和npm,yarn一样,pnpm是一个包管理工具。不一样的是,pnpm解决了npm和yarn一直都没有解决的痛点。在许多方面比npm和yarn更优秀。 pnpm对比npm/yarn的优点 更快速的依赖下载更高效的利用磁盘空间更优秀的依赖管理 更快速的依赖下载根据官方提供的数据↓...

iOS MVX 设计模式漫谈

由于是漫谈,所以条理性不是很强,一般是想到什么就写下什么,所以如果感觉有一些不顺的情况,敬请见谅! 开场白说到架构,首先要了解什么是架构?架构按照我的理解,是属于一种编程经验的集合和总结,在经过许多人许多年的使用之后,基本稳定下来的一种模式。通常具有以下优点:适用性强,实用性强,可复用,易修改文章将使用登录的场景分别使用 MVC、MVP、MVVM 三种模式做示例,方便进行理解与...

女朋友强依赖我!我引入IOC后,从此我们的关系微妙而稳固!

此文从面向对象设计角度分析依赖倒置原则,引入依赖注入,IOC相关内容进行探讨,文中引用女朋友案例可能引起分手风险,故理解为 new 对象。 想起在学校的时候,有一个任务就是设计一款宠物商店项目。那时候引入三层架构设计概念,分为UI(表现层)、BLL(业务逻辑层),DAL(数据访问层)。 ▲图/ 简单三层架构示例 每一层各司其职,表现层只管负责用户的界面交互;业务逻辑层只管计算...

实践GoF的23种设计模式:装饰者模式

摘要:装饰者模式通过组合的方式,提供了能够动态地给对象/模块扩展新功能的能力。理论上,只要没有限制,它可以一直把功能叠加下去,具有很高的灵活性。 本文分享自华为云社区《【Go实现】实践GoF的23种设计模式:装饰者模式》,作者: 元闰子。 简介 我们经常会遇到“给现有对象/模块新增功能”的场景,比如 http router 的开发场景下,除了最基础的路由功能之外,我们常常还会加...

设计模式系列详解 -- 单例模式

什么是单例模式? 单例模式是一种创建型设计模式,它能够保证一个类只有一个实例,该单例对象必须由单例类自行创建,并提供一个访问该实例的全局节点。该方法可以创建一个新对象,但如果该对象已经被创建,则返回已有的对象。 例如,Windows中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。 ...

JavaScript 设计模式之代理模式

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 30 天,点击查看活动详情 现在页面上有一个香港回归最想听的金典曲目列表: <ul id="container"> <li>我的中国心</li> <li>东方之珠</li> <li>香港别来无恙</li>...

设计模式之概述篇

1、设计模式的本质 ​ 面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。 2、设计模式的目的 ​ 提高代码可读性、重用性、可靠性、可扩展性,实现“高内聚,低耦合”。 名词解释 可读性:按照规范编程,便于其他程序员阅读和理解 重用性:相同功能的代码,可以重复使用,无需多次编写 可靠性:增加功能时,对原有功能没有影响 可扩展性:增加...

图解设计模式:身份认证场景的应用

文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info 今天和大家聊一聊,如何合理的将多种设计模式放到同一个业务场景中 业务背景 最近接到一个认证的需求,C 端用户在购买公司保险时,需要先进行 实名认证确认身份 为了保证业务复用,单独将认证的逻辑拆分为微服务模块 C 端用户下单购买保险的逻辑大致如下 先说下关于认证相关的一些基本知识。简单...

【Go实现】实践GoF的23种设计模式:装饰者模式

简介我们经常会遇到“给现有对象/模块新增功能”的场景,比如 http router 的开发场景下,除了最基础的路由功能之外,我们常常还会加上如日志、鉴权、流控等 middleware。如果你查看框架的源码,就会发现 middleware 功能的实现用的就是装饰者模式(Decorator Pattern)。 GoF 给装饰者模式的定义如下: 简单来说,装饰者模式通过组合的方式,...

JavaScript 设计模式之发布订阅者模式

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第 28 天,点击查看活动详情。 观察者模式(Observer Pattern)又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。 先来看一个需求,天气预报系...