抽一点时间整理下青训营笔记、相信课程笔记对于刚入门的伙伴会受益匪浅
课程讲师:月影
我的小破站:gavinking.top
从 JS 出发,总结其他语言编码可遵循的共性原则,由浅入深掌握开发思维
一、如何写好JS?
从月影讲师的课程中吸取的思想是要遵循以下写代码的思维。
- 各司其责 - HTML、CSS、JS
- 组建封装 - 好的组件具备封装性、正确性、扩展性、复用性
- 过程抽象 - 将工作流程抽离出类 划分
1.清楚js的定位
时刻都不能忘记,否则很容易犯不清楚js是什么的错误。不要学了很久就知道js是编程语言,就是写代码,而且特点就是乱七八糟就完了,那样是学不好js的。要时时抓住它的地位,确切的说是它在整个Web中的地位:它属于前端的核心,主要用来操控和重新调整DOM,通过修改DOM结构,从而来达到修改页面效果的目的。要用这个中心思想去指导后续的一切js的学习,并且形成条件反射。
2.清晰的学习路线
这个只能是自己慢慢摸索或过来人点拨。我的学习路线如下:
A:js基础部分,如:定义变量、函数、数组、字符串等的处理,内置函数、内置对象等;
B:js面向过程编程思想,封装出各个函数,试着用这些去做一些常见的小功能,如:99乘法表、选项卡、自定义多选按钮、自定义播放器、3D相册,省市区三级联动,鼠标的动效;
C:js面向对象编程思想,所谓万物皆对象,试着去封装一些你自己的对象,提供出有意义的接口出来;
3.自律坚持
写代码不要一时兴起,三分钟热度,看到别人用js做了一个炫酷的动态网页,你就大喊大叫的我也来我也来,殊不知别人背地里把基础打扎实了,才有这个成果,而你在三天打鱼两天晒网,写一个小项目就会发现自己忘记很多知识点,而垂头丧气。编程语言从来不是一下子就能学好的,都是时间的积累,坚持练习,不断的完善自己的短处,所以说,自律坚持非常重要!!!
4.多练多写
学习js并不是跟着张宇老师,看着他敲代码,看着他说一些代码知识,说了很多注意事项,你当时可能听懂了,过了一段时间,当你写这个代码时,脑子:我会写! 手:?????? 就会十分尴尬,明明当时听懂了呀,可为什么........因为你没有形成深刻的记忆,学习js最好是多练习多写代码,做一些你感兴趣的小项目,实现你想要的功能,不会的去查资料,然后多练多写的同时,也要看看老师是怎么写代码的,思维也很重要。
5.从多角度去学习和领悟
充分调动你所学的东西,从多角度去做某一功能,锻炼自己的思维,能优化代码就尽量优化,避免冗杂,比如说:以前你是从面向过程角度做的,现在改为从面向对象的角度再来做,或者继续做成可以直接使用的插件,提供属性、方法等出来。争取让你做的这个功能逐渐能使用到实际项目中来。这样的好处:既综合应用了你的所学,又能有实际意义,两全其美。
二、课程结论
- HTML/CSS/JS各司其责
- 应当避免不必要的由JS直接操作样式
- 可以用class来表示状态
- 纯展示类交互寻求零JS方案
总结:基本方法
- 结构设计:HTML
- 展现效果:css
- 行为设计:JS
- API(功能)设计应保证原子操作,职责单一,满足灵活性。
- Event(控制流)使用自定义事件来解耦
解耦(重构:插件化)
- 将控制元素抽取成插件
- 插件与组件之间通过依赖注入方式建立联系
- 将HTML模板化,易于扩展
抽象
- 将通用的组件模型抽象出来
总结
- 组件设计的原则:封装性、正确性、扩展性、复用性
- 实现组件的步骤:结构设计、展现效果、行为设计
- 上次重构
- 插件化
- 模板化
- 抽象化(组件框架)
过程抽象
- 用来处理局部细节控制的一些方法
- 函数式编程思想的基础应用
高阶函数
- 以函数作为参数
- 以函数作为返回值
- 常用于作为函数装饰器
常用高阶函数
- Once
- Throttle
- Debounce
- Consumer/2
- Iterative
命令式与声明式函数
声明式函数比命令式 有天然的可扩展性 函数式编程
纯函数/非纯函数 纯函数:无副作用 非纯函数:高度副作用