首页 > 其他分享 >设计模式与前端工程师

设计模式与前端工程师

时间:2023-03-02 11:56:08浏览次数:47  
标签:代码 工程师 前端 Principle 设计模式 不变

 前端要不要学习设计模式

  始终认为每个行业都有自己的特点,各自的专业性。一个开发工程师如果不知道电脑是哪些基本硬件组成,那么我们大概率都会认为这个人非常不专业。那么前端要不要学设计模式呢?设计模式跟前端有多大关系呢?

  前端工程师首先是一个工程师,既然是一个软件工程师,那么类似设计模式、数据结构、网络相关等基础知识点都是必须的,而不是要不要学的问题,一个工程师应该具备这个领域特有的知识体系,而不是零散的知识点

 

 

工程师核心是什么

  互联网的这些年,技术革命就没消停过。就比如前端来说,框架、库,从原生 JavaScript 开始写,然后写 jQuery、写 zepto、写 Angular,写写写,一直写到现在的 Vue/React 等。各个技术概念、框架、库都迭代的非常快,难道工程师的核心仅仅是会使用某某框架、库吗?难道会使用java 的程序员一定比不会用java的程序厉害吗?

能够决定一个工程师的本质的,不是这些瞬息万变的技术点,而是那些不变的东西。

不变的东西,说的就是这种驾驭技术的能力

  1. 编码能力
  2. 设计思维
  3. 计算机基础
  4. 技术广度、深度
  5. 解决问题的能力
  6. 沟通能力
  7. 文档能力

编码能力具体来说,它分为以下三个层次:

  • 能用健壮的代码去解决具体的问题;
  • 能用抽象的思维去应对复杂的系统;
  • 能用工程化的思想去规划更大规模的业务。

这三种能力在你的成长过程中是层层递进的关系,其中后两种能力可以说是对架构师的要求。事实上,能做到第一点并且把它做到扎实、做到娴熟的人,已经堪称同辈楷模。

用健壮的代码去解决具体的问题的能力。这个能力在软件工程领域所对标的知识体系,恰恰就是设计模式。所以,要成为一个靠谱的开发,先掌握设计模式

设计模式到底是什么

维基百科中对设计模式的定义是这样的:在软件工程中,设计模式(Design Pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。

我的理解是设计模式并不是一个虚无的东西,而是经过各种软件开发人员在特定的场景下提炼出来怎么样写代码的一种思路、一种解决方案,按照他们的思路可以让代码更加容易维护、扩展。也就是通常说的健壮的代码去。

设计模式基本原则

设计原则是设计模式的指导理论,它可以帮助我们规避不良的软件设计。SOLID 指代的五个基本原则分别是:

  • 单一功能原则(Single Responsibility Principle)
  • 开放封闭原则(Opened Closed Principle)
  • 里式替换原则(Liskov Substitution Principle)
  • 接口隔离原则(Interface Segregation Principle)
  • 依赖反转原则(Dependency Inversion Principle)

在 JavaScript 设计模式中,主要用到的设计模式基本都围绕“单一功能”和“开放封闭”这两个原则来展开。

设计模式核心思想

在实际开发中,不发生变化的代码可以说是不存在的。我们能做的只有将这个变化造成的影响最小化 —— 将变与不变分离,确保变化的部分灵活、不变的部分稳定
这个过程,就叫“封装变化”,这样的代码,就是我们所谓的“健壮”的代码,它可以经得起变化的考验。而设计模式出现的意义,就是帮我们写出这样的代码。

设计模式的核心思想,就是“封装变化”,将变与不变分离,确保变化的部分灵活、不变的部分稳定,代码有良好的可维护性、可扩展性

 简单的说就是观察你整个逻辑里面的变与不变,然后将变与不变分离,达到使变化的部分灵活、不变的地方稳定的目的。

23种设计模式分类

无论是创建型、结构型还是行为型,这些具体的设计模式都是在用自己的方式去封装不同类型的变化。

创建型模式:封装了创建对象过程中的变化,比如下节的工厂模式,它做的事情就是将创建对象的过程抽离;

结构型模式:封装的是对象之间组合方式、以及通信的变化,目的在于灵活地表达对象间的配合与依赖关系;

行为型模式:则将是对象千变万化的行为进行抽离,确保我们能够更安全、更方便地对行为进行更改。

 

参考:
《 JavaScript 设计模式》

 

标签:代码,工程师,前端,Principle,设计模式,不变
From: https://www.cnblogs.com/longbensong/p/17171304.html

相关文章

  • JAVA设计模式之单例模式
    设计模式设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及......
  • 安防视频监控系统前端摄像机——DSP与SOC摄像机
       一、DSP摄像机  DSP(DigitalSignalProcessing)即数字信号处理,它是利用数字计算机或专用数字信号处理设备,以数值计算的方法对信号进行采集、变换、综合......
  • 设计模式2——创建者模式
    ​创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为:......
  • springboot后端接收不到前端传来的表单值
    为啥接收不到因为传来的字段值太大了,springboot默认启动依赖tomcat,tomcat默认接收表单值最大为2MB,将server.tomcat.max-http-form-post-size这个配置调大即可#yml方式s......
  • 前端文件夹上传解决方案
    ​ 最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的......
  • 校招前端二面经典面试题(附答案)
    代码输出结果functionrunAsync(x){constp=newPromise(r=>setTimeout(()=>r(x,console.log(x)),1000))returnp}functionrunReject(x){constp......
  • 那些高级前端是如何回答面试题的
    代码输出结果console.log(1);setTimeout(()=>{console.log(2);Promise.resolve().then(()=>{console.log(3)});});newPromise((resolve,reject)......
  • VUE前端请求跨域问题解决
    解决方法:vue.config.js文件配置:module.exports={devServer:{open:true,host:'192.168.1.193',port:8080,https:fals......
  • jenkins发布前端版本号统一优化
    jenkins发布前端版本号统一优化之前每周一坑提过,pc端和手机端发布版本号不一致的问题【https://www.cnblogs.com/windysai/p/16659881.html】,现在想统一起来。因......
  • AI自动生成prompt媲美人类,网友:工程师刚被聘用又要淘汰了
    机器之心报道机器之心编辑部来自多伦多大学、滑铁卢大学等机构的研究者受promptengineering的启发,提出一种使用大型语言模型自动生成和选择指令的新算法,在24项任务......