文/张泰峰,原文地址:https://www.cnblogs.com/ztfjs/p/7596617.html

技术是一条湍急的江流,我们或乘着自己的小船,或搭着公司的大帆,在激流中回转翻滚,旧的路途一定会过去的,但新的路途需要你的经验渡过。

我们来谈一谈,技术是变得‘简单’了,还是变得更‘难’。

作为一个野生程序员,从电脑小白,到前端 er。记得第一次接触编程,更准确来说是 “搬程”,是在 2014 年。那年壮志特别壮,搞定一些简单的 html+css+js 插件之后就找了一家公司工作,期间非常崇拜那些能够用 javaScript 写出轮播图、幻灯片、tab 切换的 “大神”,直到我真正接触到编程。。。

在领略了面向对象的魅力之后,逐渐的,好像所有的问题都变得更简单,无论是网页动态效果,数据加载还是比较炫酷的幻灯片、图表,它们全部都被激活了。这段时间我觉得技术是越来越 “简单” 的,可不是,自从理解面向对象或者各种设计模式之后,一切的问题都可以找到对应的方法,并且很可能有一个更加简单的库提供支持。

我觉得是解决问题的流程发生了变化,大多数处理问题的流程是,

发现问题 -》思考 -》百度代码 -》功能分析 -》完善,

而现在变成了

设计思考 -》功能分析 -》百度代码 -》完成 -》发现问题 -》完善;

可以看到的是,遇见问题解决问题的效率是低下的,抽象的思考过后解决问题的效率才会变得更高。

技术的快速发展势必引出层出不穷的框架,而框架的发展必然是趋向高度抽象的。抽象给使用的人带来了简单,而对理解的人带来的却是更加的复杂。例如 angular 的出现,整个前端随即进入了抽象时代,AppModule、注入器等,再到 vue,需要承认的是 vue 的学习曲线是类似框架中最友好的,编码方式也是最舒适的,但是 vue 的抽象层可不是那么简单,

还有 react,你相信有某个人告诉你 react 全家桶很简单吗?曾经有一些后台欧巴告诉我,这东西很简单,和 xxx 很像,给他几分钟就 ok 了,真的 ok?

1

如何理解抽象

抽象是通过分析与综合的途径,运用概念在人脑中再现对象的质和本质的方法,分为质的抽象和本质的抽象。分析形成质的抽象,综合形成本质的抽象(也叫具体的抽象 —— 摘自百度百科。抽象是对现实事物的分析,再进行综合,抽象事物的本质,把事物复杂的一面转化成一个相对简单抽象。

2

抽象不代表简单

很多时候,技术看起来并不是越来越‘简单’,但也不太像越来越‘难’,事实上它正在变得越来越‘抽象’。抽象并不代表简单,可是理解了之后又不是太难。我认为它是介于之间的,不同的东西。就像从微观到宏观的转变,细胞到人,外表是简单的,内在是越来越复杂的。

就像是一支铅笔,你知道它是一只笔,它可以写字。你可以不知道他内部的笔芯是怎么形成的。但是你不能说新的圆珠笔比铅笔更简单,在使用层面确实是的,但是它是一个假象,因为使用它的人根本不会关心这支笔的内在。—— 但是我们不一样,我们是开发者。我们需要了解这只铅笔内部和那只圆珠笔究竟有什么不同,而圆珠笔往往比铅笔要复杂得多,它们都有一只笔芯,但是圆珠笔的笔头代表着工艺,铅笔则可能只代表了笔的基础。

3

不要认为新的技术更简单!

新的技术往往是对旧的技术的封装抽象,提出了更多的概念,更多的解决方法。但是它的内在并没有发生多少变化,react、vue、angular 要依赖 webpack 等工具,它们的本质还是 es6,是 es6 更复杂的功能抽象集合,那些实用的、简单的 API 对工作的帮助不可谓不小,但对你了解本质的帮助越来越无力,你并不能在 vue 语法中学到多少 js 知识是吗。jquery 的 api 囊括了大部分 dom 操作,它使你更缺少动力深入那些基础了。

4

基础和抽象思维

我认为,深入基础,锻炼抽象思维,才是学习新框架的最佳途径,仅仅上手一个 mvc 框架可不能帮助你的技术提升多少。人类发现微观世界,使科技焕然一新,技术也需要探究 “微观”,计算机原理更新的速度和框架更新的速度,已经不言而喻。

技术并不是越来越简单的,而是框架是你的羁绊

可能表述有问题,引起了一些误解,框架的意义我觉得就跟名字一样,架子,用框架开发可以不需要知道原理的,房子会住就行了。

重要的是原理,原理被抽象了,框架有时候遮挡了它们。

例如你可以不知道 react 的 setState 是怎么工作的,内部用了哪些 API,事实上它表面上足够简单,实现功能的时候不需要懂它的原理。

公众号对话框,回复关键字 “1024”

免费领取程序员赚钱实操教程

- 长按识别关注 -

技术,职场,产品,思维

行业观察

技术不是越来越简单,而是框架是你的羁绊相关推荐

  1. 自动化测试--实现一套完全解耦的简单测试框架

    selenium中有提供pageObject,支持将页面元素和动作单独封装到一个类中. 但是,当页面元素发生变化的时候(在项目的维护过程中,很很容易发生的),就需要去修改源代码.为了解决这个问题,可以 ...

  2. 容器化技术与微服务结合---SpringCloud框架与阿里云serverless k8s的结合(六)

    目录 系列 写在前面 Serverless K8S 概念 创建集群 微服务搭建 项目地址 环境区分以及dockerFile注意 阿里云日志接入 创建阿里云日志project 配置 测试 Kuberne ...

  3. 使用J2ME技术开发RPG游戏(一)——程序框架

    使用J2ME技术开发RPG游戏(一)--程序框架 作者:陈跃峰 出自:http://blog.csdn.net/mailbomb RPG(角色扮演游戏)是手机游戏中的一类主要类型,也是相对来说比较麻烦 ...

  4. 手写一个简单rpc框架(一)

    扑街前言:前面说了netty的基本运用.Java的NIO等一系列的知识,这些知识已经可以做一个简单的rpc框架,本篇和下篇我们一起了解一个怎么完成一个rpc框架,当然个只是为了更好的了解rpc框架的基 ...

  5. Golang实现简单爬虫框架(4)——队列实现并发任务调度

    前言 在上一篇文章<Golang实现简单爬虫框架(3)--简单并发版>中我们实现了一个最简单并发爬虫,调度器为每一个Request创建一个goroutine,每个goroutine往Wor ...

  6. python最简单的架构_Python实现简单状态框架的方法

    本文实例讲述了Python实现简单状态框架的方法.分享给大家供大家参考.具体分析如下: 这里使用Python实现一个简单的状态框架,代码需要在python3.2环境下运行 复制代码 代码如下: fro ...

  7. Android—简单路由框架实践

    简单路由框架实现: 1.目录结构 annotation和factory-compiler是两个java library,分别负责接口还有APT. 2.依赖关系 app作为主工程依赖所有 impleme ...

  8. Java—实现 IOC 功能的简单 Spring 框架

    编写一个实现 IOC 功能的简单 Spring 框架,包含对象注册.对象管理.及暴 露给外部获取对象的功能,并编写测试程序.扩展注册器的方式,要求采用 XML 和 txt 文件. 源代码 packag ...

  9. Golang实现简单爬虫框架(5)——项目重构与数据存储

    前言 在上一篇文章<Golang实现简单爬虫框架(4)--队列实现并发任务调度>中,我们使用用队列实现了任务调度,接下来首先对两种并发方式做一个同构,使代码统一.然后添加数据存储模块. 注 ...

最新文章

  1. java安全编码实践总结
  2. mysql5.6.28安装教程百度经验_Linux(Ubuntu)下Mysql5.6.28安装配置方法图文教程
  3. C++的强制类型转换
  4. context元素大概解说
  5. 智能小程序档案馆——如何给“包”瘦身
  6. 如何安装Genymotion虚拟机以及Genmotion的eclipse插件
  7. magento 上传图片slider Multiple Banner Extension
  8. Python标准库datetime中4种基本对象的用法
  9. element分页点击事件_关于原生dom事件添加、删除方法的一些拓展
  10. html表单实现ajax登陆,node.js+jQuery实现用户登录注册AJAX交互
  11. Broker 的 Heap Size 如何设置?
  12. 【转】VMware Fusion Professional 10 序列号
  13. TigerGraph入门
  14. rdkit Kekulize
  15. 神经+符号知识推理论文浅读4篇
  16. android蓝牙健康 iee,Wi-Fi RTT(IEEE 802.11mc)
  17. 那些便宜的vps,你敢用吗?企业该如何选择云服务器?
  18. 谷歌中设置utf8编码
  19. 裸机运行c语言,裸机_GPIO实验_C语言
  20. 乘积最大python

热门文章

  1. 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程
  2. Windows下在命令行安装postgresql,并注册成window服务;产品内置postgre
  3. 实验四 数据查询——简单查询 Sql Server数据库实验
  4. C语言中void*详解及应用
  5. describe函数的参数举例详解
  6. App引流推广:能够提高用户的转化的技术
  7. 一、Hbase介绍、数据模型、体系结构
  8. 2020考研计算机(408)考试大纲原文以及分析
  9. MySQL_数据库的约束
  10. 走近棒球运动·辛辛那提红人队·MLB棒球创造营