《JavaScript设计模式》初次笔记——wsdchong

2023-10-26

《JavaScript设计模式》初次笔记

前言

设计模式一直久仰大名,但是没有去花时间去了解,于是今天特意花时间去看《JavaScript设计模式》(2013年6月出版)和w3cschool上的设计模式。然后做了一些笔记。

以《JavaScript设计模式》为目录,以w3cschool上的设计模式为补充。

讲的内容有三:设计模式、JavaScript设计模式、其他(模块化的JavaScript设计模式、jQuery设计模式、jQuery插件设计模式)。

学习目的:尝试性地了解JavaScript设计模式,方便看源码。

阅读感受,《JavaScript设计模式》讲除开头部分其他部分太官方和书面了,一点也不利于理解。连打个比方都不会。而且顺序也不合理,至少我没get到。不过w3cschool上的设计模式超出我的预期,总结得比《JavaScript设计模式》好。不过《JavaScript设计模式》的目录我还是比较能接受的。

设计模式

设计模式是解决软件设计中常见问题的可复用方案。不管是探索任何编程语言,这都是通用的。推荐设计模式的原因有二,一是设计模式是前人总结的经验,借助这些经验,我们可以解决棘手的问题和优化代码。二是设计模式还是我们用来描述解决方案的常用词汇,我们用设计模式的词汇去描述解决方案的时候会比描述语法更简单。

前置知识:JavaScript、闭包、原型继承等。

设计模式的原由

设计模式来源于土木工程师亚历山大的早期作品,总结他解决设计问题方面的经验,在1977年发表了《建筑设计语言》的文章。

之后软件工程师把亚历山大编写的建筑设计原则纳入设计模式的文档,成为开发人员改进编程技巧的语言。在1995年GoF出版《设计模式:可复用面向对象软件的基础》。

GoF发表的著作大大推进了设计模式概念在编程领域的发展,它描述了许多开发技术和误区,并列举了23面向对象设计中最常用的经典设计模式。

模式

模式是一种可复用的解决方案,设计模式有三大好处:模式是已经验证的解决方案,模式很容易被复用,模式复用表达力。

学习设计模式是需要先了解原始模型proto-pattern。原始模型是一种没有经过模式测试的设计模式,是值得在社区分享的特殊解决方案,不过产生时间短,还没有机会对其进行严格的审查。(设计模式需要经过严格的审查)

模式具有三法则:适合、实用、适用;

设计模式的结构、编写设计模式文件不细叙述了。(毕竟目前我只是想用模式,还不想去设计。)

反模式:如果认为模式代表最佳实践,那么反模式就代表教训。反模式是一种值得记录的不良设计。

设计模式类别

23种设计模式:大体分为三类

创建型模式,专注于处理对象创建机制。共五种:Prototype(原始模型模式),Singleton(单例模式),Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式)。

结构型模式,与对象组合有关,用于找出在不同对象之间建立关系的简单方法。共七种:Facade(门面模式),Adapter(适配器模式),Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式), Bridge(桥梁模式), Composite(合成模式)。

行为型模式,专注于改善或简化系统中不同对象之间的通信。共十一种: Visitor(访问者模式),Iterator(迭代子模式), Mediator(调停者模式),Observer(观察者模式),Command(命令模式), Interpreter(解释器模式), Memento(备忘录模式), State(状态模式), Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)

JavaScript设计模式

创建型模式,四种。Constructor(构造器)模式、Prototype(原始模型模式),Singleton(单例模式),Factory(工厂模式)

结构型模式,三种。Facade(外观模式),Decorator(装饰模式), Flyweight(享元模式)。

行为型模式,三种。Mediator(中介者模式),Observer(观察者模式)、Command(命令模式)。

组件的模式,三种。Module、Revealing Module、Mixin。

MV模式,三种。MVC、MVP、MVVM

补充:后端架构模式,六种。业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式、服务定位模式。

我觉得设计模式应该从定义、优点、缺点、适用场景这四个角度来讲。书本上的讲法太死板了,读得迷迷糊糊。(用途和实现我就没细说了)

创建型模式

Prototype模式:基于现有对象模板,通过克隆方式创建对象的模式。

优点:没看懂;性能提高,逃避构造函数的约束

缺点:没看懂;逃避构造函数的约束。

适用场景:资源优化场景;类初始化需要消耗许多资源,new产生一个对象需要非常繁琐的数据准备;

在实际项目中,原型模式很少单独出现,一般和工厂模式一起出现,通过clone的方法创建一个对象,然后由工厂方法提供给调用者。

与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。

Factory模式:可以在不对客户端暴露创建逻辑的情况下创建对象,通过一个共同接口来指向新创建的对象。

优点:不需要管对象是怎么构成的,只需要通过接口便可创建出对象。

缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中的类的个数倍增,增加了复杂性。

适用场景:spring就用到工厂设计模式。

Singleton模式:类的实例化次数只能一次。

优点:在内存中只要一个实例,减少内存开销,避免资源多重占用;

缺点:没有接口、不能继承,一个类只需要关系内部逻辑,不用关系怎么实例。

适用场景:一个全局使用的类频繁地创建与销毁。

Constructor模式:奇奇怪怪的模式,在23中设计模式中就没提到,应该是JavaScript所特有的。书面解释是在内存已分配给对象的情况下,初始化新创建对象的特殊方法。mmp,什么意思。意淫式描述,就自己懂,别人都看不懂。

在这里优缺点我就不讲了,不懂。但是一些相关的说明可以写。

JavaScript不支持类的概念,但支持与对象一起用的constructor函数。通过在构造器前面加new关键字,就可以实例化一个新对象。

在构造器内,关键字this引用新创建的对象。

结构式模式

Facade模式:隐藏系统的复杂性,并向客户端提供一个客户端可以访问系统的接口。提供可用性。

优点:易于使用,实现该模式占用空间小。

缺点:改东西麻烦,继承重写都不合适。

适用场景:客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。

Decorator模式:允许向一个现有的对象添加新的功能,同时又不改变其结构。它是作为现有的类的一个包装。

适用场景:扩展一个类的功能;动态增加功能,动态撤销。

Flyweight模式:重用现有的同类对象。用于减少创建对象的数量,以减少内存占用和提高性能。

适用场景:用于优化重复、缓慢及数据共享效率低的代码。

行为式模式

Command模式:一种数据驱动的设计模式。将一个请求封装成一个对象,从而使得开发者可以用不同的请求对客户进行参数化。

适用场景:GUI;CMD;

Observer模式:当一个对象被修改时,自动通知它的依赖对象。

懂好像是懂了,但优缺点是啥呀。

Mediator模式:用一个中介对象来封装一系列的对象交互,中介者不需要显式地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

适用场景:MVC框架,C就是M和V的中介者。

模块化的模式

Module模式:一种为类提供私有和公有封装的方法,在JavaScript中用于模拟类,使得一个单独的对象拥有公有/私有方法和变量,从而屏蔽来自全局作用域的特殊部分。

Module模式使用闭包封装“私有”状态和组织。它提供了一种包装混合公有/私有方法和变量的方式,防止其泄漏至全局作用域,并与别的开发人员的接口冲突。

优点:封装不变部分,扩展可变部分;提供公共代码,便于维护。

缺点:每一个不同的实现都需要一个子类来实现,导致类的个数增加。

Revealing Module模式:对Module模式的改进,能在私有范围内简单定义所有的函数和变量,并返回一个匿名对象,它拥有指向私有函数的指针。

Mixin模式:在JavaScript中,继承Mixin看作为一种通过扩展收集功能的方式。使对象通过较低复杂性借用功能,非常适合JavaScript的对象原型。

MV架构模式

MVC模式:架构设计模式,通过关注点分离改进应用程序的组织。它强调业务数据Model与视图View分离,第三个组件Controller管理逻辑和用户输入。

在1979年设计出来,在1995年被深入阐述。

MVC实际上是Observer模式、Strategy模式和Composite模式的变体。它

是实现方式中也可以使用Factory模式和Template模式。

MVP模式:MVP是MVC的一种衍生模式,1990年被创造出来。跟适合Web框架。Presenter表示表示器,是一个包含用于View的用户界面业务逻辑的组件。

MVVM模式:一种基于MVC和MVP的架构模式,利用声明式数据绑定来实现把View工作从其他层分离。有助于同一个代码库中UI和开发工作的同时进行。2005年被发布。

优点:并行开发更容易;减少代码背后所需业务逻辑量;单元测试更容易;

缺点:对于简单UI,有些大材小用;数据绑定是声明式的,比命令式代码更难调试;在大型应用程序中,预先设计大量VM可能很困难。

补充

下面这六个模式,我以前用过,没想到这也是模式。

业务代表模式:用于对表示层和业务层的解耦;

数据访问对象模式:POJO、接口、接口实现类

前端控制器模式:控制器、调度器、视图

组合实体模式、拦截过滤器模式、服务定位器模式:略

其他

模块化的JavaScript设计模式

好烦,这本书讲的这部分内容,没法记笔记,也许我层次没达到,反正我是没看懂的。

AMD和CommonJS模块。

我打算参考《前端技术架构与工程》的第四章。在这里还是以设计模式为主,剩下的部分暂时不作过多深入。

jQuery中的设计模式

可惜这本书是2013年出版的,那时候流行的是jQuery,如果晚几年可能就会介绍React的设计模式。不过这里的 jQuery也可以借鉴,可是这里也过于书面了。

Composite模式、Adapter模式、Facade模式、Observer模式、Iterator模式、延迟初始化、Proxy模式、Builder模式;

jQuery插件设计模式

模式、Lightweight Start模式、完整的widget factory、嵌套命名空间插件模式、自定义事件插件模式(使用widget factory)、使用DOM to Object Bridge模式的原型继承、jQuery UI Widget Factory Bridge模式等;

全局选项和单词调用可重写选项、高可配和高可变的插件模式、插件超越模式;

命名空间模式、基础、高级;

总结

今天算是顺了一遍设计模式。《JavaScript设计模式》的前面一部分还好,后面的部分简直扎心,领悟不到,还好有w3cschool,可以看懂一些设计模式。不过还是很有帮助的。也算是揭开了设计模式的面纱,之前只是简单了解。

之前的23种设计模式我是听说过,创建型模式、结构型模式、行为模式有过大致了解。这次看了这本书和w3cschool,还补充了组件化模式、框架模式、数据访问模式。突然发现原来之前也用过模式,只是没像现在一样去定义。

我觉得学习设计模式最重要的是理解思想,只要领悟了宗旨,才能万变不离其宗。

设计模式的思想

我阅读之后的感受是,设计模式就是一种思想,提高可复用性和维护性,使开发高效,开发成本降低,危险降低。

博客园上的设计模式的理论思想 讲的不错。

同时学习设计模式必须学以致用,如果不用的话,不用深入。

设计模式的内容

范围 创建型 结构型 行为型
Factory Method(工厂方法) Adapter(类) (适配器) Interpreter(解释器)
Template Method(模版方法)
对象 Abstract Factory(抽象工厂)
Builder(建造者)
Prototype(原型)
Singleton(单例)
Bridge(桥接)
Composite(组合)
Decorator(装饰者)
Façade(外观)
Flyweight(享元)
Proxy(代理)
Chain of Responsibility(职责链)
Command(命令)
Iterator(迭代器)
Mediator(中介者)
Memento(备忘录)
Observer(观察者)
State(状体)
Strategy(策略)
Visitor(访问者)

在CSDN上看到的这篇创建型模式、结构型模式和行为型模式之间的关系很不错。

1、创建型模式
软件设计的过程是循序渐进的,一步一步来的。在软件设计中对象的创建和对象的使用是分开的,因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里就提供了多种创建型模式进行选择使用。
2、结构型模式
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。所以也有多种结构型模式可供开发人员选择使用。
3、行为型模式
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高。

此外组件化、框架模块、架构模块都是根据设计模式使开发可复用和可维护。一切为了提高开发效率,便于维护。

以上就是我的初次笔记,设计模式没讲得通俗易懂,不过以后不断学习不断理解,再写自己的心得。

更新地址:GitHub

更多内容请关注:CSDNGitHub掘金

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《JavaScript设计模式》初次笔记——wsdchong 的相关文章

  • CORS 问题。 Flask <-> AngularJS

    使用 angularjs 客户端应用程序和提供 api 的 Flask 应用程序启动一个新项目 我使用 mongodb 作为数据库 我必须立即排除 jsonp 因为我需要能够跨不同端口进行 POST 因此 我们为 Angular 应用程序设
  • MediaRecorder:从多个麦克风录制

    我目前正在使用媒体记录器 https developer mozilla org en US docs Web API MediaRecorder用于在应用程序内录制音频的 API 有没有办法从多个输入设备 例如两个麦克风 进行录音 我可以
  • 使用 AngularJs NgResource 从本地主机加载 JSON 文件

    Overview 我正在构建一个应用程序 在 MAMP 上运行 该应用程序包含联系信息 一旦该部分正常运行 该应用程序将扩展以包含更多数据 例如项目名称和截止日期 问题 当用户访问时 projects php project 我希望他们看到
  • 有没有比 setTimeout 更准确的方法来创建 Javascript 计时器?

    一直困扰我的是事情的不可预测性setTimeout Javascript 中的方法是 根据我的经验 计时器在很多情况下都非常不准确 我所说的不准确是指实际延迟时间似乎或多或少有 250 500 毫秒的差异 尽管这并不是一个很长的时间 但当使
  • Google Maps API v3:在 Firefox 中未触发自定义标记的点击事件

    创建了一个地图 我试图使其具有类似于 我的地图 的功能 我的右侧有两个下拉列表 根据这些 ddl 中的选择 您可以添加自定义标记 图标 您选择标记类型 然后单击地图右上角的 按钮 然后单击要添加标记的位置 我的问题是 这在 IE Safar
  • 固定长度的随机数

    我想生成一个 0 9 数字且长度 5 的随机整数 我尝试这样做 function genRand min max for var i 1 i lt 5 i var range max min 1 return Math floor Math
  • 如何识别当前打开的每个单独的浏览器窗口?

    如何使用 javascript 唯一地识别当前为所有主要浏览器打开的每个单独的浏览器窗口 让我解释一下我需要了解的内容 并考虑以下场景 我有 3 个当前打开的浏览器窗口 任何现代浏览器 即 Chrome Firefox 等 每个窗口都包含多
  • 无限水平滚动 Div

    我需要一个 div 当您将鼠标进一步向右或向左移动时 它会水平滚动 我发现 Smooth Div Scroll 插件 http www smoothdivscroll com 非常接近我的需要 然而 这存在一些问题 我需要能够使滚动元素从设
  • 为什么用 < 对 JS 数字数组进行排序有效?

    在 JavaScript 中对数字数组进行排序时 我不小心使用了 lt 代替通常 https stackoverflow com questions 1063007 how to sort an array of integers corr
  • 获得焦点时如何移动文本框视口?

    我有一个文本框 其中可能包含大于文本框大小的字符串 当我打字时 文本框 视口 总是移动以显示我输入的最后一个字符 例如 当您在 SO 问题中写下一个非常大的标题时 A 问题是 如果文本框失去焦点 当它再次聚焦时 视口总是设置在文本的开头 而
  • Google Analytics 服务器端授权获取页面浏览计数分析数据并将其显示在首页上的随机访问者

    如何显示您网页的访问者计数 而无需像 Google Analytics 那样登录或进行身份验证 我正在尝试实施 Google Analytics 服务器端授权来获取页面浏览计数分析数据并将其显示给首页上的随机访问者 我阅读了他们的文档并找到
  • 解密签名并验证 JWT

    我知道还有其他库可以让我更轻松地使用 JWT 在 Node js 中 在本例中 我使用 crypto js 以手动方式学习 JWT 以下给了我令牌 var header alg HS256 typ JWT var wordArrayHead
  • 表格中与文本一起内嵌 D3 迷你图

    假设有一个这样的表 var data Orange Orange 6 3 3 2 5 Apple Red 6 2 6 5 5 Grape Purple 9 1 2 3 1 我希望将字符串表示为字符串 但将数字数组表示为 D3 折线图 如果这
  • 将 Blob 设置为 iframe 的“src”

    以下代码在 Chrome 中完美运行 但它不适用于 IE 有人可以告诉我这里出了什么问题吗 iframe src 也设置为 blob 如下所示
  • 在 Promise 中中止 ajax 请求

    我正在构建一个表单验证并学习承诺 我决定使用承诺模式实现异步验证函数 var validateAjax function value return new Promise function resolve reject ajax data
  • 如何在phonegap中同时使用相机API选择多个图像?

    如何同时选择或拾取多个图像phonegap camera API使用时Camera DestinationType FILE URI 我一次只能选择一张图像 我可以使用以下命令在 SD 卡中选择多个文件 包括 txt pdf this ht
  • 如何将嵌套对象数组转换为 CSV?

    我有一个包含嵌套对象的数组 例如 name 1 children name 1 1 children 1 2 id 2 thing name 2 1 children 2 2 name 3 stuff name 3 1 children 3
  • 我想在使用 Jest Snapshots 时获得图像文件名/路径

    我已经开始使用Jest https facebook github io jest 在一个新项目中有很多 我现在正在使用Snapshot https facebook github io jest docs tutorial react h
  • Angular 2.0 路由 - TS 2305 ...没有导出成员“ModulewithProviders”

    我正在关注一个角度2 0教程在 Angular JS 官方上site https angular io docs ts latest tutorial toh pt5 html并在路由练习结束时陷入困境 该代码上次有效 但前几天我点击 np
  • Google 脚本过滤一个值的范围

    我想过滤第 1 列中仅包含 Bob 特定值的行的 google 工作表范围 到目前为止 我的代码允许我过滤out第 1 列中有 Bob 的行 我需要相反 我想返回第 1 列中只有 Bob 的行 因此 其中 filterSettings 不是

随机推荐

  • 【微机原理与接口技术】8253+8255实验

    目录 实验内容 1 8253定时实验 利用8253完成1秒的延时 2 利用8253硬件延时控制跑马灯运行 3 8255键盘显示实验 实验内容 1 8253定时实验 利用8253完成1秒的延时 2 利用8253硬件延时控制跑马灯运行 3 82
  • 蓝桥杯——基础——数列排序

    问题描述 给定一个长度为n的数列 将这个数列按从小到大的顺序排列 1 lt n lt 200 输入格式 第一行为一个整数n 第二行包含n个整数 为待排序的数 每个整数的绝对值小于10000 输出格式 输出一行 按从小到大的顺序输出排序后的数
  • 【matlab】matlab算法封装成工具包提供给程序调用

    说明 1 非进程通讯协议 无需在电脑上安装完整版的matlab开发环境 2 本项目以C 为案例 调用的语言不限 操作流程基本相同 一 准备工作 1 安装MATLABWebAppServerSetup集成开发环境 2 安装Visual std
  • 网络综合布线七大子系统详解(图解)

    根据 GB50311 2007 综合布线系统工程设计规范 国家标准规定 网络综合布线七大子系统包括 1 工作区子系统 2 水平子系统 3 垂直子系统 4 管理间子系统 5 设备间子系统 6 进线间子系统 新加的 7 建筑群子系统 工作区子系
  • Unity 2017.3针对相机的DynamicResolution (比如UI分辨率不变,改变3D场景分辨率 来提高性能)

    在之前一种优化方式是改变 屏幕分辨率 https docs unity3d com 2017 3 Documentation ScriptReference Screen resolutions html 在 Unity 2017 3 中增
  • 爬虫实战1-批量获取公开政策文本

    本文未展示图片 可以跳转到我的博客园浏览代码和操作流程 博客园 艽野尘梦 目标 爬取北京市公开发布的所有人才引进相关的政策文本 准备 1 环境 Python 3 7 2 使用 selenium 库中的 webdriver 3 安装对应版本的
  • MAVEN 私有仓库搭建与配置

    一 nexus 下载安装 1 下载 官网地址 https www sonatype com nexus repository oss 由于XXX原因 官网地址可能无法下载 百度网盘 百度网盘 请输入提取码 提取码 ogjf 2 安装 lin
  • docker部署lnmp环境介绍

    lnmp 一 部署lnmp 二 测试nginx和php连接 三 测试php和mysql的连接 一 部署lnmp 1 网络规划 172 16 10 0 24 nginx 172 16 10 10 mysql 172 16 10 20 php
  • C++到底还能做什么?

    嗯 这是一位朋友发到我邮箱里面的 很奇怪 发到了gmail邮箱 而不是我常用的hotmail邮箱哈 我呢 试着回答一下 如果回答得不好 叫做肖某人学艺不精 回去重新学习再来过哈 呵呵 一家之言哈 欢迎拍装 原文如下 肖老师您好 我现在是一名
  • AngularJS 通过事件实现跨作用域传值

    跨作用域传值 跨作用域传值 可以通过 子作用域共同使用父作用域的变量或者使用 单例的service实现 这两种方式 在父级作用域或者 Service 单例的变量值改变的时候 无法实现把值再自动处理赋值给作用域 但是通过事件链 的方式就可以实
  • 页表项长度的计算方法

    Frame Number It gives the frame number in which the current page you are looking for is present The number of bits requi
  • 信息安全概念

    1 信息安全定义 国际标准化组织 lntemational Organization for Standardization IS0 息安全的定义为 为数据处理系统建立和采取技术 管理的安全保护 保护计算机硬件 软件 数据不因偶然的或恶意的
  • 创建一个报表服务器项目,创建报表服务器项目

    创建报表服务器项目 10 17 2017 本文内容 Azure DevOps Server 2020 Azure DevOps Server 2019 TFS 2018 TFS 2013 Azure DevOps Server 以前名为 V
  • 电影下载地址大集合,只要是电影就能找到

    看到很多人都想找一些奇葩 或者国内很少见的电影 你们还在百度 微盘上搜索么 还在人人影视上溜达么 以下收集各大电影网站 绝对能满足你们 如果你不是那么热爱电影 只是闲暇之余看看热门的新片 美剧 不求画质与速度的话 那么下面这几个网站已经能满
  • VB

    文章目录 变量定义 Sub过程 函数定义 控制台输入输出 switch case语句 IF语句 FOR循环语句 不等于 逻辑运算符 控制台输入回车不崩溃函数 获取外部库指针内容放到自定义类中 读ini文件 变量定义 int Dim 变量名
  • 深度学习学习率的调整

    20220626 0 引言 最近在做实验的时候 由于结果一直都不怎么好 我就在想是不是过拟合了 那就算不是过拟合 是不是根本没有学习到数据集中的信息呢 想到了这些事情 我就直接把测试集的效果跟随着训练过程直接打印出来了 当然 实际过程中 肯
  • 1.Linux命令-删除

    Linux的删除命令 在Linux下删除文件 我们使用rm命令 还有搭配相应的参数 具体的选择我们看下面看说明 rm 参数 文件名 参数说明 1 f force 忽略不存在的文件 强制删除 无任何提示 2 i interactive 进行交
  • windows下qtmqtt模块的编译安装-Qt5.12.12

    windows下qtmqtt模块的编译安装 Qt5 12 12 代码获取及编译环境 代码获取 方式1 方式2 配置编译环境 编译安装 代码获取及编译环境 代码获取 方式1 直接git拉取至本地 git clone https github
  • PyTorch显存机制简要分析

    显存开销 显存占用约为element个数的4倍 注意不会将空闲的显存释放 模型参数 模型参数的梯度 优化器状态 跟踪每个权重参数 比如记录动量 中间结果 前向传播时计算的中间结果 显存分析方法 No Nvidia smi PyTorch中即
  • 《JavaScript设计模式》初次笔记——wsdchong

    JavaScript设计模式 初次笔记 前言 设计模式一直久仰大名 但是没有去花时间去了解 于是今天特意花时间去看 JavaScript设计模式 2013年6月出版 和w3cschool上的设计模式 然后做了一些笔记 以 JavaScrip