编程语言种类繁多,但其实每个编程语言所使用的编程概念是一样的,一门语言使用了这几个概念,另外一门语言使用了另外几个概念,可能还共同使用了一些编程概念,这里一起来看看吧
编程概念
你需要知道的编程概念
- 面向对象:封装、继承、多态、prototype、mixin 等
- 函数式编程:高阶函数、闭包、惰性求值、不可变状态、无副作用
- 元编程:动态代理(运行时创建新的类)、运行时修改现有类
- 并发模型:同步与互斥、锁。死锁
- 虚拟机和垃圾回收
- 静态类型、动态类型、类型推导
- 抽象语法树 AST
- 指针
- 错误处理、泛型、同步异步、序列化
OOP 与 MVC
既然提到了 OOP,便结合这段时间的工作经验多聊两句。
从事前端工作以来,了解到最多的概念大概是组件化了,对我而言组件化有两个优点
- 复用组件
- 拆分页面复杂度
如果业务场景足够简单,你可能一直都不会用到 OOP,因为直接写在组件中完全可以解决问题,但如果组件复杂度上来了呢,比如一个组件有 6000 行呢?而且你还不好通过组件化的方式进行拆分,那要怎么办呢?
什么情况下容易出现这种情况呢?我觉得是 MVVM 不能帮助到我们的时候,MVVM 的优势是自动更新 DOM,但如何我们数据的展示并非 DOM 呢?比如 webgl 或者 canvas 呢?此时代码的书写很容易将我们打回 jQuery 的年代。充斥着大量过程式、手动控制 UI 更新的代码。
那么如何解决这个问题呢?既然不能使用 MVVM 帮助到我们,但退回到 MVC,帮我们实现代码分层是可以的,这样代码就会清晰很多。同时运用 OOP 的思维方式进一步组织代码,将相关的代码封装在一个类之中,此时 OOP 封装的特性就表现出来了
后续
越来越意识到,如何写出高质量的代码的重要性,接下来的日子将会死磕设计模式,多思考,多总结吧!