Express 和 Koa 框架对比

01

March

2020

今年3月,可以说是2020年的“新”起点,趁着疫情期间,对过往和未来技术方向做个小整理。

Express 几乎与 Node.js 一样老,也是目前最流行的 Node.js web应用框架,很多应用框架也是基于 Express 构建。Koa 则属于后起之秀,近年来在国内比较热门且主流的框架之一。两者都可轻松的创建 REST APIs、静态服务器等,本文主要就拿这两个框架进行对比。

当然还有:HapiEgg.jsNest.js 等框架,在文章结尾会简单介绍,由于并为实际使用,所以不在本文讨论范围,仅作为扩展内容去理解。

[ 查看全文... ]

MacOS 使用 brew 安装 MongoDB

25

February

2020

简介:

MongoDB 是一种面向文档的数据库管理系统,用C++等语言撰写而成。是一个介于关系数据库和非关系数据库之间的产品,适用于敏捷开发的数据库。

与关系型数据库对比:

  • 数据库(Database) => 数据库(Database)
  • 集合(Collection) => 数据表(Table)
  • 文档(Document) => 记录(Record)

主要区别:数据结构较为松散,类似 JSON 的存储格式,每条记录的表字段可以不同。而关系型数据库每个表的都拥有相同字段。

安装:

由于 MongoDB 宣布不再开源,HomeBrew 也从核心库中移除了 MongoDB 模块 #43770。现在已无法使用 brew install mongodb 命令安装,否则会提示错误 Error: No available formula with the name "mongodb"

[ 查看全文... ]

CSS Grid Layout 手记(教程指南)

11

April

2019

CSS Grid Layout(网格/栅格布局)是 CSS 最强大的布局系统,随着设备和浏览器的升级,将会是未来的主流的布局方案之一。

一、介绍(Introduction)

概述(Basic)

CSS Grid Layout 简称为Grid,网上普遍译为网格,其实更规范的说法应为栅格

栅格对有经验的 UI 和 FE 来说并不陌生,肯定会想到栅格系统(Grid Systems)

这“系统”早在欧洲中世纪就已经出现,当时主要用于文字排版,随着时间的推移逐步发展到平面及其他“设计”领域。

在我印象中 08~09 年左右,网页栅格化设计(Grid Design)已经出现并被广泛使用,所定义的12栅格24栅格等规范方案仍一直被沿用至今。用通俗的方式来讲:就是以一定规则的网格阵列,规范化网页布局。

CSS Grid包含了栅格化设计的特性,是第一个专门为解决布局问题而创建的CSS 模块。如果你熟悉栅格系统栅格化设计那对栅格布局的理解会起到一定帮助。

好的栅格布局,对于模块、元素而言都有规律可循,能在不同尺寸/分辨率下呈现最优的方式,使网页更灵活和易于扩展。但同时也考验设计师,对于不同尺寸的把握,针对前端来说也是如此。

之前使用栅格需要用到Bootstrap等的框架,并且每个框架都有一套属于自己的栅格规范,现在网格布局使我们可以更为简单的实现,无需依赖框架。 [ 查看全文... ]

Gulp4 前端自动化工作流配置

11

March

2019

随着最近把 nodejs 从 8.x 升级到了 10.x,发现 Gulp3.x 早已经不能兼容新版的 node,并且环境中的部分依赖,也已经被淘汰。
于是趁此机会,把 Gulp 升级为 4.x 版本,并把整个环境重新改造了一下。

现已经发布至 Github 和 NPM 作为不定期维护的一个项目。关于后续更新和维护情况,请关注本项目的:GitHubNPM

如果你刚接触 Gulp,可以查看我以前写的文章 Gulp构建前端自动化工作流(Gulp入门介绍)
[ 查看全文... ]

Vue CLI 3.0 文档(1):安装和项目创建

12

December

2018

之前主要使用Vue CLI 2.x来搭建项目,正好遇到新的项目,便尝使用Vue CLI 3来进行构建,玩了小半年之后抽空整理下文档。

简介

Vue CLI 作为 Vue 的官方脚手架,降低了开发者对于 webpack 的配置成本,便于快速构建项目。具体的介绍在官方文档中写的十分详细,此处就不唠叨。

用一个通俗的比喻来说,把项目作为一份晚餐:食材(vue)虽都有,可但油盐酱醋(webpack)怎么配比,并非一下就能掌握。而 Vue CLI 就像是成品大礼包,198、298、398自由搭配,营养均衡开袋即食。并且附带料包自由调整(配置),也能加热享用(可升级)。并且 Vue 是渐进式框架,需求(基础插件)无法满足时,可单独外卖(Plug-in)加餐。
[ 查看全文... ]

CSS BEM 解读

09

November

2018

CSS BEM 解读

概要

BEM 分别代表着:Block(块)、Element(元素)、Modifier(修饰符),是一种组件化的 CSS 命名方法和规范,由俄罗斯 Yandex 团队所提出。其目的是将用户界面划分成独立的(模)块,使开发更为简单和快速,利于团队协作开发。

特点

  • 组件化/模块化的开发思路。
  • 书写方式解耦化,不会造成命名空间的污染,如:.xxx ul li 写法带来的潜在嵌套风险。
  • 命名方式化扁平,避免样式层级过多而导致的解析效率降低,渲染开销变大。
  • 组件结构独立化,减少样式冲突,可以将已开完成的组件快速应用到新项目中。
  • 有着较好的维护性、易读性、灵活性。 [ 查看全文... ]