2021-11-22 学习计划与总结

140 阅读2分钟
  • 第八章完成
  • ResNet 验证一下 CA,为什么效果会变差
  • 虾皮笔试
  • webpack

红宝书第八章 -- 类

类构造函数和构造函数的区别是:类构造函数必须通过 new 关键词来调用

其他点没什么,类的混入有点意思

很多 JavaScript 框架(特别是 React)已经抛弃混入模式,转向了组合模式(把方法提取到独立的类和辅助对象中,然后把它们组合起来,但不使用继承)。这反映了那个众所周知的软件设计原则:“组合胜过继承(composition over inheritance)。”这个设计原则被很多人遵循,在代码设计中能提供极大的灵活性。

class Vehicle {}

let FooMixin = (Superclass) => class extends Superclass {

foo() {

console.log('foo');

}

};

let BarMixin = (Superclass) => class extends Superclass {

bar() {

console.log('bar');

}

};

let BazMixin = (Superclass) => class extends Superclass {

baz() {

console.log('baz');

}

};

function mix(BaseClass, ...Mixins) {

return Mixins.reduce((accumulator, current) => current(accumulator), BaseClass);

}

class Bus extends mix(Vehicle, FooMixin, BarMixin, BazMixin) {}

CA

加了多个 ca 出现了局部最优的情况,loss 不降,明天试试预训练效果。并且搞清楚,注意力机制的权重计算时怎么回事

webpack

  1. 通过 externals 来拒绝一些第三方库打包,但是需要在 html 模板中手动添加 CDN 连接
external: {
    juqery: 'jquery '
}  
  1. dll 对某些库进行单独打包,需要配置 webpack.dll.js 文件来实现

性能优化总结

  • 开发环境
    • 通过 HMR 热模块替换来使用减少打包时间,相当于使用缓存,只是重新打包修改过的文件
    • 通过 source-map 来优化代码调试,通过打包前后的代码映射关系来找出错误位置
  • 生产环境
    • oneOf 来优化打包构建的速度,如果不设置 oneOf 的话每一文件都会经过所有的 loader 的检查,但是使用 oneOf 包裹的话,只会匹配一个 loader
    • babel 缓存类似于开发环境的 HMR,如果有很多文件组成的一个 chunk,由于一个文件的修改,打包就要所有重新一起打包,使用 babel 缓存可以加快打包的速度
    • hash 缓存来优化运行速度: [hash-chunkhash-contenthash ]
    • tree shaking 去除应用程序中未使用的代码,可以使用 sideEffect 取消删除
    • 通过 代码分割 分割来减少不必要的引用,通过懒加载或者预加载来优化
    • 通过 dll 对第三方库进行一次打包成单独的文件