你的前端开发的优势是什么?
每个前端开发都要有自己的优势,总结一下我的优势,1、工作年限长、经验多;2、基础相对扎实;3、逻辑思维能力合格;4、业务需求分析能合格。基本上就这四点吧,一般来讲,能够达到这四条的前端开发,就可以说是一个比较有竞争力的前端开发了。
那么上述四条展开来说的话,我最擅长的就是需求分析了,然后才是技术能力如何。而在这些之下的更基础的能力,则是我的编写程序的逻辑思维能力。
也就是说,逻辑思维能力+需求分析+技术能力,等于我整个的前端开发优势。
<!-- -->
在我看来,前端开发是起一个桥梁作用的工作岗位,它的左边是UI、产品经理、销售、客户等,而右边主要就是后端程序员了。这二者一个是感性思维,就是大一点,小一点;另一个是理性思维,是不是更合逻辑。所以前端开发要拥有感性和逻辑的二种思维能力,这样才能把他们连接起来。
要明确一点,前端开发不是科学研究,它是服务于具体业务的,所以理解业务和需求的内在逻辑。我个人主观认为,这是对于前端开发工程师最重要的能力。如果脱离了业务场景单独的去研究技术,那么这个技术就很难产生实际的价值了。
<!-- -->
回到技术本身来说,想要增强前端开发的优势,最主要的就是“不断的实践、总结、反思”。这三个步骤其实是实践验证理论,理论指导实践的过程。在实际工作中,技术、业务、沟通、前端架构、编码、团队等,这些都是技术,都需要不断的磨合、练习。不能狭义的认为,只有html、css、js、各种框架才是技术。
我们分析一个业务,先要从【需求】入手,搞清楚这个应用是做什么的,然后再下一步再搞清楚它的【业务逻辑】,其实就是【操作的顺序】,第一步、第二步、最后如何。
有了需求和逻辑,我们就可以从中抽象出它的【业务模型】。所以我会说,业务逻辑和需求分析是建立在抽象思维能力之上的。这在本质上是一种结构化的思维能力,相当于俯视的角度去看事物。
这种抽象思维的能力要慢慢锻炼,很简单,其实就是提炼特征。例如,一筐苹果吧,把它的特征提炼出来,就这样,
苹果
\_颜色:红
\_形状:圆
\_大小:200mm
\_重量:100克
\_品质:100%
\_数量:100
那么,用JavaScript来表示,就是这样,
var _appleObj = {
color:'#f00',
shape:circular,
size:200,
weight:100,
quality:100%,
number:100
}
这个过程是什么呢?
对具体事物的抽象,在这个过程中只提取出目标对象中我们所需要的特征。然后在代码中表达出来。这里面的关键是,理解苹果的【颜色】和_appleObj中的【color】,它们二者之间的对应关系。
这种抽象的编程思想的思维方式,是超越于任何编程语言之上的,它是对现实世界的提炼和抽象。无论你是用原生JavaScript,还是vue,或react,都是这样,无非是写法不同罢了。
编程因为需要抽象具体事物,所以它是以不同的视角来看待现实世界。你看到一匹白马,说“好大好白的一匹马”,我看到的是,
var 白马 = {
腿:4,
颜色:#fff,
性别:公,
体重:200KG,
..
}
这也算是另一种形式的白马非马了。这方面可以看我这篇文章《零基础前端入门,真正难在哪里?简说编程思想和逻辑思维》
所以,我认为的前端开发的优势,就是看谁能更快更好的抽象出业务模型,提出解决方案。