手撕系列文章-序言

一.有感而发

  作为一名前端搬砖者,经常出现这种场景:一个npm install 下去,瘦小的工程文件夹瞬间变成了大胖子(这尼玛要是现金这么给该多好)。

  没错,前端开发就是如此,大量的第三方库,瞎了无数的开发者,遇到一个功能,查查第三方库,看看api,一个npm install,然后拿来就用。作为功能开发,不重复造轮子,无可厚非,但长此以往,对于前端工程师来说,无疑是一种束缚,束缚了解决问题的思维,束缚了对代码艺术的想象力。

  我在这条不归路上,也困惑了很久,熟练地捣鼓第三方库,认为玩得游刃有余,但真正需要自己设计上层的框架或者解决底层的细节时,显得无比吃力。我恍然大悟:熟练的使用第三方库,的确扩展了解决问题的路径,但真正成为高手,必须要了解其本质,只有庖丁解牛,才能做到伸缩自如。

二.出发点

  我曾经尝试写几个框架解决自己的需求,兴高采烈地在github上创建完工程后,发现原来自己的想法早有人开始干了,抑或是一些先进的框架,稍作变通就可以解决我要的问题。

  我深刻地揭露自己的私心:想通过一两个开源项目来提高自己的竞争力,这是一个积极,向上的想法(听起来真的很有理),然而,在我们没有达到足够熟练的情况下,愤然开了那么一个烂尾的工程,是不是又有点浪费资源呢。

  于是,我深刻反思,与其生憋框架浪费资源,为什么不能好好分析优秀的代码呢?

  用了那么多好的第三方框架,但从来没有静下心来分析一下源代码(一个简单的fork而已)。

三.一波鸡汤

  认真分析源代码,才能真正的体会到语言的精髓,领略到奇技淫巧的美。

  对与工作中,我们经常会遇到一些问题,使用第三方库显得臃肿,自己写又疏于考虑,这时分析源代码就成了非常好的办法,取其可用,除其多余,代码也变得灵巧。

  嗯,分析源代码就如同吃鸡,一块一块撕下来,细细品味,再沾个小料,变成了自己的味道。

  记住,一定要用手撕。

时间: 2024-10-06 21:55:08

手撕系列文章-序言的相关文章

【面试必备】手撕代码,你怕不怕?

Part 1.生产者-消费者问题这绝对是属于重点了,不管是考察对于该重要模型的理解还是考察代码能力,这都是一道很好的考题,所以很有必要的,我们先来回顾一下什么是生产者-消费者问题: 问题简单回顾 如果想学习Java工程化.高性能及分布式.深入浅出.微服务.Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家. 生产者消费者问题(英语:Producer-consumer pr

NN入门,手把手教你用Numpy手撕NN(一)

前言 这是一篇包含极少数学推导的NN入门文章 大概从今年4月份起就想着学一学NN,但是无奈平时时间不多,而且空闲时间都拿去做比赛或是看动漫去了,所以一拖再拖,直到这8月份才正式开始NN的学习. 这篇文章主要参考了<深度学习入门:基于Python的理论与实现>一书,感觉这本书很不错,偏向实践,蛮适合入门. 话不多说,下面开始我们的NN入门(手撕NN)之旅 基础数学知识 这里只对张量进行简单介绍,关于矩阵运算之类的,就靠你们自己另外学啦. 标量(0D张量) 仅包含一个数字的张量叫作标量(scala

《深入理解Java集合框架》系列文章

Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framework, JCF)的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小的麻烦.我深深的不解其中的原因.虽然JCF设计参考了STL,但其定位不是Java版的STL,而是要实现一个精简紧凑的容器框架,对STL的介绍自然不能替代对JCF的介绍. 本系列文章主要从数据结构和算法层面分析

Jenkins pipeline 入门到精通系列文章

Jenkins2 入门到精通系列文章. Jenkins2 下载与启动jenkins2 插件安装jenkins2 hellopipelinejenkins2 pipeline介绍jenkins2 javahelloworldjenkins2 groovy入门jenkins2 pipeline入门jenkins2 pipeline高级jenkins2 Jenkinsfilejenkins2 multibranchjenkins2 Jenkinsfile和loadjenkins2 groovy脚本参考

saltstack之基础入门系列文章简介

使用saltstack已有一段时间,最近由于各种原因,特来整理了saltstack基础入门系列文章,已备后续不断查阅(俗话说好记性不如烂笔头),也算是使用此工具的一个总结.saltstack的前六篇文章主要讲述了saltstack的安装.远程执行.配置管理.数据系统以及jinjia模板等知识点,从第七篇往后的文章是一些使用saltstack的案例,包括系统初始化,rpm包以及源码安装等. 博客中saltstack系列的文章,适合初学者从零开始学习直到逐渐熟练使用.文章具有一定的连贯性,如果没有任

知识分享---EmberJs系列文章

JS前端框架之Ember.js系列文章 本文为文章索引,主要是罗列Ember.js的相关文章便于阅读. 基础篇 1. EmberJs之What|Why|HoW 进阶篇 高级篇

【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航

原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人品牌. 本是成书的,但后来做其他事了,就无偿的贡献出来,被读者夸其目前为止最“实在.经典”的写ORACLE PL/SQL编程的文章-! 觉得对你有帮助,请留言与猛点推荐,谢谢. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) 本篇主要内容如下:第一章 PL/S

学习Hadoop不错的系列文章

1)Hadoop学习总结 (1)HDFS简介 (2)HDFS读写过程解析 (3)Map-Reduce入门 (4)Map-Reduce的过程解析 (5)Hadoop的运行痕迹 (6)Apache Hadoop 版本 2)Hadoop-0.20.0源代码分析 (1)Hadoop-0.20.0源代码分析(01) 地址:http://blog.csdn.net/shirdrn/article/details/4569702 (2)Hadoop-0.20.0源代码分析(02) 地址:http://blog

TCP和UDP通信(C#网络编程) ---- 系列文章

文章系列目录 C#网络编程系列文章(一)之Socket实现异步TCP服务器 C#网络编程系列文章(二)之Socket实现同步TCP服务器 C#网络编程系列文章(三)之TcpListener实现异步TCP服务器 C#网络编程系列文章(四)之TcpListener实现同步TCP服务器 C#网络编程系列文章(五)之Socket实现异步UDP服务器 C#网络编程系列文章(六)之Socket实现同步UDP服务器 C#网络编程系列文章(七)之UdpClient实现异步UDP服务器 C#网络编程系列文章(八)