准备包括心理和资源两方面。

心理

我看过一句话说,当你用一个框架时,不要忙着看一遍使用教程就开始写项目,先去看看框架原理。

这句话我深以为然。现今前端快速发展,很多前端攻城狮都很茫然:框架更新太快了,各种新技术日新月异,这个还没学会下个就出来了,一直在疲于奔命。这也是我决定学习基础原理的初衷。所有的字都是由横竖撇捺写成,最基础的招式练精了也能成为一霸。

你想象一下,三年以后,当你的其他前端小伙伴在说自己熟练使用这个框架,熟悉那个框架时,你能说,你研究过哪些框架的源码,了解了哪些底层知识,懂前端框架的架构,甚至能自己根据需求编写一个新框架。这是一件多么爽的事情?如果你想要成为后者的话,那么你就要从现在做起,一点一点积累,不只是努力程度在决定着你的成功与否,方向也尤为重要。

所以要从现在做起,多学习设计模式,数据结构算法,框架等。他们或许对你的熟练无用,但是对你的提升影响是巨大的。希望我和你都能有这种追求卓越,深入钻研的品质。

准备

千里之行始于足下,方法总比困难多。我今天想分享的是如何下载框架源码的早期版本。

我用的是sourcetree,git的可视化操作软件,感觉挺方便的。这里就说一下sourcetree的方法吧,git的话也有相关命令相对应。

  1.打开页面,输入github,在github官网中搜索“knockout(或其他感兴趣的框架名)”,选择搜索结果第一个点进去,点击如下图所示的Clone or download,然后单击地址后面的图标按钮,它会提示你复制成功

2.打开sourcetree,点击左上角的克隆/新建,在弹出框中的URL处粘贴你获取的地址,在目标路径中选择希望的保存路径,点击克隆

3.成功之后双击左边的信息,右面会有相应的分支信息。

4.拖到最下方,大概在2013年份,选择一个你希望开始的版本,然后右击->检出->确定,这是你的文件夹里的就是你选择的早期版本啦!

今天的内容就是这样啦,我也在努力呢,要跟住哦。

源码解析-knockout源码准备的更多相关文章

  1. 《Flink 源码解析》—— 源码编译运行

    更新一篇知识星球里面的源码分析文章,去年写的,周末自己录了个视频,大家看下效果好吗?如果好的话,后面补录发在知识星球里面的其他源码解析文章. 前言 之前自己本地 clone 了 Flink 的源码,编 ...

  2. spring源码解析——spring源码导入eclipse

    一.前言     众所周知,spring的强大之处.几乎所有的企业级开发中,都使用了spring了.在日常的开发中,我们是否只知道spring的配置,以及简单的使用场景.对其实现的代码没有进行深入的了 ...

  3. 微信小程序扫码解析小程序码

    通过微信扫小程序码,跳转到应用小程序内, 如何解析小程序码的参数呢? 一般小程序码会跳转到设置的页面,如首页, 可以直接跳转到小程序首页,然后解析小程序携带的参数,再打开某个页面. (小程序码的路径要 ...

  4. MIT 2012分布式课程基础源码解析一-源码概述

    课程主页 课程介绍:本课程会在给出的源码的基础上要求完成8个lab Lab overviewLab 1 - Lock ServerLab 2 - Basic File ServerLab 3 - MK ...

  5. 『Python』源码解析_源码文件介绍

    本篇代码针对2.X版本,与3.X版本细节不尽相同,由于两者架构差别不大加之本人能力有限,所以就使用2.X体验python的底层原理了. 一.主要文件夹内容 Include :该目录下包含了Python ...

  6. 开源项目源码解析-PhotoView 源码解析

    1. 功能介绍 特性(Features): 支持 Pinch 手势自由缩放. 支持双击放大/还原. 支持平滑滚动. 在滑动父控件下能够运行良好.(例如:ViewPager) 支持基于 Matrix 变 ...

  7. [Bootstrap 源码解析]——bootstrap源码之初始化

    bootstrap源码之初始化 我们先来分析normalize.less编译后的源码,我们知道normalize.css是一个专门将不同浏览器的默认css特性设置为统一效果的css库,它和reset. ...

  8. Java源码解析|String源码与常用方法

    String源码与常用方法 1.栗子 代码: public class JavaStringClass { public static void main(String[] args) { Strin ...

  9. 源码解析 || ArrayList源码解析

    前言 这篇文章的ArrayList源码是基于jdk1.8版本的源码,如果与前后版本的实现细节出现不一致的地方请自己多加注意.先上一个它的结构图 ArrayList作为一个集合工具,对于我而言它值得我们 ...

随机推荐

  1. Flexigrid的API

    基本设定 width  table的长度(default:auto) height  table的宽度(default:200) striped   表格的线的表示(default:true) nov ...

  2. java数据结构之有序表查找

    这篇文章是关于有序表的查找,主要包括了顺序查找的优化用法.折半查找.插值查找.斐波那契查找: 顺序优化查找:效率极为底下,但是算法简单,适用于小型数据查找: 折半查找:又称为二分查找,它是从查找表的中 ...

  3. GetClientRect

    这个函数好像就是对应于视口的,获取视口的宽高 #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPAR ...

  4. 2016.10.08--Intel Code Challenge Final Round--D. Dense Subsequence

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  5. Mysql主从备份、主主备份

    简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...

  6. WindowsAPI 之 CreatePipe、CreateProcess

    MSDN介绍 CreatePipe A pipe is a section of shared memory that processes use for communication. The pro ...

  7. jq之简单的表单验证

    <body> <form method="post" action=""> <div class="int"& ...

  8. [转]PHP经验——PHPDoc PHP注释的标准文档

    文档翻译自:http://en.wikipedia.org/wiki/Phpdoc 标记 用途 描述 @abstract   抽象类的变量和方法 @access public, private or ...

  9. Sichuan State Programming Contest 2012 C。Counting Pair

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=118254#problem/C 其实这道题目不难...就是没有仔细分析... 我们可以发现 ...

  10. eclipse myeclipse修改工作区间 an error has occurred. see error log for more details. java.lang.nullpointerexception 问题解决

    解决办法:修改项目工作空间. 修改工作空间,以前打开myEclipse时知道怎么改!现在只有找配置文件了! 步骤: MyEclipse 5.1.1 GA----->Eclipse-----> ...