Better

Ethan的博客,欢迎访问交流

你需要知道的编程概念

编程语言种类繁多,但其实每个编程语言所使用的编程概念是一样的,一门语言使用了这几个概念,另外一门语言使用了另外几个概念,可能还共同使用了一些编程概念,这里一起来看看吧

编程概念

你需要知道的编程概念

  • 面向对象:封装、继承、多态、prototype、mixin 等
  • 函数式编程:高阶函数、闭包、惰性求值、不可变状态、无副作用
  • 元编程:动态代理(运行时创建新的类)、运行时修改现有类
  • 并发模型:同步与互斥、锁。死锁
  • 虚拟机和垃圾回收
  • 静态类型、动态类型、类型推导
  • 抽象语法树 AST
  • 指针
  • 错误处理、泛型、同步异步、序列化

OOP 与 MVC

既然提到了 OOP,便结合这段时间的工作经验多聊两句。

从事前端工作以来,了解到最多的概念大概是组件化了,对我而言组件化有两个优点

  • 复用组件
  • 拆分页面复杂度

如果业务场景足够简单,你可能一直都不会用到 OOP,因为直接写在组件中完全可以解决问题,但如果组件复杂度上来了呢,比如一个组件有 6000 行呢?而且你还不好通过组件化的方式进行拆分,那要怎么办呢?

什么情况下容易出现这种情况呢?我觉得是 MVVM 不能帮助到我们的时候,MVVM 的优势是自动更新 DOM,但如何我们数据的展示并非 DOM 呢?比如 webgl 或者 canvas 呢?此时代码的书写很容易将我们打回 jQuery 的年代。充斥着大量过程式、手动控制 UI 更新的代码。

那么如何解决这个问题呢?既然不能使用 MVVM 帮助到我们,但退回到 MVC,帮我们实现代码分层是可以的,这样代码就会清晰很多。同时运用 OOP 的思维方式进一步组织代码,将相关的代码封装在一个类之中,此时 OOP 封装的特性就表现出来了

后续

越来越意识到,如何写出高质量的代码的重要性,接下来的日子将会死磕设计模式,多思考,多总结吧!



留言