Loader 原理

上文我们写了一个打包器,但是只能加载 JS 文件,现在我们尝试让他可以加载 CSS 如何加载 CSS思路 我们的 bundle 只能加载 JS 我们想要加载 CSS 如果我们能把 CSS 变成 JS。那么就可以加载 CSS 了12345678// 获取文件内容,将内容放至 depRelationlet code = readFileSync(filepath...

Read More

Webpack 核心原理

webpack 要解决的两个问题现有代码(接上文) 很遗憾,这三个文件不能运行因为浏览器不支持直接运行带有 import 和 export 关键字的代码 怎么样才能运行 import / export 不同浏览器功能不同 现代浏览器可以通过 来支持 import export IE 8~15不支持 import export,所以不可能运行...

Read More

AST、Babel、依赖

babel 与 AST先从Babel 说起 babel 的原理1、parse:把代码 code 变成 AST2、traverse:遍历 AST 进行修改3、generate:把 AST 变成代码 code2即:code – (1) - > ast – (2) - > ast2 – (3) - > code2 示例1234567impor...

Read More

代码优化基本原则

代码优化基本原则 易读性优先 如果不是性能瓶颈,就不要为了性能而改写代码 复杂性守恒原则:无论你怎么写代码,复杂性都是不会消失的推论:如果逻辑很复杂,那么代码看起来就应该是复杂的。如果逻辑很简单,代码看起来就应该是简单的。 命名程序员三大难题 变量命名 缓存失效 循环边界 可见变量命名的重要性。 网上有很多命名规范,大家可以参考。这里只讲基本原则。 ...

Read More

Rails session

路由 在 config/routes 里添加 resources :sessions, only: [:create, :destroy] 只需要这两个 API Modal 手动创建 app/modal/session.rb,因为 session 并不需要存在数据库中,内容123456789class Session include ActiveMode...

Read More

Rails start

如何进行架构设计 难点不在于架构设计的好不好,而在于细节是否做得妥当,或者叫做你的架构是否基于最佳实践。 依据 用户需求 团队配置 技术成熟度 用户需求 可登陆的增删改查 团队配置 会前后端的全栈工程师 技术成熟度 假设只会 Rails + Vue / React 什么是前后端分离 这里说的前端和后端是指前端代码和后端代码,不指人。不分...

Read More

Rails API

经典 MVC 架构 路由(router)根据请求路径来选择控制器(Controller) 控制器选择合适的视图(View),渲染给用户 如果涉及到数据库,控制器会调用 Modle 拿数据 Modle 会调用 ORM 来简化数据操作 ORM 会直接与数据库打交道 Rails 的 ActiveRecord 是一个超级强大的 ORM 这么看起来,Rails 很简...

Read More

basic code

一个简单的测试123456789101112// gem install test-unit --verbosedef to_word(s) s.gsub(/\d/, '')endrequire 'test/unit'class ToWordTest < Test::Unit::TestCase def te...

Read More

Express 核心

HTTP 协议curlcurl -s -v 网址 -s 是 silent,用于隐藏进度条 -v 是 verbose,用于打印全部 header * 开头的是注释 > 开头的是 HTTP 请求 < 开头的是 HTTP 响应 -o nul 是为了隐藏 HTML 文本(LINUX 和 mac 要将 nul 改成 /dev/null)...

Read More

Ruby 基础

Ruby 的基本概念运行 ruby 的方式 irb 可交互命令行 你每次输入一个式子,他都会用 => 给出一个值 ruby ruby 加文件路径 变量 没有关键字 没有 var、let、const,直接 a = 1 就行 局部变量 小写字母开头 _开头 全局变量 $ 开头 类变量 @@ 开头 实例变量 @ 开头 ...

Read More